diff --git a/CHANGELOG.md b/CHANGELOG.md index 2827165..3e9cbf5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,18 @@ 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). -## [Unreleased] +## [1.7.0] - 2022-12-31 +### Changed +- Better robunsteness for the dependency installation script. +- Functional enhancement for the basecalling, demultiplexing, and quality summary of ONT raw fast5 reads. +- Version updates for multiple genome assemblers. +- Functional enhancement for the mitochondrial genome assembly. +- Functional enhancement for the mitochondrial gene annotation. +- Functional enhancement for the nuclear gene annotation. +- Functional enhancement for the TE annotation. +- Functional enhancement for SGD_based orthology identification and tagging. +- Removal of support for the long-read-assembler: Ra. +- Removal of support for the long-read-polisher: MarginPolish. ## [1.6.0] - 2019-10-03 ### Added diff --git a/Example_Outputs/CPG_1a.mitochondrial_genome.tidy.cds.fa.gz b/Example_Outputs/CPG_1a.mitochondrial_genome.tidy.cds.fa.gz new file mode 100644 index 0000000..f612067 Binary files /dev/null and b/Example_Outputs/CPG_1a.mitochondrial_genome.tidy.cds.fa.gz differ diff --git a/Example_Outputs/CPG_1a.mitochondrial_genome.tidy.fa.gz b/Example_Outputs/CPG_1a.mitochondrial_genome.tidy.fa.gz new file mode 100644 index 0000000..bd55b3f Binary files /dev/null and b/Example_Outputs/CPG_1a.mitochondrial_genome.tidy.fa.gz differ diff --git a/Example_Outputs/CPG_1a.mitochondrial_genome.tidy.gff3.gz b/Example_Outputs/CPG_1a.mitochondrial_genome.tidy.gff3.gz new file mode 100644 index 0000000..980fc70 Binary files /dev/null and b/Example_Outputs/CPG_1a.mitochondrial_genome.tidy.gff3.gz differ diff --git a/Example_Outputs/CPG_1a.mitochondrial_genome.tidy.pep.fa.gz b/Example_Outputs/CPG_1a.mitochondrial_genome.tidy.pep.fa.gz new file mode 100644 index 0000000..13cd425 Binary files /dev/null and b/Example_Outputs/CPG_1a.mitochondrial_genome.tidy.pep.fa.gz differ diff --git a/Example_Outputs/CPG_1a.nuclear_genome.tidy.cds.fa.gz b/Example_Outputs/CPG_1a.nuclear_genome.tidy.cds.fa.gz new file mode 100644 index 0000000..d1577db Binary files /dev/null and b/Example_Outputs/CPG_1a.nuclear_genome.tidy.cds.fa.gz differ diff --git a/Example_Outputs/CPG_1a.nuclear_genome.tidy.fa.gz b/Example_Outputs/CPG_1a.nuclear_genome.tidy.fa.gz new file mode 100644 index 0000000..cf3bf43 Binary files /dev/null and b/Example_Outputs/CPG_1a.nuclear_genome.tidy.fa.gz differ diff --git a/Example_Outputs/CPG_1a.nuclear_genome.tidy.gff3.gz b/Example_Outputs/CPG_1a.nuclear_genome.tidy.gff3.gz new file mode 100644 index 0000000..3fe1c06 Binary files /dev/null and b/Example_Outputs/CPG_1a.nuclear_genome.tidy.gff3.gz differ diff --git a/Example_Outputs/CPG_1a.nuclear_genome.tidy.pep.fa.gz b/Example_Outputs/CPG_1a.nuclear_genome.tidy.pep.fa.gz new file mode 100644 index 0000000..e66d072 Binary files /dev/null and b/Example_Outputs/CPG_1a.nuclear_genome.tidy.pep.fa.gz differ diff --git a/Example_Outputs/SK1.assembly.final.fa.gz b/Example_Outputs/SK1.assembly.final.fa.gz deleted file mode 100644 index e12192b..0000000 Binary files a/Example_Outputs/SK1.assembly.final.fa.gz and /dev/null differ diff --git a/Example_Outputs/SK1.assembly.final.filter.mummer2vcf.INDEL.vcf.gz b/Example_Outputs/SK1.assembly.final.filter.mummer2vcf.INDEL.vcf.gz deleted file mode 100644 index 16363bc..0000000 Binary files a/Example_Outputs/SK1.assembly.final.filter.mummer2vcf.INDEL.vcf.gz and /dev/null differ diff --git a/Example_Outputs/SK1.assembly.final.filter.mummer2vcf.SNP.vcf.gz b/Example_Outputs/SK1.assembly.final.filter.mummer2vcf.SNP.vcf.gz deleted file mode 100644 index b15e8f6..0000000 Binary files a/Example_Outputs/SK1.assembly.final.filter.mummer2vcf.SNP.vcf.gz and /dev/null differ diff --git a/Example_Outputs/SK1.assembly.final.filter.pdf b/Example_Outputs/SK1.assembly.final.filter.pdf deleted file mode 100644 index c6a514a..0000000 Binary files a/Example_Outputs/SK1.assembly.final.filter.pdf and /dev/null differ diff --git a/Example_Outputs/SK1.assembly.final.stats.txt b/Example_Outputs/SK1.assembly.final.stats.txt deleted file mode 100644 index 2067a0d..0000000 --- a/Example_Outputs/SK1.assembly.final.stats.txt +++ /dev/null @@ -1,17 +0,0 @@ -total sequence count: 34 -total sequence length: 12473902 -min sequence length: 12836 -max sequence length: 1480337 -mean sequence length: 366879.47 -median sequence length: 57378.00 -N50: 923760 -L50: 6 -N90: 328166 -L90: 14 -A%: 30.88 -T%: 30.81 -G%: 19.12 -C%: 19.14 -AT%: 61.69 -GC%: 38.27 -N%: 0.04 diff --git a/Example_Outputs/SK1.final.cds.fa.gz b/Example_Outputs/SK1.final.cds.fa.gz deleted file mode 100644 index 68342e9..0000000 Binary files a/Example_Outputs/SK1.final.cds.fa.gz and /dev/null differ diff --git a/Example_Outputs/SK1.final.gff3.gz b/Example_Outputs/SK1.final.gff3.gz deleted file mode 100644 index 1cf9560..0000000 Binary files a/Example_Outputs/SK1.final.gff3.gz and /dev/null differ diff --git a/Example_Outputs/SK1.final.manual_check.list b/Example_Outputs/SK1.final.manual_check.list deleted file mode 100644 index b7fe7ad..0000000 --- a/Example_Outputs/SK1.final.manual_check.list +++ /dev/null @@ -1,243 +0,0 @@ -SK1_G0000020|SK1_G0000020.mRNA.1 unexpected start codon based on standard genentic code;your selected code table is 1;incorrect CDS length -SK1_G0000680|SK1_G0000680.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0000780|SK1_G0000780.mRNA.1 unexpected start codon based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0000920|SK1_G0000920.mRNA.1 unexpected start codon based on standard genentic code;your selected code table is 1;incorrect CDS length -SK1_G0001070|SK1_G0001070.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0001180|SK1_G0001180.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0001230|SK1_G0001230.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0001430|SK1_G0001430.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0001610|SK1_G0001610.mRNA.1 unexpected start codon based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0001760|SK1_G0001760.mRNA.1 unexpected start codon based on standard genentic code;your selected code table is 1;incorrect CDS length -SK1_G0001860|SK1_G0001860.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0002650|SK1_G0002650.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0002840|SK1_G0002840.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0002870|SK1_G0002870.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0002930|SK1_G0002930.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0003780|SK1_G0003780.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0004160|SK1_G0004160.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0004500|SK1_G0004500.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0004910|SK1_G0004910.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0005420|SK1_G0005420.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0005500|SK1_G0005500.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0005580|SK1_G0005580.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0005780|SK1_G0005780.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0005810|SK1_G0005810.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0005820|SK1_G0005820.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0005840|SK1_G0005840.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0006000|SK1_G0006000.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0006160|SK1_G0006160.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0006410|SK1_G0006410.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0006460|SK1_G0006460.mRNA.1 unexpected stop codon based on standard genentic code;your selected code table is 1 -SK1_G0006470|SK1_G0006470.mRNA.1 unexpected start codon based on standard genentic code;your selected code table is 1 -SK1_G0006620|SK1_G0006620.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0007700|SK1_G0007700.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0007790|SK1_G0007790.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0008090|SK1_G0008090.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0008120|SK1_G0008120.mRNA.1 incorrect CDS length -SK1_G0008130|SK1_G0008130.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0008140|SK1_G0008140.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0009330|SK1_G0009330.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0009990|SK1_G0009990.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0010070|SK1_G0010070.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0010360|SK1_G0010360.mRNA.1 unexpected start codon based on standard genentic code;your selected code table is 1;incorrect CDS length -SK1_G0011110|SK1_G0011110.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0011600|SK1_G0011600.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0012350|SK1_G0012350.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0012500|SK1_G0012500.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0012710|SK1_G0012710.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0012720|SK1_G0012720.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0012900|SK1_G0012900.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0013380|SK1_G0013380.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0013400|SK1_G0013400.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0013690|SK1_G0013690.mRNA.1 unexpected stop codon based on standard genentic code;your selected code table is 1 -SK1_G0013730|SK1_G0013730.mRNA.1 unexpected stop codon based on standard genentic code;your selected code table is 1;incorrect CDS length -SK1_G0013740|SK1_G0013740.mRNA.1 unexpected start codon based on standard genentic code;your selected code table is 1;incorrect CDS length -SK1_G0013810|SK1_G0013810.mRNA.1 incorrect CDS length -SK1_G0013830|SK1_G0013830.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0014550|SK1_G0014550.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0014600|SK1_G0014600.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0015000|SK1_G0015000.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0015140|SK1_G0015140.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0015530|SK1_G0015530.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0015560|SK1_G0015560.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0016490|SK1_G0016490.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0016620|SK1_G0016620.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0016840|SK1_G0016840.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0016850|SK1_G0016850.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0016950|SK1_G0016950.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0016960|SK1_G0016960.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0017430|SK1_G0017430.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0017510|SK1_G0017510.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0017770|SK1_G0017770.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;incorrect CDS length -SK1_G0017780|SK1_G0017780.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0017790|SK1_G0017790.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0017940|SK1_G0017940.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0018170|SK1_G0018170.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0018550|SK1_G0018550.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0019100|SK1_G0019100.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0019390|SK1_G0019390.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0019500|SK1_G0019500.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0020150|SK1_G0020150.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0021560|SK1_G0021560.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0021800|SK1_G0021800.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0022770|SK1_G0022770.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0022810|SK1_G0022810.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0022840|SK1_G0022840.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0022910|SK1_G0022910.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0022940|SK1_G0022940.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0023550|SK1_G0023550.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0023600|SK1_G0023600.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0023790|SK1_G0023790.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0023810|SK1_G0023810.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0023870|SK1_G0023870.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0024170|SK1_G0024170.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0024200|SK1_G0024200.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0024380|SK1_G0024380.mRNA.1 unexpected start codon based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0024420|SK1_G0024420.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0024810|SK1_G0024810.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0025250|SK1_G0025250.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0025390|SK1_G0025390.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0025430|SK1_G0025430.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0025610|SK1_G0025610.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0025630|SK1_G0025630.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0025970|SK1_G0025970.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0026260|SK1_G0026260.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0026410|SK1_G0026410.mRNA.1 unexpected start codon based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0026500|SK1_G0026500.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0026540|SK1_G0026540.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0026690|SK1_G0026690.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0026890|SK1_G0026890.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0027180|SK1_G0027180.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0027630|SK1_G0027630.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0027660|SK1_G0027660.mRNA.1 incorrect CDS length -SK1_G0027700|SK1_G0027700.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0027740|SK1_G0027740.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0027770|SK1_G0027770.mRNA.1 unexpected start codon based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0027920|SK1_G0027920.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0028510|SK1_G0028510.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0029460|SK1_G0029460.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0029530|SK1_G0029530.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0029890|SK1_G0029890.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0030020|SK1_G0030020.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0031030|SK1_G0031030.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0031130|SK1_G0031130.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0031200|SK1_G0031200.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0031810|SK1_G0031810.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0032220|SK1_G0032220.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0032380|SK1_G0032380.mRNA.1 unexpected stop codon based on standard genentic code;your selected code table is 1;incorrect CDS length -SK1_G0033290|SK1_G0033290.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0033390|SK1_G0033390.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0033400|SK1_G0033400.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0034230|SK1_G0034230.mRNA.1 unexpected start codon based on standard genentic code;your selected code table is 1;incorrect CDS length -SK1_G0034380|SK1_G0034380.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0034890|SK1_G0034890.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0035490|SK1_G0035490.mRNA.1 unexpected start codon based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0035710|SK1_G0035710.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0035860|SK1_G0035860.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0036800|SK1_G0036800.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0036910|SK1_G0036910.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0038600|SK1_G0038600.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0038690|SK1_G0038690.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0039140|SK1_G0039140.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0039270|SK1_G0039270.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0039290|SK1_G0039290.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0039600|SK1_G0039600.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0039640|SK1_G0039640.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0039750|SK1_G0039750.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0039810|SK1_G0039810.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0039930|SK1_G0039930.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0040190|SK1_G0040190.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0040200|SK1_G0040200.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0040500|SK1_G0040500.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0041510|SK1_G0041510.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0041740|SK1_G0041740.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0041950|SK1_G0041950.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0042260|SK1_G0042260.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0042330|SK1_G0042330.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0042570|SK1_G0042570.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0043650|SK1_G0043650.mRNA.1 unexpected stop codon based on standard genentic code;your selected code table is 1;incorrect CDS length -SK1_G0043680|SK1_G0043680.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0043700|SK1_G0043700.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0044000|SK1_G0044000.mRNA.1 unexpected start codon based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0044010|SK1_G0044010.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0044280|SK1_G0044280.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0044330|SK1_G0044330.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0044920|SK1_G0044920.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0045100|SK1_G0045100.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0045470|SK1_G0045470.mRNA.1 unexpected start codon based on standard genentic code;your selected code table is 1 -SK1_G0045560|SK1_G0045560.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0045850|SK1_G0045850.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0046100|SK1_G0046100.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0046260|SK1_G0046260.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0047240|SK1_G0047240.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0047250|SK1_G0047250.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0047330|SK1_G0047330.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0047360|SK1_G0047360.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0047470|SK1_G0047470.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0047880|SK1_G0047880.mRNA.1 unexpected start codon based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0047890|SK1_G0047890.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0048580|SK1_G0048580.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0048590|SK1_G0048590.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0049250|SK1_G0049250.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0050130|SK1_G0050130.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0050980|SK1_G0050980.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0051140|SK1_G0051140.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0051210|SK1_G0051210.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0051540|SK1_G0051540.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0052240|SK1_G0052240.mRNA.1 unexpected start codon based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0052480|SK1_G0052480.mRNA.1 unexpected stop codon based on standard genentic code;your selected code table is 1;incorrect CDS length -SK1_G0052490|SK1_G0052490.mRNA.1 unexpected start codon based on standard genentic code;your selected code table is 1;incorrect CDS length -SK1_G0052630|SK1_G0052630.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0052670|SK1_G0052670.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0052680|SK1_G0052680.mRNA.1 unexpected start codon based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0052700|SK1_G0052700.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0052730|SK1_G0052730.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0053030|SK1_G0053030.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0053120|SK1_G0053120.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0053650|SK1_G0053650.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0053830|SK1_G0053830.mRNA.1 unexpected start codon based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0054270|SK1_G0054270.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0054370|SK1_G0054370.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0054560|SK1_G0054560.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0055100|SK1_G0055100.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0055160|SK1_G0055160.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0055240|SK1_G0055240.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0055500|SK1_G0055500.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0055970|SK1_G0055970.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0056270|SK1_G0056270.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0057280|SK1_G0057280.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0057330|SK1_G0057330.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0057380|SK1_G0057380.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0057410|SK1_G0057410.mRNA.1 unexpected start codon based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0057470|SK1_G0057470.mRNA.1 unexpected start codon based on standard genentic code;your selected code table is 1 -SK1_G0057490|SK1_G0057490.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0057500|SK1_G0057500.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0057510|SK1_G0057510.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0057540|SK1_G0057540.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0057750|SK1_G0057750.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0057830|SK1_G0057830.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0057860|SK1_G0057860.mRNA.1 incorrect CDS length -SK1_G0057890|SK1_G0057890.mRNA.1 incorrect CDS length -SK1_G0057930|SK1_G0057930.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0057970|SK1_G0057970.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0058000|SK1_G0058000.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0058030|SK1_G0058030.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0058070|SK1_G0058070.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0058100|SK1_G0058100.mRNA.1 unexpected start codon based on standard genentic code;your selected code table is 1;incorrect CDS length -SK1_G0058110|SK1_G0058110.mRNA.1 unexpected stop codon based on standard genentic code;your selected code table is 1;incorrect CDS length -SK1_G0058160|SK1_G0058160.mRNA.1 unexpected start codon based on standard genentic code;your selected code table is 1;incorrect CDS length -SK1_G0058200|SK1_G0058200.mRNA.1 unexpected stop codon based on standard genentic code;your selected code table is 1 -SK1_G0058290|SK1_G0058290.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0058300|SK1_G0058300.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0058320|SK1_G0058320.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0058330|SK1_G0058330.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0058340|SK1_G0058340.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0058350|SK1_G0058350.mRNA.1 unexpected stop codon based on standard genentic code;your selected code table is 1 -SK1_G0058470|SK1_G0058470.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0058550|SK1_G0058550.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 1;internal stop codon(s) -SK1_G0058760|SK1_G0058760.mRNA.1 unexpected start codon based on standard genentic code;your selected code table is 1;incorrect CDS length -cox2|cox2.mRNA.1 unexpected stop codon based on standard genentic code;your selected code table is 3;incorrect CDS length -orf474|orf474.mRNA.1 unexpected start codon based on standard genentic code;your selected code table is 3;incorrect CDS length -orf90|orf90.mRNA.1 unexpected start codon based on standard genentic code;your selected code table is 3 -orf241|orf241.mRNA.1 unexpected start & end codons based on standard genentic code;your selected code table is 3;incorrect CDS length -orf152|orf152.mRNA.1 incorrect CDS length diff --git a/Example_Outputs/SK1.final.pep.fa.gz b/Example_Outputs/SK1.final.pep.fa.gz deleted file mode 100644 index 0e4bacb..0000000 Binary files a/Example_Outputs/SK1.final.pep.fa.gz and /dev/null differ diff --git a/Example_Outputs/SK1.final.trimmed_cds.fa.gz b/Example_Outputs/SK1.final.trimmed_cds.fa.gz deleted file mode 100644 index 5dd77bb..0000000 Binary files a/Example_Outputs/SK1.final.trimmed_cds.fa.gz and /dev/null differ diff --git a/LRSDAY_flowchart.png b/LRSDAY_flowchart.png index 6d15d6d..f2566e9 100644 Binary files a/LRSDAY_flowchart.png and b/LRSDAY_flowchart.png differ diff --git a/Manual.pdf b/Manual.pdf deleted file mode 100644 index 3176c9e..0000000 Binary files a/Manual.pdf and /dev/null differ diff --git a/Manual_20221231.docx b/Manual_20221231.docx new file mode 100644 index 0000000..f557b82 Binary files /dev/null and b/Manual_20221231.docx differ diff --git a/Project_Template/00.Long_Reads/LRSDAY.00.Long_Reads_Preprocessing.sh b/Project_Template/00.Long_Reads/LRSDAY.00.Long_Reads_Preprocessing.sh index 926db3f..c0347d6 100755 --- a/Project_Template/00.Long_Reads/LRSDAY.00.Long_Reads_Preprocessing.sh +++ b/Project_Template/00.Long_Reads/LRSDAY.00.Long_Reads_Preprocessing.sh @@ -1,19 +1,19 @@ #!/bin/bash set -e -o pipefail ####################################### -# load environment variables for LRSDAY +# load environment variables source ./../../env.sh ####################################### # set project-specific variables -prefix="SK1" # The file name prefix for the processing sample. Default = "SK1" for the testing example. -reads="./../00.Long_Reads/$prefix.filtered_subreads.fastq.gz" # The file path of the long reads file (in fastq or fastq.gz format). -reads_type="pacbio-raw" # The long reads data type: "pacbio-raw" or "pacbio-corrected" or "nanopore-raw" or "nanopore-corrected". +prefix="CPG_1a" # The file name prefix (only allowing strings of alphabetical letters, numbers, and underscores) for the processing sample. Default = "CPG_1a" for the testing example. +reads="./../00.Long_Reads/nanopore_basecalled_fastq_files/$prefix/$prefix.basecalled_reads.Q5.pass.fastq.gz" # The file path of the long reads file (in fastq or fastq.gz format). +reads_type="nanopore-raw" # The long reads data type: "pacbio-raw" or "pacbio-corrected" or "nanopore-raw" or "nanopore-corrected". run_filtering="yes" # Whether to filter and downsample the reads: "yes" or "no". Default = "yes". genome_size="12500000" # The haploid genome size (in bp) of sequenced organism. Default = "12500000" (i.e. 12.5 Mb for the budding yeast S. cereviaie genome). This is used to calculate targeted sequencing coverage after read filtering (see below). post_filtering_coverage="60" # Targeted sequencing coverage after read filtering and downsampling. Default = "60" (i.e. 60x coverage). -threads=4 # The number of threads to use. Default = "1". +threads=24 # The number of threads to use. Default = "4". ####################################### # process the pipeline @@ -27,7 +27,7 @@ then echo "" echo "genome_size=$genome_size, post_filtering_coverage=$post_filtering_coverage, filtlong_target_bases=$filtlong_target_bases" echo "" - $filtlong_dir/filtlong --min_length 1000 --mean_q_weight 10 --target_bases $filtlong_target_bases $prefix.porechop.fastq.gz | gzip > $prefix.filtlong.fastq.gz + $filtlong_dir/filtlong --min_length 1000 --mean_q_weight 10 --window_q_weight 5 --target_bases $filtlong_target_bases $prefix.porechop.fastq.gz | gzip > $prefix.filtlong.fastq.gz fi else if [[ "$run_filtering" == "yes" ]] @@ -36,7 +36,7 @@ else echo "" echo "genome_size=$genome_size, post_filtering_coverage=$post_filtering_coverage, filtlong_target_bases=$filtlong_target_bases" echo "" - $filtlong_dir/filtlong --min_length 1000 --mean_q_weight 10 --target_bases $filtlong_target_bases $reads | gzip > $prefix.filtlong.fastq.gz + $filtlong_dir/filtlong --min_length 1000 --mean_q_weight 10 --window_q_weight 5 --target_bases $filtlong_target_bases $reads | gzip > $prefix.filtlong.fastq.gz fi fi diff --git a/Project_Template/00.Long_Reads/LRSDAY.00.Nanopore_Reads_Basecalling.sh b/Project_Template/00.Long_Reads/LRSDAY.00.Nanopore_Reads_Basecalling.sh new file mode 100755 index 0000000..4ce407f --- /dev/null +++ b/Project_Template/00.Long_Reads/LRSDAY.00.Nanopore_Reads_Basecalling.sh @@ -0,0 +1,222 @@ +#!/bin/bash +set -e -o pipefail +####################################### +# load environment variables +source ./../../env.sh + +######################## +guppy_run_mode="cpu" # The running mode of Guppy basecalling: "gpu" or "cpu". Default = "cpu". +if [[ $guppy_run_mode == "gpu" ]] +then + # set CUDA environment for GPU + gpu_bin_path="/public/software/cuda-11.4/bin" # The path of CUDA's bin directory. Default = "/public/software/cuda-11.4/bin". + gpu_lib_path="/public/software/cuda-11.4/lib64" # The path of CUDA's lib directory. Default = "/public/software/cuda-11.4/lib64". + gpu_include_path="/public/software/cuda-11.4/include" # The path of CUDA's include directory. Default = "/public/software/cuda-11.4/include". +fi +##########################3 +export PATH=$gpu_bin_path:$PATH +export LD_LIBRARY_PATH=$gpu_lib_path:$LD_LIBRARY_PATH +export C_INCLUDE_PATH=$gpu_include_path:$C_INCLUDE_PATH +export CPLUS_INCLUDE_PATH=$C_INCLUDE_PATH + +##k##################################### +# set project-specific variables + +sample_id="CPG_1a" # The file name prefix (only allowing strings of alphabetical letters, numbers, and underscores) for the processing sample. Default = "CPG_1a" for the testing example. +raw_fast5_dir="./nanopore_raw_fast5_files/$sample_id" # The directory containing the raw nanopore reads before basecalling. Default = "./raw_fast5/$sample_id". +flowcell_version="FLO-MIN106" # The flowcell version of the nanopore run. Default = "FLO-MIN106". +sequencing_kit_version="SQK-LSK108" # The sequencing kit version of the nanopore run. Default = "SQK-LSK109". +barcode_kit_version="EXP-NBD104" # The barcode kit version of the nanopore run if barcoding has been introduced during library preparation. Default = "EXP-NBD104". For the testing example, we have not applied barcoding. So this information will not be used when we set run_demultiplexing="no" below. + +run_basecalling="yes" # Whether to perform basecalling: "yes" or "no". Default = "yes". +run_demultiplexing="no" # Whether to perform demultiplexing: "yes" or "no". Default = "no". For the testing example, we have not applied barcoding. So no need to run this step. +run_nanoplotting="yes" # Whether to perform nanoplotting: "yes" or "no". Default = "yes". + +threads=16 # The number of CPU threads to use. Default = 16. +debug="no" # Whether to keep intermediate files for debugging: "yes" or "no". Default = "no". + +############################# +# Normally no need to change the following parameter settings. +basecalled_fast5_dir="./nanopore_basecalled_fast5_files/$sample_id" # The directory containing the basecalled fast5 reads. This directory will be automatically generated when running basecalling. +basecalled_fastq_dir="./nanopore_basecalled_fastq_files/$sample_id" # The directory containing the basecalled fastq reads. This directory will be automatically generated when running basecalling. +basecalled_qc_dir="./nanopore_basecalled_qc_files/$sample_id" # The directory containing nanoplot QC outputs. This directory will be automatically generated when running nanoplot. +trim_strategy="dna" # Trimming strategy to apply: 'dna' or 'rna' or 'none' (to disable trimming). Default = "rna". +gpu_device="auto" # Which GPU device to use. Default = "auto". +qual=5 # read quality filter for guppy basecalling. Default = 5. +num_callers_in_cpu_mode=$threads # The number of callers for guppy basecalling in the CPU mode. Default = "$threads". +num_callers_in_gpu_mode=$threads # The number of callers for guppy basecalling in the GPU mode. Default = "1". +gpu_runners_per_device=1 # The number of GPU runners per device for guppy basecalling in the GPU mode. Default = "1". +threads_per_caller=1 # The number of threads per caller for guppy basecalling. Default = "1". +demultiplexing_threads=$threads # The number of threads to use for guppy demultiplexing. Default = "$threads". +demultiplexed_fastq_dir="$basecalled_fastq_dir/demultiplexed_fastq" # The directory containing the demultiplexed basecalled nanopore reads. This directory will be automatically generated when running demultiplexing. + +############################## + +wkdir=$(pwd) +if [[ "$run_demultiplexing" == "yes" && "barcode_kit_version" == "" ]] +then + echo "The variable run_demultiplexing has been set to \"yes\" but the barcode_kit_version variable has not been specified!" + echo "Please specified barcode_kit_version if you want to run demultiplexing." + exit; +fi + + +if [[ "$run_basecalling" == "yes" ]] +then + echo "Check if $basecalled_fast5_dir is empty for running basecalling." + if [[ -d $basecalled_fast5_dir && "$(ls $basecalled_fast5_dir)" ]] + then + echo "Warning! The basecalled fast5 directory $basecalled_fast5_dir exists and it is not empty! Please empty its content if you want to run basecalling." + echo "Exit!!!" + exit + elif [[ -d $basecalled_fastq_dir && "$(ls $basecalled_fastq_dir)" ]] + then + echo "Warning! The basecalled fastq directory $basecalled_fastq_dir exists and it is not empty! Please empty its content if you want to run basecalling." + echo "Exit!!!" + exit + else + echo "Check passed!" + echo "Running basecalling .." + if [[ ! -d $basecalled_fast5_dir ]] + then + mkdir -p $basecalled_fast5_dir + fi + if [[ ! -d $basecalled_fastq_dir ]] + then + mkdir -p $basecalled_fastq_dir + fi + + if [[ "$guppy_run_mode" == "gpu" ]] + then + $guppy_gpu_dir/guppy_basecaller \ + --flowcell $flowcell_version \ + --kit $sequencing_kit_version \ + --recursive \ + --trim_strategy $trim_strategy \ + --input_path $raw_fast5_dir \ + --save_path $basecalled_fast5_dir \ + --fast5_out \ + --min_qscore $qual \ + --device $gpu_device \ + --num_callers $num_callers_in_gpu_mode \ + --gpu_runners_per_device $gpu_runners_per_device \ + --compress_fastq + else + $guppy_cpu_dir/guppy_basecaller \ + --flowcell $flowcell_version \ + --kit $sequencing_kit_version \ + --recursive \ + --trim_strategy $trim_strategy \ + --input_path $raw_fast5_dir \ + --save_path $basecalled_fast5_dir \ + --fast5_out \ + --min_qscore $qual \ + --num_callers $num_callers_in_cpu_mode \ + --cpu_threads_per_caller $threads_per_caller \ + --compress_fastq + fi + cat $basecalled_fast5_dir/pass/*.fastq.gz > $basecalled_fastq_dir/$sample_id.basecalled_reads.Q${qual}.pass.fastq.gz + # cat $basecalled_fast5_dir/fail/*.fastq.gz > $basecalled_fastq_dir/$sample_id.basecalled_reads.Q${qual}.fail.fastq.gz + if [[ $debug != "yes" ]] + then + rm -r $basecalled_fast5_dir/pass + rm -r $basecalled_fast5_dir/fail + fi + fi +fi + +cd $wkdir +if [[ "$run_demultiplexing" == "yes" ]] +then + echo "Check if $basecalled_fastq_dir has basecalled reads for running demultiplexing." + if [[ "$(ls $basecalled_fastq_dir)" ]] + then + echo "Running demultiplexing." + if [[ "$guppy_run_mode" == "gpu" ]] + then + $guppy_gpu_dir/guppy_barcoder \ + --barcode_kits $barcode_kit_version \ + --recursive \ + --input_path $basecalled_fastq_dir \ + --save_path $demultiplexed_fastq_dir \ + --worker_threads $demultiplexing_threads + else + $guppy_cpu_dir/guppy_barcoder \ + --barcode_kits $barcode_kit_version \ + --recursive \ + --input_path $basecalled_fastq_dir \ + --save_path $demultiplexed_fastq_dir \ + --worker_threads $demultiplexing_threads + fi + + cd $demultiplexed_fastq_dir + for b in barcode* + do + echo "for demultiplexing: barcode=$b" + cat ./$b/*.fastq |gzip -c > $sample_id.basecalled_reads.Q${qual}.pass.$b.fastq.gz + done + cat ./unclassified/*.fastq |gzip -c > $sample_id.basecalled_reads.Q${qual}.pass.unclassified.fastq.gz + else + echo "There is no reads in $basecalled_fastq_dir!" + echo "Please put the basecalled reads in $basecalled_fastq_dir for demultiplexing!" + echo "Exit!!!" + exit + fi +fi + +set +oe pipefail + +cd $wkdir +if [[ "$run_nanoplotting" == "yes" ]] +then + echo "Check if $basecalled_fastq_dir has basecalled reads for running nanoplotting." + if [[ "$(ls $basecalled_fastq_dir)" ]] + then + echo "Running nanoplotting." + mkdir -p $basecalled_qc_dir + fastq_input="$basecalled_fastq_dir/$sample_id.basecalled_reads.Q${qual}.pass.fastq.gz" + $nanoplot_dir/NanoPlot \ + --threads $threads \ + --fastq $fastq_input \ + --N50 \ + -o "$basecalled_qc_dir/${sample_id}_basecalled_reads_Q${qual}_pass_NanoPlot_out" + fi + if [[ "$run_demultiplexing" == "yes" ]] + then + cd $demultiplexed_fastq_dir + for b in barcode* + do + echo "for nanoplotting: barcode=$b" + fastq_input="./$sample_id.basecalled_reads.Q${qual}.pass.$b.fastq.gz" + $nanoplot_dir/NanoPlot \ + --threads $threads \ + --fastq $fastq_input \ + --N50 \ + -o "./../../../$basecalled_qc_dir/${sample_id}_basecalled_reads_Q${qual}_pass_${b}_NanoPlot_out" + done + echo "for nanoplotting: unclassified" + fastq_input="./$sample_id.basecalled_reads.Q${qual}.pass.unclassified.fastq.gz" + $nanoplot_dir/NanoPlot \ + --threads $threads \ + --fastq $fastq_input \ + --N50 \ + -o "./../../../$basecalled_qc_dir/${sample_id}_basecalled_reads_Q${qual}_pass_unclassified_NanoPlot_out" + fi +fi + + + +############################ +# checking bash exit status +if [[ $? -eq 0 ]] +then + echo "" + echo "##########################################################################" + echo "" + echo "LRSDAY message: This bash script has been successfully processed! :)" + echo "" + echo "##########################################################################" + echo "" + exit 0 +fi +############################ diff --git a/Project_Template/00.Long_Reads/LRSDAY.00.Nanopore_Reads_Basecalling_and_Demultiplexing.sh b/Project_Template/00.Long_Reads/LRSDAY.00.Nanopore_Reads_Basecalling_and_Demultiplexing.sh deleted file mode 100755 index 6c1c640..0000000 --- a/Project_Template/00.Long_Reads/LRSDAY.00.Nanopore_Reads_Basecalling_and_Demultiplexing.sh +++ /dev/null @@ -1,139 +0,0 @@ -#!/bin/bash -set -e -o pipefail -####################################### -# load environment variables for LRSDAY -source ./../../env.sh - -####################################### -# set project-specific variables -project_name="Project_Example" # LRSDAY Project name. Default = "Project_Example". -run_basecalling="yes" # Whether to perform basecalling: "yes" or "no". Default = "yes". -run_demultiplexing="yes" # Whether to perform demultiplexing: "yes" or "no". Default = "yes". -run_nanoplotting="yes" # Whether to perform nanoplotting: "yes" or "no". Default = "yes". - -flowcell_id="FAKXXXXX" # The flowcell ID of the nanopore run. Default = "FAKXXXXX". -flowcell_version="FLO-MIN106" # The flowcell version of the nanopore run. Default = "FLO-MIN106". -sequencing_kit_version="SQK-LSK108" # The sequencing kit version of the nanopore run. Default = "SQK-LSK108". -barcode_kit_version="EXP-NBD103" # The barcode kit version of the nanopore run. Default = "EXP-NBD103". - -raw_reads_directory="$LRSDAY_HOME/$project_name/00.Long_Reads/nanopore_raw_fast5_files" # The directory containing the raw nanopore reads before basecalling -basecalling_output_directory="$LRSDAY_HOME/$project_name/00.Long_Reads/nanopore_basecalled_fast5_files" # The directory containing the basecalled nanopore reads. This directory will be automatically generated when running basecalling. -threads=8 # The number of threads to use. Default = 8. - -############################# -# normally no need to change the following -qual=5 # read quality filter for guppy basecalling -num_callers=$threads # num_callers for guppy -threads_per_caller=1 # threads_per_caller for guppy -demultiplexing_threads=$threads # threads to use for demultiplexing -demultiplexing_output_directory="$LRSDAY_HOME/$project_name/00.Long_Reads/nanopore_demultiplexed_fastq_files" # The directory containing the demultiplexed basecalled nanopore reads. This directory will be automatically generated when running demultiplexing. - -if [[ "$run_basecalling" == "yes" ]] -then - echo "Check if $basecalling_output_directory is empty for running basecalling." - if [[ "$(ls $basecalling_output_directory)" ]] - then - echo "Warning! The basecalling directory is not empty! Please empty its content if you want to run basecalling." - echo "Exit!!!" - exit - else - echo "Running basecalling." - $guppy_dir/guppy_basecaller \ - --flowcell $flowcell_version \ - --kit $sequencing_kit_version \ - --recursive \ - --input_path $raw_reads_directory \ - --save_path $basecalling_output_directory \ - --fast5_out \ - --qscore_filtering \ - --min_qscore $qual \ - --num_callers $num_callers \ - --cpu_threads_per_caller $threads_per_caller - cd $basecalling_output_directory - cat ./pass/*.fastq |gzip -c > $project_name.basecalled_reads.Q${qual}.pass.fastq.gz - cat ./fail/*.fastq |gzip -c > $project_name.basecalled_reads.Q${qual}.fail.fastq.gz - fi -fi - -if [[ "$run_demultiplexing" == "yes" ]] -then - echo "Check if $basecalling_output_directory/pass has basecalled reads for running demultiplexing." - if [[ "$(ls $basecalling_output_directory/pass)" ]] - then - echo "Running demultiplexing." - $guppy_dir/guppy_barcoder \ - --barcode_kit $barcode_kit_version \ - --recursive \ - --input_path $basecalling_output_directory/pass \ - --save_path $demultiplexing_output_directory \ - --worker_threads $demultiplexing_threads - - cd $demultiplexing_output_directory - for b in barcode* - do - echo "for demultiplexing: barcode=$b" - cat ./$b/*.fastq |gzip -c > $project_name.basecalled_reads.Q${qual}.pass.$b.fastq.gz - done - cat ./unclassified/*.fastq |gzip -c > $project_name.basecalled_reads.Q${qual}.pass.unclassified.fastq.gz - else - echo "There is no reads in $basecalling_output_directory/pass!" - echo "Please put the basecalled reads in $basecalling_output_directory/pass for demultiplexing!" - echo "Exit!!!" - exit - fi -fi - -set +oe pipefail - -if [[ "$run_nanoplotting" == "yes" ]] -then - echo "Check if $basecalling_output_directory/pass has basecalled reads for running nanoplotting." - if [[ "$(ls $basecalling_output_directory/pass)" ]] - then - echo "Running nanoplotting." - cd $basecalling_output_directory - fastq_input="$project_name.basecalled_reads.Q${qual}.pass.fastq.gz" - source $nanoplot_dir/activate - $nanoplot_dir/NanoPlot \ - --threads $threads \ - --fastq $fastq_input \ - --N50 \ - -o "${project_name}_Q${qual}_pass_NanoPlot_out" - fi - if [[ "$run_demultiplexing" == "yes" ]] - then - cd $demultiplexing_output_directory - for b in barcode* - do - echo "for nanoplotting: barcode=$b" - fastq_input="$project_name.basecalled_reads.Q${qual}.pass.$b.fastq.gz" - source $nanoplot_dir/activate - $nanoplot_dir/NanoPlot \ - --threads $threads \ - --fastq $fastq_input \ - --N50 \ - -o "${project_name}_Q${qual}_pass_${b}_NanoPlot_out" - done - echo "for nanoplotting: unclassified" - fastq_input="$project_name.basecalled_reads.Q${qual}.pass.unclassified.fastq.gz" - $nanoplot_dir/NanoPlot \ - --threads $threads \ - --fastq $fastq_input \ - --N50 \ - -o "${project_name}_Q${qual}_pass_unclassified_NanoPlot_out" - fi -fi - - - -############################ -# checking bash exit status -if [[ $? -eq 0 ]] -then - echo "" - echo "LRSDAY message: This bash script has been successfully processed! :)" - echo "" - echo "" - exit 0 -fi -############################ diff --git a/Project_Template/00.Short_Reads/.gitkeep b/Project_Template/00.Short_Reads/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Project_Template/00.Short_Reads/LRSDAY.00.Retrieve_Sample_Illumina_Reads.sh b/Project_Template/00.Short_Reads/LRSDAY.00.Retrieve_Sample_Illumina_Reads.sh deleted file mode 100755 index fe91af9..0000000 --- a/Project_Template/00.Short_Reads/LRSDAY.00.Retrieve_Sample_Illumina_Reads.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash -set -e -o pipefail - -####################################### -# load environment variables for LRSDAY -source ./../../env.sh - -####################################### -# set project-specific variables -sra_id="SRR4074258" # the SRA Run ID for the reads that you want to retrieve, e.g. "SRR4074258 for S. cerevisiae strain SK1 generated by Yue et al. (2017) Nature Genetics" - -####################################### -# process the pipeline -echo "retrieve reads by the SRR_id: $sra_id ..." -$sra_dir/fastq-dump --defline-seq '@$sn[_$rn]/$ri' --defline-qual '+$sn[_$rn]/$ri' \ - --gzip --split-files -skip-technical --dumpbase --read-filter pass --clip $sra_id - -# if the fastq-dump doesn't work due to connection problems, please run the following two wget commands to directly download the reads. -# wget ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR407/008/SRR4074258/SRR4074258_1.fastq.gz -# ln -s SRR4074258_1.fastq.gz SRR4074258_pass_1.fastq.gz -# wget ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR407/008/SRR4074258/SRR4074258_2.fastq.gz -# ln -s SRR4074258_2.fastq.gz SRR4074258_pass_2.fastq.gz - -############################ -# checking bash exit status -if [[ $? -eq 0 ]] -then - echo "" - echo "LRSDAY message: This bash script has been successfully processed! :)" - echo "" - echo "" - exit 0 -fi -############################ diff --git a/Project_Template/01.Long-read-based_Genome_Assembly/LRSDAY.01.Long-read-based_Genome_Assembly.sh b/Project_Template/01.Long-read-based_Genome_Assembly/LRSDAY.01.Long-read-based_Genome_Assembly.sh index e471900..3dbdf41 100755 --- a/Project_Template/01.Long-read-based_Genome_Assembly/LRSDAY.01.Long-read-based_Genome_Assembly.sh +++ b/Project_Template/01.Long-read-based_Genome_Assembly/LRSDAY.01.Long-read-based_Genome_Assembly.sh @@ -1,19 +1,20 @@ #!/bin/bash set -e -o pipefail ########################################## -# load environment variables for LRSDAY +# load environment variables source ./../../env.sh PATH=$gnuplot_dir:$PATH ########################################### # set project-specific variables -prefix="SK1" # The file name prefix for the processing sample. Default = "SK1" for the testing example. +prefix="CPG_1a" # The file name prefix (only allowing strings of alphabetical letters, numbers, and underscores) for the processing sample. Default = "CPG_1a" for the testing example. + long_reads="./../00.Long_Reads/$prefix.filtlong.fastq.gz" # The file path of the long reads file (in fastq or fastq.gz format). -long_reads_type="pacbio-raw" # The long reads data type. Use "pacbio-raw" or "pacbio-corrected" or "nanopore-raw" or "nanopore-corrected". Default = "pacbio-raw" for the testing example +long_reads_type="nanopore-raw" # The long reads data type. Use "pacbio-raw" or "pacbio-corrected" or "pacbio-hifi" or "nanopore-raw" or "nanopore-corrected" or "nanopore-hq" (QV20 reads). Default = "nanopore-raw" for the testing example. genome_size="12.5m" # The estimated genome size with the format of [g|m|k], e.g. 12.5m for 12.5 Mb. Default = "12.5m". -assembler="canu" # The long-read assembler to use. Use "canu" or "flye" or "wtdbg2" or "smartdenovo" or "ra" or "shasta" or "canu-flye" or "canu-wtdbg2" or "canu-smartdenovo" or "canu-ra" or "canu-shasta". For "canu-flye", "canu-wtdbg2", "canu-smartdenovo", "canu-ra", or "canu-shasta", the assembler canu is used first to generate error-corrected reads from the raw reads and then the assembler flye/wtdbg2/smartdenovo/ra/shasta is used to assemble the genome. Default = "canu". -customized_canu_parameters="" # When assembler="canu" or "canu-flye", "canu-wtdbg2", "canu-smartdenovo", "canu-ra", or "canu-shasta", users can set customized Canu assembly parameters here when needed. If users want to keep Canu's default parameters or when other assembler is used, simply leave it empty like customized_canu_parameters="". For example users could set customized_canu_parameters="correctedErrorRate=0.04" for high coverage (>60X) PacBio data and customized_canu_parameters="overlapper=mhap;utgReAlign=true" for high coverage (>60X) Nanopore data to improve the assembly speed. When assembling genomes with high heterozygosity, you can could set customized_canu_parameters="corOutCoverage=200;batOptions=-dg 3 -db 3 -dr 1 -ca 500 -cp 50" to avoid collasping haplotypes. As shown in these examples, more than one customized parameters can be set here as long as they are separeted by a semicolon and contained in a pair of double quotes (e.g. customized_canu_parameters="option1=XXX;option2=YYY;option3=ZZZ"). Please consult Canu's manual "http://canu.readthedocs.io/en/latest/faq.html#what-parameters-can-i-tweak" for advanced customization settings. Default = "" for the testing example. -threads=4 # The number of threads to use. Default = 4. +assembler="canu" # The long-read assembler to use. Use "canu" or "flye" or "wtdbg2" or "smartdenovo" or "shasta" or "canu-flye" or "canu-wtdbg2" or "canu-smartdenovo" or "canu-shasta". For "canu-flye", "canu-wtdbg2", "canu-smartdenovo", or "canu-shasta", the assembler canu is used first to generate error-corrected reads from the raw reads and then the assembler flye/wtdbg2/smartdenovo/shasta is used to assemble the genome. Default = "canu". +customized_canu_parameters="" # When assembler="canu" or "canu-flye", "canu-wtdbg2", "canu-smartdenovo", or "canu-shasta", users can set customized Canu assembly parameters here when needed. If users want to keep Canu's default parameters or when other assembler is used, simply leave it empty like customized_canu_parameters="". For example users could set customized_canu_parameters="correctedErrorRate=0.04" for high coverage (>60X) PacBio data and customized_canu_parameters="overlapper=mhap;utgReAlign=true" for high coverage (>60X) Nanopore data to improve the assembly speed. When assembling genomes with high heterozygosity, you can could set customized_canu_parameters="corOutCoverage=200;batOptions=-dg 3 -db 3 -dr 1 -ca 500 -cp 50" to avoid collasping haplotypes. As shown in these examples, more than one customized parameters can be set here as long as they are separeted by a semicolon and contained in a pair of double quotes (e.g. customized_canu_parameters="option1=XXX;option2=YYY;option3=ZZZ"). Please consult Canu's manual "http://canu.readthedocs.io/en/latest/faq.html#what-parameters-can-i-tweak" for advanced customization settings. Default = "" for the testing example. +threads=8 # The number of threads to use. Default = 8. vcf="yes" # Use "yes" if prefer to have vcf file generated to show SNP and INDEL differences between the assembled genome and the reference genome for their uniquely alignable regions. Otherwise use "no". Default = "yes". dotplot="yes" # Use "yes" if prefer to plot genome-wide dotplot based on the comparison with the reference genome below. Otherwise use "no". Default = "yes". @@ -23,11 +24,11 @@ then ref_genome_raw="./../00.Reference_Genome/S288C.ASM205763v1.fa" # The file path of the raw reference genome. This is only needed when the option "dotplot" or "vcf" has been set as "yes". else parent1_tag="Parent1" # The name tag for parent1. Default = "Parent1". - parent1_short_reads="./../00.Short_Reads/$parent1_tag.illumina.fastq.gz" # The relative path to Illumina reads of parent1 of the long-read sequenced hybrid. This is only needed when the "canu_triobinning_mode" option has been set as "yes". You can combine the R1 and R2 reads into a single fastq file here. + parent1_short_reads="./../00.Short_Reads/$parent1_tag.fq.gz" # The relative path to Illumina reads of parent1 of the long-read sequenced hybrid. This is only needed when the "canu_triobinning_mode" option has been set as "yes". You can combine the R1 and R2 reads into a single fastq file here. parent1_ref_genome_raw="./../00.Reference_Genome/$parent1_tag.genome.raw.fa" # The relative path to the reference genome of parent1 of the hybrid. This is only needed when the options "canu_triobinning_mode" and "dotplot" (or "canu_triobinning_mode" and "vcf") have been set as "yes". When not available, it can be set to a general reference genome of the organism. parent2_tag="Parent2" # The name tag for parent2. Default = "Parent2". - parent2_short_reads="./../00.Short_Reads/$parent2_tag.illumina.fastq.gz" # The relative path to Illumina reads of parent2 of the long-read sequenced hybrid. This is only needed when the "canu_triobinning_mode" option has been set as "yes". You can combine the R1 and R2 reads into a single fastq file here. + parent2_short_reads="./../00.Short_Reads/$parent2_tag.fq.gz" # The relative path to Illumina reads of parent2 of the long-read sequenced hybrid. This is only needed when the "canu_triobinning_mode" option has been set as "yes". You can combine the R1 and R2 reads into a single fastq file here. parent2_ref_genome_raw="./../00.Reference_Genome/$parent2_tag.genome.raw.fa" # The relative path to the reference genome of parent1 of the hybrid. This is only needed when the options "canu_triobinning_mode" and "dotplot" (or "canu_triobinning_mode" and "vcf") have been set as "yes". When not available, it can be set to a general reference genome of the organism. fi @@ -155,21 +156,33 @@ then fi elif [[ "$assembler" == "flye" ]] then - if [[ "$long_reads_type" == "pacbio-corrected" ]] + if [[ "$long_reads_type" == "pacbio-raw" ]] + then + long_reads_type="pacbio-raw" + elif [[ "$long_reads_type" == "pacbio-corrected" ]] then long_reads_type="pacbio-corr" + elif [[ "$long_reads_type" == "pacbio-hifi" ]] + then + long_reads_type="pacbio-hifi" elif [[ "$long_reads_type" == "nanopore-raw" ]] then long_reads_type="nano-raw" elif [[ "$long_reads_type" == "nanopore-corrected" ]] then long_reads_type="nano-corr" + elif [[ "$long_reads_type" == "nanopore-hq" ]] + then + long_reads_type="nano-hq" fi + source $miniconda3_dir/activate $build_dir/flye_conda_env $flye_dir/flye -o $out_dir \ -t $threads \ -g $genome_size \ + --keep-haplotypes \ --${long_reads_type} $long_reads \ -i 2 + source $miniconda3_dir/deactivate perl $LRSDAY_HOME/scripts/simplify_seq_name.pl -i $out_dir/assembly.fasta -o $prefix.assembly.$assembler.fa elif [[ "$assembler" == "wtdbg2" ]] then @@ -188,33 +201,22 @@ then make -f $prefix.mak cd .. perl $LRSDAY_HOME/scripts/simplify_seq_name.pl -i $out_dir/$prefix.dmo.cns -o $prefix.assembly.$assembler.fa -elif [[ "$assembler" == "ra" ]] -then - mkdir $out_dir - cd $out_dir - if [[ "$long_reads_type" == "pacbio-raw" || "$long_reads_type" == "pacbio-corrected" ]] - then - long_reads_type="pb" - elif [[ "$long_reads_type" == "nanopore-raw" || "$long_reads_type" == "nanopore-corrected" ]] - then - long_reads_type="ont" - fi - $ra_dir/ra -x $long_reads_type -t $threads ./../$long_reads > $prefix.assembly.$assembler.fa - cd .. - perl $LRSDAY_HOME/scripts/simplify_seq_name.pl -i $out_dir/$prefix.assembly.$assembler.fa -o $prefix.assembly.$assembler.fa elif [[ "$assembler" == "shasta" ]] then - if [[ "$long_reads_type" == "pacbio-raw" || "$long_reads_type" == "pacbio-corrected" ]] + if [[ "$long_reads_type" == "pacbio-hifi" ]] then - long_reads_type="pb" - elif [[ "$long_reads_type" == "nanopore-raw" || "$long_reads_type" == "nanopore-corrected" ]] + long_reads_type="HiFi-Oct2021" + elif [[ "$long_reads_type" == "nanopore-raw" || "$long_reads_type" == "pacbio-raw" ]] then - long_reads_type="ont" + long_reads_type="Nanopore-Dec2019" + elif [[ "$long_reads_type" == "nanopore-corrected" || "$long_reads_type" == "pacbio-corrected" || "$long_reads_type" == "nanopore-hq" ]] + then + long_reads_type="R10-Slow-Nov2022" fi - perl $LRSDAY_HOME/scripts/fastq2fasta.pl -i $long_reads -o $prefix.long_reads.fasta - $shasta_dir/shasta --input $prefix.long_reads.fasta --output $out_dir + perl $LRSDAY_HOME/scripts/fastq2fasta.pl -i $long_reads -o $prefix.long_reads.fa + $shasta_dir/shasta --input $prefix.long_reads.fa --assemblyDirectory $out_dir --config $long_reads_type perl $LRSDAY_HOME/scripts/simplify_seq_name.pl -i $out_dir/Assembly.fasta -o $prefix.assembly.$assembler.fa - rm $prefix.long_reads.fasta + rm $prefix.long_reads.fa elif [[ "$assembler" == "canu-flye" ]] then OLDIFS=$IFS; @@ -230,18 +232,21 @@ then gnuplot=$gnuplot_dir/gnuplot \ -${long_reads_type} $long_reads mv $prefix.customized_canu_parameters.spec ./$out_dir/canu - if [[ "$long_reads_type" == "pacbio-raw" || "$long_reads_type" == "pacbio-corrected" ]] + if [[ "$long_reads_type" == "pacbio-raw" || "$long_reads_type" == "pacbio-corrected" || "$long_reads_type" == "pacbio-hifi" ]] then long_reads_type="pacbio-corr" - elif [[ "$long_reads_type" == "nanopore-raw" || "$long_reads_type" == "nanopore-corrected" ]] + elif [[ "$long_reads_type" == "nanopore-raw" || "$long_reads_type" == "nanopore-corrected" || "$long_reads_type" == "nanopore-hq" ]] then long_reads_type="nano-corr" fi + source $miniconda3_dir/activate $build_dir/flye_conda_env $flye_dir/flye -o $out_dir/flye \ -t $threads \ -g $genome_size \ + --keep-haplotypes \ --${long_reads_type} $out_dir/canu/$prefix.correctedReads.fasta.gz \ -i 2 + source $miniconda3_dir/deactivate perl $LRSDAY_HOME/scripts/simplify_seq_name.pl -i $out_dir/flye/assembly.fasta -o $prefix.assembly.$assembler.fa elif [[ "$assembler" == "canu-wtdbg2" ]] then @@ -286,34 +291,6 @@ then make -f $prefix.mak cd ../.. perl $LRSDAY_HOME/scripts/simplify_seq_name.pl -i $out_dir/smartdenovo/$prefix.dmo.cns -o $prefix.assembly.$assembler.fa -elif [[ "$assembler" == "canu-ra" ]] -then - OLDIFS=$IFS; - IFS=";" - customized_canu_parameters_array=($customized_canu_parameters) - IFS=$OLDIFS; - printf "%s\n" "${customized_canu_parameters_array[@]}" > $prefix.customized_canu_parameters.spec - - $canu_dir/canu -correct -p $prefix -d $out_dir/canu \ - -s $prefix.customized_canu_parameters.spec \ - useGrid=false \ - maxThreads=$threads \ - genomeSize=$genome_size \ - gnuplot=$gnuplot_dir/gnuplot \ - -${long_reads_type} $long_reads - mv $prefix.customized_canu_parameters.spec ./$out_dir/canu - if [[ "$long_reads_type" == "pacbio-raw" || "$long_reads_type" == "pacbio-corrected" ]] - then - long_reads_type="pb" - elif [[ "$long_reads_type" == "nanopore-raw" || "$long_reads_type" == "nanopore-corrected" ]] - then - long_reads_type="ont" - fi - mkdir -p $out_dir/ra - cd $out_dir/ra - $ra_dir/ra -x $long_reads_type -t $threads ./../canu/$prefix.correctedReads.fasta.gz > $prefix.assembly.$assembler.fa - cd ../.. - perl $LRSDAY_HOME/scripts/simplify_seq_name.pl -i $out_dir/ra/$prefix.assembly.$assembler.fa -o $prefix.assembly.$assembler.fa elif [[ "$assembler" == "canu-shasta" ]] then OLDIFS=$IFS; @@ -330,15 +307,14 @@ then gnuplot=$gnuplot_dir/gnuplot \ -${long_reads_type} $long_reads mv $prefix.customized_canu_parameters.spec ./$out_dir/canu - if [[ "$long_reads_type" == "pacbio-raw" || "$long_reads_type" == "pacbio-corrected" ]] + if [[ "$long_reads_type" == "pacbio-hifi" ]] then - long_reads_type="pb" - elif [[ "$long_reads_type" == "nanopore-raw" || "$long_reads_type" == "nanopore-corrected" ]] - then - long_reads_type="ont" + long_reads_type="HiFi-Oct2021" + else + long_reads_type="R10-Slow-Nov2022" fi gunzip < $out_dir/canu/$prefix.correctedReads.fasta.gz > $out_dir/$prefix.correctedReads.fasta - $shasta_dir/shasta --input $out_dir/$prefix.correctedReads.fasta --output $out_dir/shasta + $shasta_dir/shasta --input $out_dir/$prefix.correctedReads.fasta --assemblyDirectory $out_dir/shasta --config $long_reads_type rm $out_dir/$prefix.correctedReads.fasta perl $LRSDAY_HOME/scripts/simplify_seq_name.pl -i $out_dir/shasta/Assembly.fasta -o $prefix.assembly.$assembler.fa fi @@ -441,9 +417,11 @@ fi # checking bash exit status if [[ $? -eq 0 ]] then + echo "#########################################################" echo "" echo "LRSDAY message: This bash script has been successfully processed! :)" echo "" + echo "#########################################################" echo "" exit 0 fi diff --git a/Project_Template/02.Long-read-based_Assembly_Polishing/LRSDAY.02.Long-read-based_Assembly_Polishing.sh b/Project_Template/02.Long-read-based_Assembly_Polishing/LRSDAY.02.Long-read-based_Assembly_Polishing.sh index 49dece7..ac99721 100755 --- a/Project_Template/02.Long-read-based_Assembly_Polishing/LRSDAY.02.Long-read-based_Assembly_Polishing.sh +++ b/Project_Template/02.Long-read-based_Assembly_Polishing/LRSDAY.02.Long-read-based_Assembly_Polishing.sh @@ -7,17 +7,18 @@ source ./../../env.sh ########################################### # set project-specific variables -prefix="SK1" # The file name prefix for the processing sample. Please avoid the character '.' in prefix. Default = "SK1" for the testing example. +prefix="CPG_1a" # The file name prefix (only allowing strings of alphabetical letters, numbers, and underscores) for the processing sample. Default = "CPG_1a" for the testing example. + input_assembly="./../01.Long-read-based_Genome_Assembly/$prefix.assembly.raw.fa" # The file path of the input raw long-read-based assembly for polishing. long_reads_in_fastq="./../00.Long_Reads/$prefix.filtlong.fastq.gz" # The file path of the long-read fastq file. -polisher="quiver" # The long-read-based polisher to use: "quiver" (for PacBio RSII reads), "arrow" (for PacBio Sequel reads), "nanopolish" (for raw nanopore fast5 reads), "racon-medaka" (for basecalled nanopore fastq reads), or "marginpolish" (for basecalled nanopore fastq reads). Default = "quiver" for the testing example. +polisher="racon-medaka" # The long-read-based polisher to use: "none" for (PacBio HiFi Reads), "arrow" (for PacBio Sequel reads), "quiver" (for PacBio RSII reads), "nanopolish" (for raw nanopore fast5 reads), "racon-medaka" (for basecalled nanopore fastq reads), or "marginpolish" (for basecalled nanopore fastq reads). Default = "racon-medaka" for the testing example. pacbio_bam_fofn_file="./../00.Long_Reads/pacbio_fofn_files/$prefix.merged.bam.fofn" # The file path to the fofn file containing the absolute path to the PacBio bam files. BAM file is the native output format for PacBio Sequel platform but this is not the case for the RSII platform. For RSII data, the bax2bam file conversion is needed. This can be done by running the LRSDAY.00.Retrieve_Sample_PacBio_Reads.sh script in the 00.Long_Reads directory. This is only needed when polisher="quiver" or "arrow". nanopore_basecalled_fast5_files="./../00.Long_Reads/nanopore_basecalled_fast5_files" # The file path to the directory containing the basecalled Oxford Nanopore FAST5 files. This option is only needed when polisher="nanopolish". -guppy_basecalling_model="r941_flip235" # The guppy basecalling model to use for medaka. Supported values include: "r941_min_fast" for guppy (version_number >= 3.0.3) in fast mode, "r941_min_high" for guppy (version_number >= 3.0.3) in high accuracy mode, "r941_flip235" for guppy (2.3.5 <= version_number <3.0.3), "r941_flip213" for guppy (2.1.3 <= version_number <2.3.5), and "r941_trans" for albacore or guppy (version_number < 2.1.3). This option is only needed when polisher="racon-medaka". -threads=1 # The number of threads to use. Default = "1". +guppy_basecalling_model="r941_min_hac_g507" # The guppy basecalling model to use for medaka. Some supported values include: "r941_min_fast_g507" for guppy in fast mode for MinION R9.4.1 flowcell, "r941_min_hac_g507" for guppy in high accuracy mode for MinION R9.4.1 flowcell, "r941_prom_fast_g507" for guppy in fast mode for PromethION R9.4.1, "r941_prom_hac_g507" for guppy in high accuracy mode for PromethION R9.4.1. See here (https://github.com/nanoporetech/medaka/tree/master/medaka/data) for a complete list of supported models. This option is only needed when polisher="racon-medaka". Default = "r941_min_hac_g507". +threads=8 # The number of threads to use. Default = "8". ploidy=1 # The ploidy status of the sequenced genome. Use "1" for haploid genome and "2" for diploid genome. Currently not supported when "polisher="racon-medaka". Default = "1" for the testing example. -rounds_of_successive_polishing=1 # The number of total rounds of long-read-based assembly polishing. Default = "1" for the testing example. +rounds_of_successive_polishing=3 # The number of total rounds of long-read-based assembly polishing. Default = "3". debug="no" # Use "yes" if prefer to keep intermediate files, otherwise use "no". Default = "no" ########################################### @@ -27,7 +28,10 @@ cp $input_assembly $prefix.assembly.tmp.fa mkdir tmp -if [[ $polisher == "quiver" || $polisher == "arrow" ]] +if [[ $polisher == "none" ]] +then + cp $prefix.assembly.tmp.fa $prefix.assembly.long_read_polished.fa +elif [[ $polisher == "quiver" || $polisher == "arrow" ]] then # perform correction using PacBio's pbalign-arrow pipeline source $miniconda2_dir/activate $build_dir/conda_pacbio_env @@ -77,9 +81,9 @@ then $nanopolish_dir/nanopolish index -d $nanopore_basecalled_fast5_files $long_reads_in_fastq for i in $(seq 1 1 $rounds_of_successive_polishing) do - java -Djava.io.tmpdir=./tmp -Dpicard.useLegacyParser=false -XX:ParallelGCThreads=$threads -jar $picard_dir/picard.jar CreateSequenceDictionary -REFERENCE $prefix.assembly.tmp.fa -OUTPUT $prefix.assembly.tmp.dict + $java_dir/java -Djava.io.tmpdir=./tmp -Dpicard.useLegacyParser=false -XX:ParallelGCThreads=$threads -jar $picard_dir/picard.jar CreateSequenceDictionary -REFERENCE $prefix.assembly.tmp.fa -OUTPUT $prefix.assembly.tmp.dict $minimap2_dir/minimap2 -ax map-ont $prefix.assembly.tmp.fa $long_reads_in_fastq > $prefix.minimap2.round_${i}.sam - java -Djava.io.tmpdir=./tmp -Dpicard.useLegacyParser=false -XX:ParallelGCThreads=$threads -jar $picard_dir/picard.jar SortSam -INPUT $prefix.minimap2.round_${i}.sam -OUTPUT $prefix.minimap2.round_${i}.bam -SORT_ORDER coordinate -VALIDATION_STRINGENCY LENIENT -MAX_RECORDS_IN_RAM 50000 + $java_dir/java -Djava.io.tmpdir=./tmp -Dpicard.useLegacyParser=false -XX:ParallelGCThreads=$threads -jar $picard_dir/picard.jar SortSam -INPUT $prefix.minimap2.round_${i}.sam -OUTPUT $prefix.minimap2.round_${i}.bam -SORT_ORDER coordinate -VALIDATION_STRINGENCY LENIENT -MAX_RECORDS_IN_RAM 50000 $samtools_dir/samtools index $prefix.minimap2.round_${i}.bam rm $prefix.minimap2.round_${i}.sam python3 $nanopolish_dir/scripts/nanopolish_makerange.py $prefix.assembly.tmp.fa | $parallel_dir/parallel --results ${prefix}_nanopolish_round_${i}_results -P 1 \ @@ -94,7 +98,7 @@ then rm $prefix.assembly.tmp.fa elif [[ $polisher == "racon-medaka" ]] then - source $miniconda2_dir/activate $conda_medaka_dir/../../conda_medaka_env + source $miniconda3_dir/activate $medaka_dir/../../medaka_conda_env for i in $(seq 1 1 $rounds_of_successive_polishing) do $minimap2_dir/minimap2 -t $threads -ax map-ont $prefix.assembly.tmp.fa $long_reads_in_fastq > $prefix.minimap2.round_${i}.sam @@ -108,9 +112,9 @@ then done for i in $(seq 1 1 $rounds_of_successive_polishing) do - $conda_medaka_dir/medaka_consensus -i $long_reads_in_fastq -d $prefix.assembly.tmp.fa -o ${prefix}_medaka_out_round_${i} -t $threads -m $guppy_basecalling_model + $medaka_dir/medaka_consensus -i $long_reads_in_fastq -d $prefix.assembly.tmp.fa -o ${prefix}_medaka_out_round_${i} -t $threads -m $guppy_basecalling_model rm $prefix.assembly.tmp.fa - rm $prefix.assembly.tmp.fa.mmi + rm $prefix.assembly.tmp.fa.map-ont.mmi rm $prefix.assembly.tmp.fa.fai perl $LRSDAY_HOME/scripts/tidy_fasta_for_medaka.pl -i ${prefix}_medaka_out_round_${i}/consensus.fasta -o $prefix.assembly.medaka.round_${i}.fa cp $prefix.assembly.medaka.round_${i}.fa $prefix.assembly.tmp.fa @@ -121,28 +125,28 @@ then done ln -s $prefix.assembly.medaka.round_${rounds_of_successive_polishing}.fa $prefix.assembly.long_read_polished.fa rm $prefix.assembly.tmp.fa - source $miniconda2_dir/deactivate -elif [[ $polisher == "marginpolish" ]] -then - source $miniconda2_dir/activate $conda_medaka_dir/../../conda_medaka_env - for i in $(seq 1 1 $rounds_of_successive_polishing) - do - $minimap2_dir/minimap2 -t $threads -ax map-ont $prefix.assembly.tmp.fa $long_reads_in_fastq > $prefix.minimap2.round_${i}.sam - java -Djava.io.tmpdir=./tmp -Dpicard.useLegacyParser=false -XX:ParallelGCThreads=$threads -jar $picard_dir/picard.jar SortSam -INPUT $prefix.minimap2.round_${i}.sam -OUTPUT $prefix.minimap2.round_${i}.bam -SORT_ORDER coordinate -VALIDATION_STRINGENCY LENIENT -MAX_RECORDS_IN_RAM 50000 - $samtools_dir/samtools index $prefix.minimap2.round_${i}.bam - $marginpolish_dir/marginPolish $prefix.minimap2.round_${i}.bam $prefix.assembly.tmp.fa $marginpolish_dir/../params/allParams.np.json -t $threads -o ${prefix}.assembly.marginpolish.round_${i} - if [[ $debug == "no" ]] - then - rm $prefix.minimap2.round_${i}.sam - rm $prefix.minimap2.round_${i}.bam - rm $prefix.minimap2.round_${i}.bam.bai - fi - rm $prefix.assembly.tmp.fa - cp $prefix.assembly.marginpolish.round_${i}.fa $prefix.assembly.tmp.fa - done - ln -s $prefix.assembly.marginpolish.round_${rounds_of_successive_polishing}.fa $prefix.assembly.long_read_polished.fa - rm $prefix.assembly.tmp.fa - source $miniconda2_dir/deactivate + source $miniconda3_dir/deactivate +# elif [[ $polisher == "marginpolish" ]] +# then +# source $miniconda3_dir/activate $conda_medaka_dir/../../conda_marginPolish_env +# for i in $(seq 1 1 $rounds_of_successive_polishing) +# do +# $minimap2_dir/minimap2 -t $threads -ax map-ont $prefix.assembly.tmp.fa $long_reads_in_fastq > $prefix.minimap2.round_${i}.sam +# $java_dir/java -Djava.io.tmpdir=./tmp -Dpicard.useLegacyParser=false -XX:ParallelGCThreads=$threads -jar $picard_dir/picard.jar SortSam -INPUT $prefix.minimap2.round_${i}.sam -OUTPUT $prefix.minimap2.round_${i}.bam -SORT_ORDER coordinate -VALIDATION_STRINGENCY LENIENT -MAX_RECORDS_IN_RAM 50000 +# $samtools_dir/samtools index $prefix.minimap2.round_${i}.bam +# $marginpolish_dir/marginPolish $prefix.minimap2.round_${i}.bam $prefix.assembly.tmp.fa $marginpolish_dir/../params/allParams.np.json -t $threads -o ${prefix}.assembly.marginpolish.round_${i} +# if [[ $debug == "no" ]] +# then +# rm $prefix.minimap2.round_${i}.sam +# rm $prefix.minimap2.round_${i}.bam +# rm $prefix.minimap2.round_${i}.bam.bai +# fi +# rm $prefix.assembly.tmp.fa +# cp $prefix.assembly.marginpolish.round_${i}.fa $prefix.assembly.tmp.fa +# done +# ln -s $prefix.assembly.marginpolish.round_${rounds_of_successive_polishing}.fa $prefix.assembly.long_read_polished.fa +# rm $prefix.assembly.tmp.fa +# source $miniconda3_dir/deactivate fi rm -r tmp @@ -158,9 +162,11 @@ fi # checking bash exit status if [[ $? -eq 0 ]] then + echo "#########################################################" echo "" echo "LRSDAY message: This bash script has been successfully processed! :)" echo "" + echo "#########################################################" echo "" exit 0 fi diff --git a/Project_Template/03.Short-read-based_Assembly_Polishing/LRSDAY.03.Short-read-based_Assembly_Polishing.sh b/Project_Template/03.Short-read-based_Assembly_Polishing/LRSDAY.03.Short-read-based_Assembly_Polishing.sh index ebfeacb..a82ed7d 100755 --- a/Project_Template/03.Short-read-based_Assembly_Polishing/LRSDAY.03.Short-read-based_Assembly_Polishing.sh +++ b/Project_Template/03.Short-read-based_Assembly_Polishing/LRSDAY.03.Short-read-based_Assembly_Polishing.sh @@ -7,20 +7,22 @@ source ./../../env.sh ########################################### # set project-specific variables -prefix="SK1" # The file name prefix for the processing sample. Default = "SK1" for the testing example. +prefix="CPG_1a" # The file name prefix (only allowing strings of alphabetical letters, numbers, and underscores) for the processing sample. Default = "CPG_1a" for the testing example. + input_assembly="./../02.Long-read-based_Assembly_Polishing/$prefix.assembly.long_read_polished.fa" # The file path of the input assembly before Illumina-based correction trim_illumina_reads="yes" # Whether to trim the input Illumina reads. Use "yes" if prefer to perform trimming, otherwise use "no". Default = "yes". -rounds_of_successive_polishing=1 # The number of total rounds of Illumina-read-based assembly polishing. Default = "1" for the testing example. -threads=1 # The number of threads to use. Default = "1". +rounds_of_successive_polishing=3 # The number of total rounds of Illumina-read-based assembly polishing. Default = "3" for the testing example. +threads=8 # The number of threads to use. Default = "8". mode="PE" # Illumina sequencing mode, "PE" for paired-end sequencing and "SE" for single-end sequencing. Default = "PE". -fixlist="snps,indels" # The types of errors for Illumina-read-based correction by Pilon; see Pilon's manual for more details. Default = "snps,indels". if [[ $mode == "PE" ]] then - reads_PE1="./../00.Short_Reads/SRR4074258_pass_1.fastq.gz" # Please replace the PE reads file name for your own project - reads_PE2="./../00.Short_Reads/SRR4074258_pass_2.fastq.gz" # Please replace the PE reads file name for your own project + reads_PE1="./../00.Short_Reads/$prefix.R1.fastq.gz" # Please replace the PE reads file name for your own project + reads_PE2="./../00.Short_Reads/$prefix.R2.fastq.gz" # Please replace the PE reads file name for your own project else - reads_SE="./../00.Short_Reads/sample_pass_1.fastq.gz" # Please replace the SE reads file name for your own project if you only have SE data + reads_SE="./../00.Short_Reads/$prefix.fastq.gz" # Please replace the SE reads file name for your own project if you only have SE data fi + +fixlist="snps,indels" # The types of errors for Illumina-read-based correction by Pilon; see Pilon's manual for more details. Default = "snps,indels". debug="no" # Whether to keep intermediate files for debugging. Use "yes" if prefer to keep intermediate files, otherwise use "no". Default = "no". ########################################### @@ -29,11 +31,8 @@ debug="no" # Whether to keep intermediate files for debugging. Use "yes" if pref if [[ $mode == "PE" ]] then adapter="$trimmomatic_dir/adapters/TruSeq3-PE-2.fa" # adapter for PE reads - ln -s $reads_PE1 raw.R1.fq.gz; - ln -s $reads_PE2 raw.R2.fq.gz; else adpater="$trimmomatic_dir/adapters/TruSeq3-SE.fa" # adapter for SE reads - ln -s $reads_SE raw.fq.gz; fi cp $input_assembly refseq.tmp.fa @@ -45,22 +44,22 @@ if [[ $trim_illumina_reads == "yes" ]] then if [[ $mode == "PE" ]] then - java -Djava.io.tmpdir=./tmp -XX:ParallelGCThreads=$threads -jar $trimmomatic_dir/trimmomatic.jar PE -threads $threads -phred33 raw.R1.fq.gz raw.R2.fq.gz trimmed.R1.fq.gz trimmed.unpaired.R1.fq.gz trimmed.R2.fq.gz trimmed.unpaired.R2.fq.gz ILLUMINACLIP:adapter.fa:2:30:10 SLIDINGWINDOW:5:20 MINLEN:36 - rm trimmed.unpaired.R1.fq.gz - rm trimmed.unpaired.R2.fq.gz - mv trimmed.R1.fq.gz clean.R1.fq.gz - mv trimmed.R2.fq.gz clean.R2.fq.gz + $java_dir/java -Djava.io.tmpdir=./tmp -XX:ParallelGCThreads=$threads -jar $trimmomatic_dir/trimmomatic.jar PE -threads $threads -phred33 $reads_PE1 $reads_PE2 $prefix.trimmed.R1.fq.gz $prefix.trimmed.unpaired.R1.fq.gz $prefix.trimmed.R2.fq.gz $prefix.trimmed.unpaired.R2.fq.gz ILLUMINACLIP:adapter.fa:2:30:10 SLIDINGWINDOW:5:20 MINLEN:36 + rm $prefix.trimmed.unpaired.R1.fq.gz + rm $prefix.trimmed.unpaired.R2.fq.gz + mv $prefix.trimmed.R1.fq.gz $prefix.clean.R1.fq.gz + mv $prefix.trimmed.R2.fq.gz $prefix.clean.R2.fq.gz else - java -Djava.io.tmpdir=./tmp -XX:ParallelGCThreads=$threads -jar $trimmomatic_dir/trimmomatic.jar SE -threads $threads -phred33 raw.fq.gz trimmed.fq.gz ILLUMINACLIP:adapter.fa:2:30:10 SLIDINGWINDOW:5:20 MINLEN:36 - mv trimmed.fq.gz clean.fq.gz + $java_dir/java -Djava.io.tmpdir=./tmp -XX:ParallelGCThreads=$threads -jar $trimmomatic_dir/trimmomatic.jar SE -threads $threads -phred33 $reads_SE $prefix.trimmed.fq.gz ILLUMINACLIP:adapter.fa:2:30:10 SLIDINGWINDOW:5:20 MINLEN:36 + mv $prefix.trimmed.fq.gz $prefix.clean.fq.gz fi else if [[ $mode == "PE" ]] then - cp raw.R1.fq.gz clean.R1.fq.gz - cp raw.R2.fq.gz clean.R2.fq.gz + cp $prefix.raw.R1.fq.gz $prefix.clean.R1.fq.gz + cp $prefix.raw.R2.fq.gz $prefix.clean.R2.fq.gz else - cp raw.fq.gz clean.fq.gz + cp $prefix.raw.fq.gz $prefix.clean.fq.gz fi fi @@ -71,30 +70,30 @@ do if [[ $mode == "PE" ]] then - $bwa_dir/bwa mem -t $threads -M refseq.tmp.fa clean.R1.fq.gz clean.R2.fq.gz >$prefix.round_${i}.sam + $bwa_dir/bwa mem -t $threads -M refseq.tmp.fa $prefix.clean.R1.fq.gz $prefix.clean.R2.fq.gz >$prefix.round_${i}.sam else - $bwa_dir/bwa mem -t $threads -M refseq.tmp.fa clean.fq.gz >$prefix.round_${i}.sam + $bwa_dir/bwa mem -t $threads -M refseq.tmp.fa $prefix.clean.fq.gz >$prefix.round_${i}.sam fi # index reference sequence $samtools_dir/samtools faidx refseq.tmp.fa - java -Djava.io.tmpdir=./tmp -Dpicard.useLegacyParser=false -XX:ParallelGCThreads=$threads -jar $picard_dir/picard.jar CreateSequenceDictionary \ + $java_dir/java -Djava.io.tmpdir=./tmp -Dpicard.useLegacyParser=false -XX:ParallelGCThreads=$threads -jar $picard_dir/picard.jar CreateSequenceDictionary \ -REFERENCE refseq.tmp.fa \ -OUTPUT refseq.tmp.dict # sort bam file by picard-tools SortSam - java -Djava.io.tmpdir=./tmp -Dpicard.useLegacyParser=false -XX:ParallelGCThreads=$threads -jar $picard_dir/picard.jar SortSam \ + $java_dir/java -Djava.io.tmpdir=./tmp -Dpicard.useLegacyParser=false -XX:ParallelGCThreads=$threads -jar $picard_dir/picard.jar SortSam \ -INPUT $prefix.round_${i}.sam \ -OUTPUT $prefix.round_${i}.sort.bam \ -SORT_ORDER coordinate # fixmate - java -Djava.io.tmpdir=./tmp -Dpicard.useLegacyParser=false -XX:ParallelGCThreads=$threads -jar $picard_dir/picard.jar FixMateInformation \ + $java_dir/java -Djava.io.tmpdir=./tmp -Dpicard.useLegacyParser=false -XX:ParallelGCThreads=$threads -jar $picard_dir/picard.jar FixMateInformation \ -INPUT $prefix.round_${i}.sort.bam \ -OUTPUT $prefix.round_${i}.fixmate.bam # add or replace read groups and sort - java -Djava.io.tmpdir=./tmp -Dpicard.useLegacyParser=false -XX:ParallelGCThreads=$threads -jar $picard_dir/picard.jar AddOrReplaceReadGroups \ + $java_dir/java -Djava.io.tmpdir=./tmp -Dpicard.useLegacyParser=false -XX:ParallelGCThreads=$threads -jar $picard_dir/picard.jar AddOrReplaceReadGroups \ -INPUT $prefix.round_${i}.fixmate.bam \ -OUTPUT $prefix.round_${i}.rdgrp.bam \ -SORT_ORDER coordinate \ @@ -106,7 +105,7 @@ do -RGCN "RGCN" # remove duplicates - java -Djava.io.tmpdir=./tmp -Dpicard.useLegacyParser=false -XX:ParallelGCThreads=$threads -jar $picard_dir/picard.jar MarkDuplicates \ + $java_dir/java -Djava.io.tmpdir=./tmp -Dpicard.useLegacyParser=false -XX:ParallelGCThreads=$threads -jar $picard_dir/picard.jar MarkDuplicates \ -INPUT $prefix.round_${i}.rdgrp.bam \ -REMOVE_DUPLICATES true \ -METRICS_FILE $prefix.round_${i}.dedup.matrics \ @@ -117,13 +116,13 @@ do # GATK local realign # find realigner targets - java -Djava.io.tmpdir=./tmp -XX:ParallelGCThreads=$threads -jar $gatk3_dir/GenomeAnalysisTK.jar \ + $java_dir/java -Djava.io.tmpdir=./tmp -XX:ParallelGCThreads=$threads -jar $gatk3_dir/GenomeAnalysisTK.jar \ -R refseq.tmp.fa \ -T RealignerTargetCreator \ -I $prefix.round_${i}.dedup.bam \ -o $prefix.round_${i}.realn.intervals # run realigner - java -Djava.io.tmpdir=./tmp -XX:ParallelGCThreads=$threads -jar $gatk3_dir/GenomeAnalysisTK.jar \ + $java_dir/java -Djava.io.tmpdir=./tmp -XX:ParallelGCThreads=$threads -jar $gatk3_dir/GenomeAnalysisTK.jar \ -R refseq.tmp.fa \ -T IndelRealigner \ -I $prefix.round_${i}.dedup.bam \ @@ -136,7 +135,7 @@ do # for PE sequencing if [[ $mode == "PE" ]] then - java -Djava.io.tmpdir=./tmp -Xmx16G -XX:ParallelGCThreads=$threads -jar $pilon_dir/pilon.jar \ + $java_dir/java -Djava.io.tmpdir=./tmp -Xmx16G -XX:ParallelGCThreads=$threads -jar $pilon_dir/pilon.jar \ --genome refseq.tmp.fa \ --frags $prefix.round_${i}.realn.bam \ --fix $fixlist \ @@ -145,7 +144,7 @@ do --output $prefix.assembly.pilon.round_${i} \ >$prefix.pilon.round_${i}.log else - java -Djava.io.tmpdir=./tmp -Xmx16G -XX:ParallelGCThreads=$threads -jar $pilon_dir/pilon.jar \ + $java_dir/java -Djava.io.tmpdir=./tmp -Xmx16G -XX:ParallelGCThreads=$threads -jar $pilon_dir/pilon.jar \ --genome refseq.tmp.fa \ --unpaired $prefix.round_${i}.realn.bam \ --fix $fixlist \ @@ -184,9 +183,11 @@ fi # checking bash exit status if [[ $? -eq 0 ]] then + echo "#########################################################" echo "" echo "LRSDAY message: This bash script has been successfully processed! :)" echo "" + echo "#########################################################" echo "" exit 0 fi diff --git a/Project_Template/04.Reference-guided_Assembly_Scaffolding/LRSDAY.04.Reference-guided_Assembly_Scaffolding.sh b/Project_Template/04.Reference-guided_Assembly_Scaffolding/LRSDAY.04.Reference-guided_Assembly_Scaffolding.sh index bf74dc1..40fc8e1 100755 --- a/Project_Template/04.Reference-guided_Assembly_Scaffolding/LRSDAY.04.Reference-guided_Assembly_Scaffolding.sh +++ b/Project_Template/04.Reference-guided_Assembly_Scaffolding/LRSDAY.04.Reference-guided_Assembly_Scaffolding.sh @@ -3,18 +3,19 @@ set -e -o pipefail ####################################### # load environment variables for LRSDAY source ./../../env.sh -PATH=$gnuplot_dir:$hal_dir:$PATH +PATH=$gnuplot_dir:$PATH ####################################### # set project-specific variables -prefix="SK1" # The file name prefix for processing sample. Please avoid the character '.' in prefix. Default = "SK1" for the testing example. +prefix="CPG_1a" # The file name prefix (only allowing strings of alphabetical letters, numbers, and underscores) for the processing sample. Default = "CPG_1a" for the testing example. + input_assembly="./../03.Short-read-based_Assembly_Polishing/$prefix.assembly.short_read_polished.fa" # The file path of the input genome assembly. ref_genome_raw="./../00.Reference_Genome/S288C.ASM205763v1.fa" # The file path of the raw reference genome. ref_genome_noncore_masked="./../00.Reference_Genome/S288C.ASM205763v1.noncore_masked.fa" # The file path of the specially masked reference genome where subtelomeres and chromosome-ends were hard masked. When the subtelomere/chromosome-end information is unavailable for the organism that you are interested in, you can just put the path of the raw reference genome assembly here. chrMT_tag="chrMT" # The sequence name for the mitochondrial genome in the raw reference genome file, if there are multiple reference mitochondrial genomes that you want to check, use a single ';' to separate them. e.g. "Sc_chrMT;Sp_chrMT". Default = "chrMT". gap_size=5000 # The number of Ns to insert between adjacent contigs during scaffolding. Default = "5000". -scaffolder="ragout" # The reference-based assembly scaffolder to use: "ragout" or "ragoo". Default = "ragout". If the reference genome size is large (e.g. > 100 Mb), please use "ragoo" since extra dependency is needed for "ragout" to handle large genomes. -threads=1 # The number of threads to use. Default = "1". +scaffolder="ragtag" # The reference-based assembly scaffolder to use: "ragout" or "ragtag". Default = "ragtag". If the reference genome size is large (e.g. > 100 Mb), please use "ragtag" since extra dependency is needed for "ragout" to handle large genomes. +threads=8 # The number of threads to use. Default = "8". debug="no" # Whether to keep intermediate files for debugging. Use "yes" if prefer to keep intermediate files, otherwise use "no". Default = "no". ###################################### @@ -26,28 +27,28 @@ sed -e '/^[^>]/s/[^ATGCatgc]/N/g' $ref_genome_noncore_masked > ref_genome_noncor if [[ $scaffolder == "ragout" ]] then - echo ".references = ref_genome" > ragout.recipe.txt - echo ".target = $prefix" >> ragout.recipe.txt - echo "ref_genome.fasta = ./ref_genome_noncore_masked.fa" >> ragout.recipe.txt - echo "$prefix.fasta = $input_assembly" >> ragout.recipe.txt - echo ".naming_ref = ref_genome" >> ragout.recipe.txt - source $miniconda2_dir/activate $build_dir/conda_ragout_env - python2 $ragout_dir/ragout -o ${prefix}_ragout_out --solid-scaffolds -t $threads ragout.recipe.txt - source $miniconda2_dir/deactivate + echo ".references = ref_genome" > $prefix.ragout.recipe.txt + echo ".target = $prefix" >>$prefix.ragout.recipe.txt + echo "ref_genome.fasta = ./ref_genome_noncore_masked.fa" >> $prefix.ragout.recipe.txt + echo "$prefix.fasta = $input_assembly" >> $prefix.ragout.recipe.txt + echo ".naming_ref = ref_genome" >> $prefix.ragout.recipe.txt + source $miniconda3_dir/activate $build_dir/ragout_conda_env + python3 $ragout_dir/ragout -o ${prefix}_ragout_out --solid-scaffolds --overwrite -t $threads $prefix.ragout.recipe.txt + source $miniconda3_dir/deactivate cat ./${prefix}_ragout_out/${prefix}_scaffolds.fasta | sed "s/^>chr_/>/g" > ./${prefix}_ragout_out/${prefix}_scaffolds.renamed.fasta cat ./${prefix}_ragout_out/${prefix}_scaffolds.renamed.fasta ./${prefix}_ragout_out/${prefix}_unplaced.fasta > ./${prefix}_ragout_out/${prefix}.ragout.raw.fa perl $LRSDAY_HOME/scripts/adjust_assembly_by_ragoutAGP.pl -i $input_assembly -p $prefix -a ./${prefix}_ragout_out/${prefix}_scaffolds.agp -g $gap_size - ln -s ${prefix}.ragout.fa $prefix.assembly.ref_based_scaffolded.fa -elif [[ $scaffolder == "ragoo" ]] + mv ${prefix}.ragout.fa $prefix.assembly.ref_based_scaffolded.fa +elif [[ $scaffolder == "ragtag" ]] then - source $build_dir/py3_virtualenv_ragoo/bin/activate - python3 $ragoo_dir/ragoo.py -t $threads -g $gap_size -C -m $minimap2_dir/minimap2 $input_assembly ref_genome_noncore_masked.fa - mv ragoo_output ${prefix}_ragoo_out - cp ${prefix}_ragoo_out/ragoo.fasta ${prefix}.ragoo.fa - ln -s ${prefix}.ragoo.fa $prefix.assembly.ref_based_scaffolded.fa + source $miniconda3_dir/activate $build_dir/ragtag_conda_env + $ragtag_dir/ragtag.py scaffold -t $threads -f 500 -g $gap_size -r -u -o ${prefix}_ragtag_out ref_genome_noncore_masked.fa $input_assembly + source $miniconda3_dir/deactivate + cat ./${prefix}_ragtag_out/ragtag.scaffold.fasta |sed "s/_RagTag$//g" > ${prefix}.ragtag.fa + mv ${prefix}.ragtag.fa $prefix.assembly.ref_based_scaffolded.fa else echo "Unrecognized scaffolder: $scaffolder"; - echo "Please set scaffolder=\"ragout\" or \"ragoo\"."; + echo "Please set scaffolder=\"ragout\" or \"ragtag\"."; echo "LRSDAY Exit!"; exit; fi @@ -66,20 +67,25 @@ perl $LRSDAY_HOME/scripts/fine_tune_gnuplot.pl -i $prefix.assembly.ref_based_sca $gnuplot_dir/gnuplot < $prefix.assembly.ref_based_scaffolded.filter_adjust.gp # generate dotplot for the mitochondrial genome only -perl $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $ref_genome_raw -l ref.chrMT.list -m normal -o ref.chrMT.fa -perl $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $prefix.assembly.ref_based_scaffolded.fa -l $prefix.assembly.ref_based_scaffolded.mt_contig.list -m normal -o $prefix.assembly.ref_based_scaffolded.mt_contig.fa -$mummer4_dir/nucmer --maxmatch --nosimplify -p $prefix.assembly.ref_based_scaffolded.chrMT ref.chrMT.fa $prefix.assembly.ref_based_scaffolded.mt_contig.fa -$mummer4_dir/delta-filter -m $prefix.assembly.ref_based_scaffolded.chrMT.delta > $prefix.assembly.ref_based_scaffolded.chrMT.delta_filter -$mummer4_dir/mummerplot --large --postscript $prefix.assembly.ref_based_scaffolded.chrMT.delta_filter -p $prefix.assembly.ref_based_scaffolded.chrMT.filter -perl $LRSDAY_HOME/scripts/fine_tune_gnuplot.pl -i $prefix.assembly.ref_based_scaffolded.chrMT.filter.gp -o $prefix.assembly.ref_based_scaffolded.chrMT.filter_adjust.gp -r ref.chrMT.fa -q $prefix.assembly.ref_based_scaffolded.mt_contig.fa -$gnuplot_dir/gnuplot < $prefix.assembly.ref_based_scaffolded.chrMT.filter_adjust.gp +if [ -s $prefix.assembly.ref_based_scaffolded.mt_contig.list ] +then + perl $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $ref_genome_raw -l ref.chrMT.list -m normal -o ref.chrMT.fa + perl $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $prefix.assembly.ref_based_scaffolded.fa -l $prefix.assembly.ref_based_scaffolded.mt_contig.list -m normal -o $prefix.assembly.ref_based_scaffolded.mt_contig.fa + $mummer4_dir/nucmer --maxmatch --nosimplify -p $prefix.assembly.ref_based_scaffolded.chrMT ref.chrMT.fa $prefix.assembly.ref_based_scaffolded.mt_contig.fa + $mummer4_dir/delta-filter -m $prefix.assembly.ref_based_scaffolded.chrMT.delta > $prefix.assembly.ref_based_scaffolded.chrMT.delta_filter + $mummer4_dir/mummerplot --large --postscript $prefix.assembly.ref_based_scaffolded.chrMT.delta_filter -p $prefix.assembly.ref_based_scaffolded.chrMT.filter + perl $LRSDAY_HOME/scripts/fine_tune_gnuplot.pl -i $prefix.assembly.ref_based_scaffolded.chrMT.filter.gp -o $prefix.assembly.ref_based_scaffolded.chrMT.filter_adjust.gp -r ref.chrMT.fa -q $prefix.assembly.ref_based_scaffolded.mt_contig.fa + $gnuplot_dir/gnuplot < $prefix.assembly.ref_based_scaffolded.chrMT.filter_adjust.gp +else + echo "no chrMT contig detected, therefore no chrMT plotting will be performed." +fi # clean up intermediate files if [[ $debug == "no" ]] then if [[ $scaffolder == "ragout" ]] then - rm ragout.recipe.txt + rm $prefix.ragout.recipe.txt fi rm ref_genome_noncore_masked.fa rm *.filter.fplot @@ -89,8 +95,11 @@ then rm *.filter.gp rm *.filter_adjust.gp rm *.filter.ps - rm ref.chrMT.list - rm ref.chrMT.fa + if [ -e ref.chrMT.fa ] + then + rm ref.chrMT.list + rm ref.chrMT.fa + fi fi ############################ diff --git a/Project_Template/05.Centromere_Identity_Profiling/LRSDAY.05.Centromere_Identity_Profiling.sh b/Project_Template/05.Centromere_Identity_Profiling/LRSDAY.05.Centromere_Identity_Profiling.sh index 663c004..25389d7 100755 --- a/Project_Template/05.Centromere_Identity_Profiling/LRSDAY.05.Centromere_Identity_Profiling.sh +++ b/Project_Template/05.Centromere_Identity_Profiling/LRSDAY.05.Centromere_Identity_Profiling.sh @@ -6,7 +6,8 @@ source ./../../env.sh ####################################### # set project-specific variables -prefix="SK1" # The file name prefix for the processing sample. Default = "SK1" for the testing example. +prefix="CPG_1a" # The file name prefix (only allowing strings of alphabetical letters, numbers, and underscores) for the processing sample. Default = "CPG_1a" for the testing example. + genome="./../04.Reference-guided_Assembly_Scaffolding/$prefix.assembly.ref_based_scaffolded.fa" # The file path of the input genome assembly query="$LRSDAY_HOME/data/S288C.centromere.fa" # S. cerevisiae S288C reference centromere sequences based on Yue et al. (2017) Nature Genetics. debug="no" # Whether to keep intermediate files for debugging. Use "yes" if prefer to keep intermediate files, otherwise use "no". Default = "no". diff --git a/Project_Template/06.Mitochondrial_Genome_Assembly_Improvement/LRSDAY.06.Mitochondrial_Genome_Assembly_Improvement.sh b/Project_Template/06.Mitochondrial_Genome_Assembly_Improvement/LRSDAY.06.Mitochondrial_Genome_Assembly_Improvement.sh index 97b06c0..2b793af 100755 --- a/Project_Template/06.Mitochondrial_Genome_Assembly_Improvement/LRSDAY.06.Mitochondrial_Genome_Assembly_Improvement.sh +++ b/Project_Template/06.Mitochondrial_Genome_Assembly_Improvement/LRSDAY.06.Mitochondrial_Genome_Assembly_Improvement.sh @@ -3,17 +3,18 @@ set -e ########################################## # load environment variables for LRSDAY source ./../../env.sh -PATH=$bwa_dir:$samtools_dir:$gnuplot_dir:$canu_dir:$mummer_dir:$spades_dir:$prodigal_dir:$PATH +PATH=$bwa_dir:$samtools_dir:$gnuplot_dir:$mummer4_dir:$spades_dir:$prodigal_dir:$PATH ########################################### # set project-specific variables -prefix="SK1" # The file name prefix for the processing sample. Default = "SK1" for the testing example. +prefix="CPG_1a" # The file name prefix (only allowing strings of alphabetical letters, numbers, and underscores) for the processing sample. Default = "CPG_1a" for the testing example. + genome="./../04.Reference-guided_Assembly_Scaffolding/$prefix.assembly.ref_based_scaffolded.fa" # The file path of the input genome assembly mt_contig_list="./../04.Reference-guided_Assembly_Scaffolding/$prefix.assembly.ref_based_scaffolded.mt_contig.list" # The mitochodnrial contig list generated by the module 04.Reference-guided_Assembly_Scaffolding. gene_start="$LRSDAY_HOME/data/ATP6.cds.fa" # A FASTA file containing the CDS sequence of the mitochodnrial gene to be used as the starting point of the mitochondrial assembly. This can be set to any gene as long as a fasta file containing the DNA sequence of the gene is provided. ref_genome_raw="./../00.Reference_Genome/S288C.ASM205763v1.fa" # The file path of the raw reference genome chrMT_tag="chrMT" # The sequence name for the mitochondrial genome in the raw reference genome file, if there are multiple reference mitochondrial genomes that you want to check, use a single ';' to separate them. e.g. "Sc_chrMT;Sp_chrMT". Default = "chrMT". -threads=1 # The number of threads to use. Default = "1". +threads=8 # The number of threads to use. Default = "8". debug="no" # Whether to keep intermediate files for debugging. Use "yes" if prefer to keep intermediate files, otherwise use "no". Default = "no". ########################################## @@ -21,6 +22,9 @@ debug="no" # Whether to keep intermediate files for debugging. Use "yes" if pref $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $genome -l $mt_contig_list -m reverse -o $prefix.assembly.non_mt_contig.fa $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $genome -l $mt_contig_list -m normal -o $prefix.assembly.mt_contig.fa +echo $chrMT_tag | sed -e "s/;/\n/g" > ref.chrMT.list +perl $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $ref_genome_raw -l ref.chrMT.list -m normal -o ref.chrMT.fa + if [[ $(egrep -c "^>" "$prefix.assembly.mt_contig.fa") -eq 0 ]] then echo "no chrMT contig was found in the assembly, skip this step and just output the input assembly ..." @@ -39,12 +43,13 @@ else perl $LRSDAY_HOME/scripts/break_contig_by_blast.pl -i $prefix.assembly.mt_contig.descaffold.fa -b $prefix.assembly.mt_contig.descaffold.tblastx.filtered.out -o $prefix.assembly.mt_contig.break_by_blast.fa # reassemble the mitochondrial genome using CAP3 to collapse smaller fragments - $cap_dir/cap3 $prefix.assembly.mt_contig.break_by_blast.fa -k 0 + $cap3_dir/cap3 $prefix.assembly.mt_contig.break_by_blast.fa -k 0 if [[ $(egrep -c "^>" "$prefix.assembly.mt_contig.break_by_blast.fa.cap.contigs") -eq 0 ]] then cat $prefix.assembly.mt_contig.break_by_blast.fa | sed "s/>/>chrMT_/" > $prefix.assembly.mt_contig.for_clean.fa else - cat $prefix.assembly.mt_contig.break_by_blast.fa.cap.contigs| sed "s/>/>chrMT_/" > $prefix.assembly.mt_contig.for_clean.fa + cat $prefix.assembly.mt_contig.break_by_blast.fa.cap.contigs $prefix.assembly.mt_contig.break_by_blast.fa.cap.singlets > $prefix.assembly.mt_contig.break_by_blast.fa.cap.contigs_singlets + cat $prefix.assembly.mt_contig.break_by_blast.fa.cap.contigs_singlets| sed "s/>/>chrMT_/" > $prefix.assembly.mt_contig.for_clean.fa fi $circlator_dir/circlator clean --verbose $prefix.assembly.mt_contig.for_clean.fa ${prefix}.assembly.mt_contig.for_fixstart.fa @@ -64,16 +69,15 @@ else $circlator_dir/circlator fixstart --verbose --genes_fa $gene_start --min_id 90 --ignore $prefix.assembly.for_fixstart.for_skip.list $prefix.assembly.mt_contig.for_fixstart.fa $prefix.assembly.mt_contig.circlator - mv $prefix.assembly.mt_contig.circlator.fasta $prefix.assembly.mt_contig.circlator.fa + source $miniconda3_dir/activate $build_dir/ragtag_conda_env + $ragtag_dir/ragtag.py scaffold -t $threads -f 1 -u -o ${prefix}_chrMT_ragtag_out ref.chrMT.fa $prefix.assembly.mt_contig.circlator.fasta + cat ${prefix}_chrMT_ragtag_out/ragtag.scaffold.fasta |sed "s/>chrMT_RagTag/>${prefix}.chrMT/"|sed -r "s/N{100}//gi" > ${prefix}.assembly.mt_contig.ragtag.fa cat $prefix.assembly.non_mt_contig.fa |egrep "^>"|egrep -v "^>chr" |sed "s/>//" > $prefix.assembly.non_primary_contig.list $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $prefix.assembly.non_mt_contig.fa -l $prefix.assembly.non_primary_contig.list -m reverse -o $prefix.assembly.primary_contig.fa $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $prefix.assembly.non_mt_contig.fa -l $prefix.assembly.non_primary_contig.list -m normal -o $prefix.assembly.non_primary_contig.fa - cat $prefix.assembly.primary_contig.fa $prefix.assembly.mt_contig.circlator.fa $prefix.assembly.non_primary_contig.fa > $prefix.assembly.mt_improved.fa - + cat $prefix.assembly.primary_contig.fa $prefix.assembly.mt_contig.ragtag.fa $prefix.assembly.non_primary_contig.fa > $prefix.assembly.mt_improved.fa # generate dotplot for the mitochondrial genome only - echo $chrMT_tag | sed -e "s/;/\n/g" > ref.chrMT.list - perl $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $ref_genome_raw -l ref.chrMT.list -m normal -o ref.chrMT.fa - $mummer4_dir/nucmer -t $threads --maxmatch --nosimplify -p $prefix.assembly.mt_improved.chrMT ref.chrMT.fa $prefix.assembly.mt_contig.circlator.fa + $mummer4_dir/nucmer -t $threads --maxmatch --nosimplify -p $prefix.assembly.mt_improved.chrMT ref.chrMT.fa $prefix.assembly.mt_contig.ragtag.fa $mummer4_dir/delta-filter -m $prefix.assembly.mt_improved.chrMT.delta > $prefix.assembly.mt_improved.chrMT.delta_filter $mummer4_dir/mummerplot --large --postscript $prefix.assembly.mt_improved.chrMT.delta_filter -p $prefix.assembly.mt_improved.chrMT.filter perl $LRSDAY_HOME/scripts/fine_tune_gnuplot.pl -i $prefix.assembly.mt_improved.chrMT.filter.gp -o $prefix.assembly.mt_improved.chrMT.filter_adjust.gp -r ref.chrMT.fa -q $prefix.assembly.mt_contig.final.fa @@ -106,6 +110,10 @@ then rm $prefix.assembly.for_fixstart.for_skip.fa rm $prefix.assembly.for_fixstart.for_skip.list fi + if [ -d "${prefix}_chrMT_ragtag_out" ] + then + rm -r ${prefix}_chrMT_ragtag_out + fi fi ############################ diff --git a/Project_Template/07.Supervised_Final_Assembly/LRSDAY.07.Supervised_Final_Assembly.1.sh b/Project_Template/07.Supervised_Final_Assembly/LRSDAY.07.Supervised_Final_Assembly.1.sh index f1a95ab..97b3e2a 100755 --- a/Project_Template/07.Supervised_Final_Assembly/LRSDAY.07.Supervised_Final_Assembly.1.sh +++ b/Project_Template/07.Supervised_Final_Assembly/LRSDAY.07.Supervised_Final_Assembly.1.sh @@ -6,7 +6,8 @@ source ./../../env.sh ####################################### # set project-specific variables -prefix="SK1" # The file name prefix for the processing sample. Default = "SK1" for the testing example. +prefix="CPG_1a" # The file name prefix (only allowing strings of alphabetical letters, numbers, and underscores) for the processing sample. Default = "CPG_1a" for the testing example. + genome="./../06.Mitochondrial_Genome_Assembly_Improvement/$prefix.assembly.mt_improved.fa" # The file name of the input genome assembly. diff --git a/Project_Template/07.Supervised_Final_Assembly/LRSDAY.07.Supervised_Final_Assembly.2.sh b/Project_Template/07.Supervised_Final_Assembly/LRSDAY.07.Supervised_Final_Assembly.2.sh index 1d342a1..3d2eb44 100755 --- a/Project_Template/07.Supervised_Final_Assembly/LRSDAY.07.Supervised_Final_Assembly.2.sh +++ b/Project_Template/07.Supervised_Final_Assembly/LRSDAY.07.Supervised_Final_Assembly.2.sh @@ -7,20 +7,23 @@ PATH=$gnuplot_dir:$PATH ####################################### # set project-specific variables -prefix="SK1" # The file name prefix for the processing sample. Default = "SK1" for the testing example. +prefix="CPG_1a" # The file name prefix (only allowing strings of alphabetical letters, numbers, and underscores) for the processing sample. Default = "CPG_1a" for the testing example. + genome="./../06.Mitochondrial_Genome_Assembly_Improvement/$prefix.assembly.mt_improved.fa" # The file path of the input genome assembly. -vcf="yes" # Whether to generate a vcf file generated to show SNP and INDEL differences between the assembled genome and the reference genome for their uniquely alignable regions. Use "yes" if prefer to have vcf file generated to show SNP and INDEL differences between the assembled genome and the reference genome. Default = "yes". dotplot="yes" # Whether to plot genome-wide dotplot based on the comparison with the reference genome below. Use "yes" if prefer to plot, otherwise use "no". Default = "yes". ref_genome_raw="./../00.Reference_Genome/S288C.ASM205763v1.fa" # The path of the raw reference genome, only needed when dotplot="yes" or vcf="yes". -threads=1 # The number of threads to use. Default = 1. +threads=8 # The number of threads to use. Default = 8. debug="no" # Whether to keep intermediate files for debugging. Use "yes" if prefer to keep intermediate files, otherwise use "no". Default = "no". ####################################### # process the pipeline # Please mark desiarable changes in the $prefix.modification.list file and comment the command lines for Step 1 before proceeding with Step 2. + +vcf="no" # Whether to generate a vcf file generated to show SNP and INDEL differences between the assembled genome and the reference genome for their uniquely alignable regions. Use "yes" if prefer to have vcf file generated to show SNP and INDEL differences between the assembled genome and the reference genome. Default = "no". # Step 2: -perl $LRSDAY_HOME/scripts/relabel_and_reorder_sequences.pl -i $genome -m $prefix.assembly.modification.list -o $prefix.assembly.final.fa +perl $LRSDAY_HOME/scripts/relabel_and_reorder_sequences.pl -i $genome -m $prefix.assembly.modification.list -o $prefix.assembly.relabel_and_reorder.fa # generate assembly statistics +perl $LRSDAY_HOME/scripts/tidy_fasta.pl -i $prefix.assembly.relabel_and_reorder.fa -o $prefix.assembly.final.fa perl $LRSDAY_HOME/scripts/cal_assembly_stats.pl -i $prefix.assembly.final.fa -o $prefix.assembly.final.stats.txt # check project-specific variables @@ -77,6 +80,8 @@ then rm *.delta rm *.delta_filter rm ref_genome.fa + rm $prefix.assembly.relabel_and_reorder.fa + if [[ $vcf == "yes" ]] then rm ref_genome.fa.fai diff --git a/Project_Template/08.Centromere_Annotation/LRSDAY.08.Centromere_Annotation.sh b/Project_Template/08.Centromere_Annotation/LRSDAY.08.Centromere_Annotation.sh index 8a731c7..0951eff 100755 --- a/Project_Template/08.Centromere_Annotation/LRSDAY.08.Centromere_Annotation.sh +++ b/Project_Template/08.Centromere_Annotation/LRSDAY.08.Centromere_Annotation.sh @@ -6,20 +6,28 @@ source ./../../env.sh ####################################### # set project-specific variables -prefix="SK1" # The file name prefix for the processing sample. Default = "SK1" for the testing example. -genome="./../07.Supervised_Final_Assembly/$prefix.assembly.final.fa" # The path of the input genome assembly. +prefix="CPG_1a" # The file name prefix (only allowing strings of alphabetical letters, numbers, and underscores) for the processing sample. Default = "CPG_1a" for the testing example. +genome_assembly="./../07.Supervised_Final_Assembly/$prefix.assembly.final.fa" # The path of the input genome assembly. +chrMT_tag="chrMT" # The sequence name for the mitochondrial genome in the final assembly. If there are multiple sequences, use a single ';' to separate them. e.g. "chrMT_part1;chrMT_part2". Default = "chrMT". query="$LRSDAY_HOME/data/S288C.centromere.fa" # The S. cerevisiae S288C reference centromere sequences based on Yue et al. (2017) Nature Genetics. debug="no" # Whether to keep intermediate files for debugging. Use "yes" if prefer to keep intermediate files, otherwise use "no". Default = "no". ###################################### # process the pipeline -$exonerate_dir/exonerate --showvulgar no --showcigar no --showalignment no --showtargetgff yes --bestn 1 $query $genome >$prefix.centromere.exonerate.gff + +echo $chrMT_tag | sed -e "s/;/\n/g" > $prefix.assembly.chrMT.list +perl $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $genome_assembly -l $prefix.assembly.chrMT.list -m reverse -o $prefix.assembly.nuclear_genome.fa +perl $LRSDAY_HOME/scripts/tidy_fasta.pl -i $prefix.assembly.nuclear_genome.fa -o $prefix.assembly.nuclear_genome.tidy.fa + +$exonerate_dir/exonerate --showvulgar no --showcigar no --showalignment no --showtargetgff yes --bestn 1 $query $prefix.assembly.nuclear_genome.tidy.fa >$prefix.centromere.exonerate.gff perl $LRSDAY_HOME/scripts/exonerate_gff2gff3.pl -i $prefix.centromere.exonerate.gff -o $prefix.centromere.gff3.tmp -t $prefix -perl $LRSDAY_HOME/scripts/tidy_maker_gff3.pl -r $genome -i $prefix.centromere.gff3.tmp -o $prefix.centromere.gff3 -t $prefix +perl $LRSDAY_HOME/scripts/tidy_maker_gff3.pl -r $prefix.assembly.nuclear_genome.tidy.fa -i $prefix.centromere.gff3.tmp -o $prefix.nuclear_genome.centromere.gff3 -t $prefix # clean up intermediate files if [[ $debug == "no" ]] then + rm $prefix.assembly.nuclear_genome.fa + rm $prefix.assembly.nuclear_genome.tidy.fa rm $prefix.centromere.exonerate.gff rm $prefix.centromere.gff3.tmp fi diff --git a/Project_Template/09.Nuclear_Gene_Annotation/LRSDAY.09.Nuclear_Gene_Annotation.sh b/Project_Template/09.Nuclear_Gene_Annotation/LRSDAY.09.Nuclear_Gene_Annotation.sh index 444ef7a..65cb69d 100755 --- a/Project_Template/09.Nuclear_Gene_Annotation/LRSDAY.09.Nuclear_Gene_Annotation.sh +++ b/Project_Template/09.Nuclear_Gene_Annotation/LRSDAY.09.Nuclear_Gene_Annotation.sh @@ -6,10 +6,11 @@ source ./../../env.sh ####################################### # set project-specific variables -prefix="SK1" # The file name prefix for the processing sample. Default = "SK1" for the testing example. -genome_assembly="./../07.Supervised_Final_Assembly/$prefix.assembly.final.fa" # The file path of the input genome assembly. +prefix="CPG_1a" # The file name prefix (only allowing strings of alphabetical letters, numbers, and underscores) for the processing sample. Default = "CPG_1a" for the testing example. + +genome_assembly="./../07.Supervised_Final_Assembly/$prefix.assembly.final.fa" # The file path of the final input genome assembly. chrMT_tag="chrMT" # The sequence name for the mitochondrial genome in the final assembly. If there are multiple sequences, use a single ';' to separate them. e.g. "chrMT_part1;chrMT_part2". Default = "chrMT". -threads=1 # The number of threads to use. Default = "1". +threads=8 # The number of threads to use. Default = "8". maker_opts="$LRSDAY_HOME/misc/maker_opts.customized.ctl" # The configuration file for MAKER. You can edit this file if you have native transciptome/EST data for the strain/species that you sequenced or if you want to adapt it to annotate other eukaryotic organisms. Otherwise, please keep it unchanged. Please note that if this file is in the same directory where this bash script is executed, the file name cannot be "maker_opts.ctl". EVM_weights="$LRSDAY_HOME/misc/EVM_weights.customized.txt" # The configuration file for EVM. A list of numeric weight values to be applied to each type of evidence. debug="no" # use "yes" if prefer to keep intermediate files, otherwise use "no". @@ -24,17 +25,16 @@ echo "genome_assembly=$genome_assembly" # convert the genome assembly file to all uppercases echo $chrMT_tag | sed -e "s/;/\n/g" > $genome_tag.assembly.chrMT.list -$LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $genome_assembly -l $genome_tag.assembly.chrMT.list -m reverse -o $genome_tag.assembly.nuclear_genome.fa -#$LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $genome_assembly -l $genome_tag.assembly.chrMT.list -m normal -o $genome_tag.assembly.mitochondrial_genome.fa - -perl $LRSDAY_HOME/scripts/switch_letter_cases_in_fasta.pl -i $genome_tag.assembly.nuclear_genome.fa -o genome.uppercase.fa -c upper +perl $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $genome_assembly -l $genome_tag.assembly.chrMT.list -m reverse -o $genome_tag.assembly.nuclear_genome.fa +# perl $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $genome_assembly -l $genome_tag.assembly.chrMT.list -m normal -o $genome_tag.assembly.mitochondrial_genome.fa +perl $LRSDAY_HOME/scripts/tidy_fasta.pl -i $genome_tag.assembly.nuclear_genome.fa -o $genome_tag.assembly.nuclear_genome.tidy.fa cp $maker_opts maker_opts.ctl cp $LRSDAY_HOME/misc/maker_exe.ctl . cp $LRSDAY_HOME/misc/maker_bopts.ctl . cp $LRSDAY_HOME/misc/maker_evm.ctl . -$maker_dir/maker -fix_nucleotides -genome genome.uppercase.fa -cpus $threads -base $genome_tag +$maker_dir/maker -fix_nucleotides -genome $genome_tag.assembly.nuclear_genome.tidy.fa -cpus $threads -base $genome_tag # $maker_dir/fasta_merge -d $genome_tag.maker.output/${genome_tag}_master_datastore_index.log -o $genome_tag.nuclear_genome.maker.fasta $maker_dir/gff3_merge -d $genome_tag.maker.output/${genome_tag}_master_datastore_index.log -n -g -o $genome_tag.nuclear_genome.maker.raw.gff3 @@ -64,7 +64,7 @@ cat $genome_tag.nuclear_genome.maker.raw.protein_coding_gene.gff3 $genome_tag.nu mkdir $genome_tag.nuclear_genome.EVM.output cd $genome_tag.nuclear_genome.EVM.output $EVM_HOME/EvmUtils/partition_EVM_inputs.pl \ - --genome ./../genome.uppercase.fa \ + --genome ./../$genome_tag.assembly.nuclear_genome.tidy.fa \ --gene_predictions ./../$genome_tag.nuclear_genome.maker.combined.gff3 \ --protein_alignments ./../$genome_tag.nuclear_genome.protein_evidence.gff3 \ --transcript_alignments ./../$genome_tag.nuclear_genome.est_evidence.gff3 \ @@ -73,7 +73,7 @@ $EVM_HOME/EvmUtils/partition_EVM_inputs.pl \ --partition_listing $genome_tag.nuclear_genome.partitions_list.out $EVM_HOME/EvmUtils/write_EVM_commands.pl \ - --genome ./../genome.uppercase.fa \ + --genome ./../$genome_tag.assembly.nuclear_genome.tidy.fa \ --weights $EVM_weights \ --gene_predictions ./../$genome_tag.nuclear_genome.maker.combined.gff3 \ --output_file_name $genome_tag.nuclear_genome.evm.out \ @@ -87,40 +87,51 @@ $EVM_HOME/EvmUtils/recombine_EVM_partial_outputs.pl \ $EVM_HOME/EvmUtils/convert_EVM_outputs_to_GFF3.pl \ --partitions $genome_tag.nuclear_genome.partitions_list.out \ --output $genome_tag.nuclear_genome.evm.out \ - --genome ./../genome.uppercase.fa + --genome ./../$genome_tag.assembly.nuclear_genome.tidy.fa -perl $LRSDAY_HOME/scripts/collect_EVM_gff3.pl -p $genome_tag.nuclear_genome -r ./../genome.uppercase.fa +perl $LRSDAY_HOME/scripts/collect_EVM_gff3.pl -p $genome_tag.nuclear_genome -r ./../$genome_tag.assembly.nuclear_genome.tidy.fa cat $genome_tag.nuclear_genome.EVM.raw.gff3 ./../$genome_tag.nuclear_genome.maker.raw.tRNA.gff3 > $genome_tag.nuclear_genome.EVM.raw.with_tRNA.gff3 perl $LRSDAY_HOME/scripts/tidy_maker_gff3.pl \ -i $genome_tag.nuclear_genome.EVM.raw.with_tRNA.gff3 \ - -r ./../genome.uppercase.fa \ + -r ./../$genome_tag.assembly.nuclear_genome.tidy.fa \ -t $genome_tag \ -o $genome_tag.nuclear_genome.EVM.gff3 -cp $genome_tag.nuclear_genome.EVM.gff3 ./../$genome_tag.nuclear_genome.EVM.gff3 +cp $genome_tag.nuclear_genome.EVM.gff3 ./../$genome_tag.nuclear_genome.gff3 cd .. perl $LRSDAY_HOME/scripts/extract_cds_from_tidy_gff3.pl \ - -r $genome_assembly \ - -g $genome_tag.nuclear_genome.EVM.gff3 \ - -o $genome_tag.nuclear_genome.EVM.cds.fa + -r $genome_tag.assembly.nuclear_genome.tidy.fa \ + -g $genome_tag.nuclear_genome.gff3 \ + -o $genome_tag.nuclear_genome.cds.fa perl $LRSDAY_HOME/scripts/cds2protein.pl \ - -i $genome_tag.nuclear_genome.EVM.cds.fa \ - -p $genome_tag.nuclear_genome.EVM \ + -i $genome_tag.nuclear_genome.cds.fa \ + -p $genome_tag.nuclear_genome \ -t 1 -perl $LRSDAY_HOME/scripts/prepare_PoFFgff_simple.pl -i $genome_tag.nuclear_genome.EVM.gff3 -o $genome_tag.nuclear_genome.EVM.PoFF.gff -perl $LRSDAY_HOME/scripts/prepare_PoFFfaa_simple.pl -i $genome_tag.nuclear_genome.EVM.trimmed_cds.fa -o $genome_tag.nuclear_genome.EVM.PoFF.ffn -perl $LRSDAY_HOME/scripts/prepare_PoFFfaa_simple.pl -i $genome_tag.nuclear_genome.EVM.pep.fa -o $genome_tag.nuclear_genome.EVM.PoFF.faa # filtered out snoRNA annotation since it is still an experimental features suffering from redundant annotations -cp $genome_tag.nuclear_genome.EVM.gff3 $genome_tag.nuclear_genome.EVM.gff3.tmp -cat $genome_tag.nuclear_genome.EVM.gff3.tmp | egrep -v "snoRNA" > $genome_tag.nuclear_genome.EVM.gff3 +cp $genome_tag.nuclear_genome.gff3 $genome_tag.nuclear_genome.gff3.tmp +cat $genome_tag.nuclear_genome.gff3.tmp | egrep -v "snoRNA" > $genome_tag.nuclear_genome.snoRNA_filtered.gff3 +perl $LRSDAY_HOME/scripts/label_pseudogene_in_gff3.pl -i $genome_tag.nuclear_genome.snoRNA_filtered.gff3 -l $genome_tag.nuclear_genome.manual_check.list -o $genome_tag.nuclear_genome.gff3 + +perl $LRSDAY_HOME/scripts/extract_cds_from_tidy_gff3.pl \ + -r $genome_tag.assembly.nuclear_genome.tidy.fa \ + -g $genome_tag.nuclear_genome.gff3 \ + -o $genome_tag.nuclear_genome.cds.fa +perl $LRSDAY_HOME/scripts/cds2protein.pl \ + -i $genome_tag.nuclear_genome.cds.fa \ + -p $genome_tag.nuclear_genome \ + -t 1 + +perl $LRSDAY_HOME/scripts/prepare_PoFFgff_simple.pl -i $genome_tag.nuclear_genome.gff3 -o $genome_tag.nuclear_genome.PoFF.gff +perl $LRSDAY_HOME/scripts/prepare_PoFFfaa_simple.pl -i $genome_tag.nuclear_genome.trimmed_cds.fa -o $genome_tag.nuclear_genome.PoFF.ffn +perl $LRSDAY_HOME/scripts/prepare_PoFFfaa_simple.pl -i $genome_tag.nuclear_genome.pep.fa -o $genome_tag.nuclear_genome.PoFF.faa # clean up intermediate files if [[ $debug == "no" ]] then - rm genome.uppercase.fa + rm $genome_tag.assembly.nuclear_genome.fa rm $genome_tag.nuclear_genome.maker.raw.tRNA.gff3 rm $genome_tag.nuclear_genome.maker.raw.protein_coding_gene.gff3 rm $genome_tag.nuclear_genome.maker.raw.protein_coding_gene.single_exon_gene.gff3 @@ -129,9 +140,11 @@ then rm $genome_tag.nuclear_genome.est_evidence.for_gene_model_refinement.gff3 rm $genome_tag.nuclear_genome.protein_evidence.complementary_gene_model.gff3 rm $genome_tag.nuclear_genome.est_evidence.complementary_gene_model.gff3 - rm $genome_tag.nuclear_genome.EVM.gff3.tmp + rm $genome_tag.nuclear_genome.gff3.tmp rm $genome_tag.nuclear_genome.maker.combined.gff3 + rm $genome_tag.nuclear_genome.snoRNA_filtered.gff3 rm -rf _Inline + rm *.ctl fi ############################ diff --git a/Project_Template/10.Mitochondrial_Gene_Annotation/LRSDAY.10.Mitochondrial_Gene_Annotation.sh b/Project_Template/10.Mitochondrial_Gene_Annotation/LRSDAY.10.Mitochondrial_Gene_Annotation.sh index b37fec6..6e6be2e 100755 --- a/Project_Template/10.Mitochondrial_Gene_Annotation/LRSDAY.10.Mitochondrial_Gene_Annotation.sh +++ b/Project_Template/10.Mitochondrial_Gene_Annotation/LRSDAY.10.Mitochondrial_Gene_Annotation.sh @@ -18,8 +18,9 @@ export PATH="$flip_dir:$blast_dir:$muscle_dir:$umac_dir:$hmmer_dir:$erpin_dir:$t ####################################### # set project-specific variables -prefix="SK1" # The file name prefix for the processing sample. Default = "SK1" for the testing example. -genome="./../07.Supervised_Final_Assembly/$prefix.assembly.final.fa" # The file path of the input genome assembly. +prefix="CPG_1a" # The file name prefix (only allowing strings of alphabetical letters, numbers, and underscores) for the processing sample. Default = "CPG_1a" for the testing example. + +genome_assembly="./../07.Supervised_Final_Assembly/$prefix.assembly.final.fa" # The file path of the final input genome assembly. chrMT_tag="chrMT" # The sequence name for the mitochondrial genome in the input genome assembly, if there are multiple corresponding contigs/scaffolds, use a single ';' to separate them. e.g. "chrMT_1;chrMT_2". Default = "chrMT". genetic_code_table=3 # The NCBI genetic code table (https://www.ncbi.nlm.nih.gov/Taxonomy/Utils/wprintgc.cgi) for the annotated mitochondrial genome. Default = 3 (i.e. Yeast Mitochondria) debug="no" # Whehter to keep intermediate files for debugging. Use "yes" if prefer to keep intermediate files, otherwise use "no". Default = "no". @@ -27,32 +28,47 @@ debug="no" # Whehter to keep intermediate files for debugging. Use "yes" if pref ###################################### # process the pipeline + echo $chrMT_tag | sed -e "s/;/\n/g" > $prefix.assembly.chrMT.list -#$LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $genome -l $prefix.assembly.chrMT.list -m reverse -o $prefix.assembly.nuclear_genome.fa -$LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $genome -l $prefix.assembly.chrMT.list -m normal -o $prefix.assembly.mitochondrial_genome.fa +perl $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $genome_assembly -l $prefix.assembly.chrMT.list -m normal -o $prefix.assembly.mitochondrial_genome.fa -mkdir tmp +if [[ $(egrep -c "^>" "$prefix.assembly.mitochondrial_genome.fa") -eq 0 ]] +then + echo "No mitochondrial genome assembly was detected! Skip mitochondrial genome annotation!" +else + + perl $LRSDAY_HOME/scripts/tidy_fasta.pl -i $prefix.assembly.mitochondrial_genome.fa -o $prefix.assembly.mitochondrial_genome.tidy.fa -$mfannot_dir/mfannot \ - --genetic $genetic_code_table \ - --outputfile $prefix.mitochondrial_genome.mfannot.out \ - --logfile $prefix.mitochondrial_genome.mfannot.log \ - --T $(pwd)/tmp \ - $prefix.assembly.mitochondrial_genome.fa + mkdir tmp -perl $LRSDAY_HOME/scripts/mfannot2gff3.pl -i $prefix.mitochondrial_genome.mfannot.out -o $prefix.mitochondrial_genome.mfannot.gff3 -m lite -perl $LRSDAY_HOME/scripts/extract_cds_from_tidy_gff3.pl -r $prefix.assembly.mitochondrial_genome.fa -g $prefix.mitochondrial_genome.mfannot.gff3 -o $prefix.mitochondrial_genome.mfannot.cds.fa -perl $LRSDAY_HOME/scripts/cds2protein.pl -i $prefix.mitochondrial_genome.mfannot.cds.fa -t $genetic_code_table -p $prefix.mitochondrial_genome.mfannot + $mfannot_dir/mfannot \ + --genetic $genetic_code_table \ + --outputfile $prefix.mitochondrial_genome.mfannot.out.txt \ + --logfile $prefix.mitochondrial_genome.mfannot.log \ + --T $(pwd)/tmp \ + $prefix.assembly.mitochondrial_genome.tidy.fa -perl $LRSDAY_HOME/scripts/prepare_PoFFgff_simple.pl -i $prefix.mitochondrial_genome.mfannot.gff3 -o $prefix.mitochondrial_genome.mfannot.PoFF.gff -perl $LRSDAY_HOME/scripts/prepare_PoFFfaa_simple.pl -i $prefix.mitochondrial_genome.mfannot.trimmed_cds.fa -o $prefix.mitochondrial_genome.mfannot.PoFF.ffn -perl $LRSDAY_HOME/scripts/prepare_PoFFfaa_simple.pl -i $prefix.mitochondrial_genome.mfannot.pep.fa -o $prefix.mitochondrial_genome.mfannot.PoFF.faa + $trnascan_dir/tRNAscan-SE -D -g $trnascan_dir/../gcode.ystmito $prefix.assembly.mitochondrial_genome.tidy.fa -o $prefix.assembly.mitochondrial_genome.trnascan.out.txt -# clean up intermediate files -if [[ $debug == "no" ]] -then - rm -r tmp + + perl $LRSDAY_HOME/scripts/mfannot2gff3.pl -mfannot_out $prefix.mitochondrial_genome.mfannot.out.txt -trnascan_out $prefix.assembly.mitochondrial_genome.trnascan.out.txt -o $prefix.mitochondrial_genome.pre_sort.gff3 -m lite -t $prefix + perl $LRSDAY_HOME/scripts/sort_gff3.pl -i $prefix.mitochondrial_genome.pre_sort.gff3 -t $prefix -o $prefix.mitochondrial_genome.gff3 -r $prefix.assembly.mitochondrial_genome.tidy.fa + + perl $LRSDAY_HOME/scripts/extract_cds_from_tidy_gff3.pl -r $prefix.assembly.mitochondrial_genome.tidy.fa -g $prefix.mitochondrial_genome.gff3 -o $prefix.mitochondrial_genome.cds.fa + perl $LRSDAY_HOME/scripts/cds2protein.pl -i $prefix.mitochondrial_genome.cds.fa -t $genetic_code_table -p $prefix.mitochondrial_genome + + perl $LRSDAY_HOME/scripts/prepare_PoFFgff_simple.pl -i $prefix.mitochondrial_genome.gff3 -o $prefix.mitochondrial_genome.PoFF.gff + perl $LRSDAY_HOME/scripts/prepare_PoFFfaa_simple.pl -i $prefix.mitochondrial_genome.trimmed_cds.fa -o $prefix.mitochondrial_genome.PoFF.ffn + perl $LRSDAY_HOME/scripts/prepare_PoFFfaa_simple.pl -i $prefix.mitochondrial_genome.pep.fa -o $prefix.mitochondrial_genome.PoFF.faa + + # clean up intermediate files + if [[ $debug == "no" ]] + then + rm -r tmp + rm -r $prefix.mitochondrial_genome.pre_sort.gff3 + rm -r $prefix.assembly.mitochondrial_genome.fa + fi fi ############################ diff --git a/Project_Template/11.TE_Annotation/LRSDAY.11.TE_Annotation.sh b/Project_Template/11.TE_Annotation/LRSDAY.11.TE_Annotation.sh index 7613f5e..44c2731 100755 --- a/Project_Template/11.TE_Annotation/LRSDAY.11.TE_Annotation.sh +++ b/Project_Template/11.TE_Annotation/LRSDAY.11.TE_Annotation.sh @@ -6,24 +6,32 @@ source ./../../env.sh ####################################### # set project-specific variables -prefix="SK1" # The file name prefix for the processing sample. Default = "SK1" for the testing example. -genome="./../07.Supervised_Final_Assembly/$prefix.assembly.final.fa" # The file path of the input genome assembly. -threads=1 # The number of threads to use. Default = "1". +prefix="CPG_1a" # The file name prefix (only allowing strings of alphabetical letters, numbers, and underscores) for the processing sample. Default = "CPG_1a" for the testing example. +genome_assembly="./../07.Supervised_Final_Assembly/$prefix.assembly.final.fa" # The path of the final input genome assembly. +chrMT_tag="chrMT" # The sequence name for the mitochondrial genome in the final assembly. If there are multiple sequences, use a single ';' to separate them. e.g. "chrMT_part1;chrMT_part2". Default = "chrMT". +threads=8 # The number of threads to use. Default = "8". debug="no" # Whether to keep intermediate files for debugging. Use "yes" if prefer to keep intermediate files, otherwise use "no". Default = "no". ####################################### # process the pipeline -ln -s $genome genome.fa -$repeatmasker_dir/RepeatMasker -pa $threads -lib $LRSDAY_HOME/data/TY_lib.Yue_et_al_2017_NG.fa genome.fa -xsmall -gff -$reannotate_dir/REannotate_longname -g -f $LRSDAY_HOME/data/fuzzy_defragmentation.txt -k $clustalw_dir/clustalw2 -r 0.48764 -d 10000 -t genome.fa.out genome.fa +TE_lib="$LRSDAY_HOME/data/TE_lib.v20221221.tidy.fa" +TE_lib_LTRonly="$LRSDAY_HOME/data/TE_lib.v20221221.LTRonly.tidy.fa" + +echo $chrMT_tag | sed -e "s/;/\n/g" > $prefix.assembly.chrMT.list +perl $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $genome_assembly -l $prefix.assembly.chrMT.list -m reverse -o $prefix.assembly.nuclear_genome.fa +perl $LRSDAY_HOME/scripts/tidy_fasta.pl -i $prefix.assembly.nuclear_genome.fa -o $prefix.assembly.nuclear_genome.tidy.fa +ln -s $prefix.assembly.nuclear_genome.tidy.fa $prefix.genome.fa + +$repeatmasker_dir/RepeatMasker -pa $threads -lib $TE_lib $prefix.genome.fa -xsmall -gff +$reannotate_dir/REannotate_longname -g -f $LRSDAY_HOME/data/fuzzy_defragmentation.txt -k $clustalw_dir/clustalw2 -r 0.48764 -d 10000 -t $prefix.genome.fa.out $prefix.genome.fa mv REannotate_output ${prefix}_REannotate_out cd ${prefix}_REannotate_out perl $LRSDAY_HOME/scripts/parse_REannotate_gff.pl -o $prefix.REannotate.raw.gff mv $prefix.REannotate.raw.gff $prefix.REannotate.gff -perl $LRSDAY_HOME/scripts/parse_REannotate_out.pl -i genome.fa.REannotation -p $prefix.TY_REannotate -r ./../genome.fa +perl $LRSDAY_HOME/scripts/parse_REannotate_out.pl -i $prefix.genome.fa.REannotation -p $prefix.TY_REannotate -r ./../$prefix.genome.fa cat $prefix.TY_REannotate.complete.raw.fa |egrep ">" |egrep '(TY1|TY2)' |sed "s/>//g" >$prefix.TY_REannotate.complete.TY1TY2.raw.list perl $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $prefix.TY_REannotate.complete.raw.fa -l $prefix.TY_REannotate.complete.TY1TY2.raw.list -o $prefix.TY_REannotate.complete.TY1TY2.raw.fa @@ -31,12 +39,13 @@ perl $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $prefix.TY_REannotate.compl cat $prefix.TY_REannotate.truncated.raw.fa |egrep ">" |egrep '(TY1|TY2)' |sed "s/>//g" >$prefix.TY_REannotate.truncated.TY1TY2.raw.list perl $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $prefix.TY_REannotate.truncated.raw.fa -l $prefix.TY_REannotate.truncated.TY1TY2.raw.list -o $prefix.TY_REannotate.truncated.TY1TY2.raw.fa -for i in {3..5} +for i in TY3 TY4 TY5 TSU4 do - cat $prefix.TY_REannotate.complete.raw.fa |egrep ">" |egrep "TY${i}" |sed "s/>//g" >$prefix.TY_REannotate.complete.TY${i}.final.list - cat $prefix.TY_REannotate.truncated.raw.fa |egrep ">" |egrep "TY${i}" |sed "s/>//g" >$prefix.TY_REannotate.truncated.TY${i}.final.list + cat $prefix.TY_REannotate.complete.raw.fa |egrep ">" |egrep "$i" |sed "s/>//g" >$prefix.TY_REannotate.complete.$i.final.list + cat $prefix.TY_REannotate.truncated.raw.fa |egrep ">" |egrep "$i" |sed "s/>//g" >$prefix.TY_REannotate.truncated.$i.final.list done + TY2_query="$LRSDAY_HOME/data/TY2_specific_region.fa" @@ -74,25 +83,25 @@ else cat $prefix.TY_REannotate.truncated.TY2.list |sed "s/TY1/TY2/g" >$prefix.TY_REannotate.truncated.TY2.final.list fi -db="$LRSDAY_HOME/data/TY_lib.Yue_et_al_2017_NG.LTRonly.fa" +LTR_query="$prefix.TY_REannotate.soloLTR.raw.fa" +db=$TE_lib_LTRonly db_tag="soloLTR_db"; -if [ ! -s "$db" ] +if [ ! -s "$LTR_query" ] then - echo "$db is empty, skip .." + echo "$LTR_query is empty, skip .." touch $prefix.TY_soloLTR.refined.nr.gff else - LTR_query="$prefix.TY_REannotate.soloLTR.raw.fa" - $blast_dir/makeblastdb -in $db -dbtype nucl -title $db_tag -hash_index -out $db_tag - $blast_dir/blastn -task blastn -query $LTR_query -num_threads $threads -db $db_tag -outfmt 7 >$prefix.$db_tag.soloLTR.blastn.fmt7.out - perl $LRSDAY_HOME/scripts/trim_soloLTR_by_blast.pl -q $LTR_query -b $prefix.$db_tag.soloLTR.blastn.fmt7.out -p $prefix -i 70 -l 100 + $blast_dir/makeblastdb -in $db -dbtype nucl -title $db_tag -hash_index -out $db_tag + $blast_dir/blastn -task blastn -query $LTR_query -num_threads $threads -db $db_tag -outfmt 7 >$prefix.$db_tag.soloLTR.blastn.fmt7.out + perl $LRSDAY_HOME/scripts/trim_soloLTR_by_blast.pl -q $LTR_query -b $prefix.$db_tag.soloLTR.blastn.fmt7.out -p $prefix -i 75 -l 100 $bedtools_dir/bedtools sort -i $prefix.TY_REannotate.soloLTR.refined.gff > $prefix.TY_REannotate.soloLTR.refined.sorted.gff - perl $LRSDAY_HOME/scripts/rm_overlap_features_from_gff_simple.pl -r ./../genome.fa -i $prefix.TY_REannotate.soloLTR.refined.sorted.gff -o $prefix.TY_soloLTR.refined.nr.gff + perl $LRSDAY_HOME/scripts/rm_overlap_features_from_gff_simple.pl -r ./../$prefix.genome.fa -i $prefix.TY_REannotate.soloLTR.refined.sorted.gff -o $prefix.TY_soloLTR.refined.nr.gff fi -for i in {1..5} +for i in TY1 TY2 TY3 TY4 TY5 TSU4 do - perl $LRSDAY_HOME/scripts/TY_list2gff3.pl -i $prefix.TY_REannotate.complete.TY${i}.final.list -o $prefix.TY_REannotate.complete.TY${i}.final.gff -t $prefix - perl $LRSDAY_HOME/scripts/TY_list2gff3.pl -i $prefix.TY_REannotate.truncated.TY${i}.final.list -o $prefix.TY_REannotate.truncated.TY${i}.final.gff -t $prefix + perl $LRSDAY_HOME/scripts/TY_list2gff3.pl -i $prefix.TY_REannotate.complete.$i.final.list -o $prefix.TY_REannotate.complete.$i.final.gff -t $prefix + perl $LRSDAY_HOME/scripts/TY_list2gff3.pl -i $prefix.TY_REannotate.truncated.$i.final.list -o $prefix.TY_REannotate.truncated.$i.final.gff -t $prefix done cat $prefix.TY_REannotate.*.final.gff > $prefix.TY.complete_plus_truncated.final.gff @@ -102,17 +111,22 @@ $bedtools_dir/bedtools intersect -v -a $prefix.TY_soloLTR.refined.nr.gff -b $pre cat $prefix.TY.complete_plus_truncated.final.gff $prefix.TY.soloLTR.final.gff > $prefix.TY.all.final.gff -perl $LRSDAY_HOME/scripts/tidy_maker_gff3.pl -r ./../genome.fa -i $prefix.TY.all.final.gff -o $prefix.TE.gff3 -t $prefix +#perl $LRSDAY_HOME/scripts/tidy_maker_gff3.pl -r ./../$prefix.genome.fa -i $prefix.TY.all.final.gff -o $prefix.TE.gff3 -t $prefix +perl $LRSDAY_HOME/scripts/tidy_TE_gff3.pl -r ./../$prefix.genome.fa -i $prefix.TY.all.final.gff -o ./../$prefix.nuclear_genome.TE.gff3 -t $prefix + + +if [[ $debug == "no" ]] +then + rm $prefix.*.final.gff +fi -cp $prefix.TE.gff3 ./../ -cp $prefix.REannotate.gff ./../ -rm $prefix.*.final.gff cd .. # clean up intermediate files if [[ $debug == "no" ]] then - rm genome.fa* + rm $prefix.assembly.nuclear_genome* + rm $prefix.genome.fa* fi ############################ diff --git a/Project_Template/12.Core_X_Element_Annotation/LRSDAY.12.Core_X_Element_Annotation.sh b/Project_Template/12.Core_X_Element_Annotation/LRSDAY.12.Core_X_Element_Annotation.sh index 5c4f6f6..15c64b4 100755 --- a/Project_Template/12.Core_X_Element_Annotation/LRSDAY.12.Core_X_Element_Annotation.sh +++ b/Project_Template/12.Core_X_Element_Annotation/LRSDAY.12.Core_X_Element_Annotation.sh @@ -6,25 +6,34 @@ source ./../../env.sh ####################################### # set project-specific variables -prefix="SK1" # The file name prefix for the processing sample. Default = "SK1" for the testing example. -genome="./../07.Supervised_Final_Assembly/$prefix.assembly.final.fa" # The file path of the input genome assembly. +prefix="CPG_1a" # The file name prefix (only allowing strings of alphabetical letters, numbers, and underscores) for the processing sample. Default = "CPG_1a" for the testing example. +genome_assembly="./../07.Supervised_Final_Assembly/$prefix.assembly.final.fa" # The file path of the final input genome assembly. +chrMT_tag="chrMT" # The sequence name for the mitochondrial genome in the final assembly. If there are multiple sequences, use a single ';' to separate them. e.g. "chrMT_part1;chrMT_part2". Default = "chrMT". debug="no" # Whether to keep intermediate files for debugging. Use "yes" if prefer to keep intermediate files, otherwise use "no". Default = "no". ####################################### # process the pipeline feature_type="X_element" length_cutoff_for_completeness=300 -$hmmer_dir/nhmmer -E 1 --tblout $prefix.$feature_type.nhmmer.out $LRSDAY_HOME/data/S288C.$feature_type.hmm $genome -perl $LRSDAY_HOME/scripts/nhmer2seq.pl -r $genome -i $prefix.$feature_type.nhmmer.out -e 0.0001 -p $prefix -ft $feature_type -l $length_cutoff_for_completeness -perl $LRSDAY_HOME/scripts/tidy_maker_gff3.pl -i $prefix.$feature_type.raw.gff3 -r $genome -o $prefix.$feature_type.gff3 -t $prefix -perl $LRSDAY_HOME/scripts/gff2seq_simple.pl -r $genome -g $prefix.$feature_type.gff3 -o $prefix.$feature_type.fa -$muscle_dir/muscle -in $prefix.$feature_type.fa -out $prefix.$feature_type.aln.fa + +echo $chrMT_tag | sed -e "s/;/\n/g" > $prefix.assembly.chrMT.list +perl $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $genome_assembly -l $prefix.assembly.chrMT.list -m reverse -o $prefix.assembly.nuclear_genome.fa +perl $LRSDAY_HOME/scripts/tidy_fasta.pl -i $prefix.assembly.nuclear_genome.fa -o $prefix.assembly.nuclear_genome.tidy.fa + + +$hmmer_dir/nhmmer -E 1 --tblout $prefix.$feature_type.nhmmer.out $LRSDAY_HOME/data/S288C.$feature_type.hmm $prefix.assembly.nuclear_genome.tidy.fa +perl $LRSDAY_HOME/scripts/nhmer2seq.pl -r $prefix.assembly.nuclear_genome.tidy.fa -i $prefix.$feature_type.nhmmer.out -e 0.0001 -p $prefix -ft $feature_type -l $length_cutoff_for_completeness +perl $LRSDAY_HOME/scripts/tidy_maker_gff3.pl -i $prefix.$feature_type.raw.gff3 -r $prefix.assembly.nuclear_genome.tidy.fa -o $prefix.nuclear_genome.$feature_type.gff3 -t $prefix +perl $LRSDAY_HOME/scripts/gff2seq_simple.pl -r $prefix.assembly.nuclear_genome.tidy.fa -g $prefix.nuclear_genome.$feature_type.gff3 -o $prefix.nuclear_genome.$feature_type.fa +$muscle_dir/muscle -in $prefix.nuclear_genome.$feature_type.fa -out $prefix.nuclear_genome.$feature_type.aln.fa # clean up intermediate files if [[ $debug == "no" ]] then rm $prefix.$feature_type.raw.gff3 rm $prefix.$feature_type.raw.fa + rm $prefix.assembly.nuclear_genome.fa + rm $prefix.assembly.nuclear_genome.tidy.fa fi ############################ diff --git a/Project_Template/13.Y_Prime_Element_Annotation/LRSDAY.13.Y_Prime_Element_Annotation.sh b/Project_Template/13.Y_Prime_Element_Annotation/LRSDAY.13.Y_Prime_Element_Annotation.sh index 52fcfd5..3c5b590 100755 --- a/Project_Template/13.Y_Prime_Element_Annotation/LRSDAY.13.Y_Prime_Element_Annotation.sh +++ b/Project_Template/13.Y_Prime_Element_Annotation/LRSDAY.13.Y_Prime_Element_Annotation.sh @@ -6,8 +6,9 @@ source ./../../env.sh ####################################### # set project-specific variables -prefix="SK1" # The file name prefix for the processing sample. Default = "SK1" for the testing example. -genome="./../07.Supervised_Final_Assembly/$prefix.assembly.final.fa" # The file path of the input genome assembly. +prefix="CPG_1a" # The file name prefix (only allowing strings of alphabetical letters, numbers, and underscores) for the processing sample. Default = "CPG_1a" for the testing example. +genome_assembly="./../07.Supervised_Final_Assembly/$prefix.assembly.final.fa" # The file path of the final input genome assembly. +chrMT_tag="chrMT" # The sequence name for the mitochondrial genome in the final assembly. If there are multiple sequences, use a single ';' to separate them. e.g. "chrMT_part1;chrMT_part2". Default = "chrMT". debug="no" # Whether to keep intermediate files for debugging. Use "yes" if prefer to keep intermediate files, otherwise use "no". Default = "no". ####################################### @@ -16,13 +17,17 @@ feature_type="Y_prime_element" query="$LRSDAY_HOME/data/query.Y_prime_element.long.fa" length_cutoff_for_completeness=3500 -$ucsc_dir/blat -maxIntron=1000 $genome $query $prefix.$feature_type.blat.psl +echo $chrMT_tag | sed -e "s/;/\n/g" > $prefix.assembly.chrMT.list +perl $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $genome_assembly -l $prefix.assembly.chrMT.list -m reverse -o $prefix.assembly.nuclear_genome.fa +perl $LRSDAY_HOME/scripts/tidy_fasta.pl -i $prefix.assembly.nuclear_genome.fa -o $prefix.assembly.nuclear_genome.tidy.fa + +$ucsc_dir/blat -maxIntron=1000 $prefix.assembly.nuclear_genome.tidy.fa $query $prefix.$feature_type.blat.psl $ucsc_dir/pslCDnaFilter -minId=0.9 -minAlnSize=1000 -bestOverlap -filterWeirdOverlapped $prefix.$feature_type.blat.psl $prefix.$feature_type.blat.filtered.psl $ucsc_dir/pslScore $prefix.$feature_type.blat.filtered.psl | sort -nk5 -r > $prefix.$feature_type.blat.filtered.pslScore.out -perl $LRSDAY_HOME/scripts/psl2gff3.pl -i $prefix.$feature_type.blat.filtered.psl -o $prefix.$feature_type.raw.gff3 -ft $feature_type -t $prefix -r $genome -l $length_cutoff_for_completeness -perl $LRSDAY_HOME/scripts/tidy_maker_gff3.pl -i $prefix.$feature_type.raw.gff3 -r $genome -o $prefix.$feature_type.gff3 -t $prefix -perl $LRSDAY_HOME/scripts/gff2seq_simple.pl -r $genome -g $prefix.$feature_type.gff3 -o $prefix.$feature_type.fa -$muscle_dir/muscle -in $prefix.$feature_type.fa -out $prefix.$feature_type.aln.fa +perl $LRSDAY_HOME/scripts/psl2gff3.pl -i $prefix.$feature_type.blat.filtered.psl -o $prefix.$feature_type.raw.gff3 -ft $feature_type -t $prefix -r $prefix.assembly.nuclear_genome.tidy.fa -l $length_cutoff_for_completeness +perl $LRSDAY_HOME/scripts/tidy_maker_gff3.pl -i $prefix.$feature_type.raw.gff3 -r $prefix.assembly.nuclear_genome.tidy.fa -o $prefix.nuclear_genome.$feature_type.gff3 -t $prefix +perl $LRSDAY_HOME/scripts/gff2seq_simple.pl -r $prefix.assembly.nuclear_genome.tidy.fa -g $prefix.nuclear_genome.$feature_type.gff3 -o $prefix.nuclear_genome.$feature_type.fa +$muscle_dir/muscle -in $prefix.nuclear_genome.$feature_type.fa -out $prefix.nuclear_genome.$feature_type.aln.fa # clean up intermediate files if [[ $debug == "no" ]] @@ -31,6 +36,8 @@ then rm $prefix.Y_prime_element.blat.psl rm $prefix.Y_prime_element.blat.filtered.psl rm $prefix.Y_prime_element.blat.filtered.pslScore.out + rm $prefix.assembly.nuclear_genome.fa + rm $prefix.assembly.nuclear_genome.tidy.fa fi diff --git a/Project_Template/14.Gene_Orthology_Identification/LRSDAY.14.Gene_Orthology_Identification.sh b/Project_Template/14.Gene_Orthology_Identification/LRSDAY.14.Gene_Orthology_Identification.sh index 2fc5a3d..0fe8c04 100755 --- a/Project_Template/14.Gene_Orthology_Identification/LRSDAY.14.Gene_Orthology_Identification.sh +++ b/Project_Template/14.Gene_Orthology_Identification/LRSDAY.14.Gene_Orthology_Identification.sh @@ -6,16 +6,17 @@ source ./../../env.sh ####################################### # set project-specific variables -prefix="SK1" # The file name prefix for the processing sample. Default = "SK1" for the testing example. -threads=1 # The number of threads to use. Default = "1". +prefix="CPG_1a" # The file name prefix (only allowing strings of alphabetical letters, numbers, and underscores) for the processing sample. Default = "CPG_1a" for the testing example. -input_nuclear_gene_gff="./../09.Nuclear_Gene_Annotation/$prefix.nuclear_genome.EVM.gff3" # The file path of the input nuclear gene gff3 file generated in the task 09.Nuclear_Gene_Annotation. Set this variable as well as the following two variables to "" if you want to skip this step for the nuclear gene annotation. -query_nuclear_gene_PoFF_faa="./../09.Nuclear_Gene_Annotation/$prefix.nuclear_genome.EVM.PoFF.faa" # The file path of the PoFF.faa file generated in the task 09.Nuclear_Gene_Annotation. -query_nuclear_gene_PoFF_gff="./../09.Nuclear_Gene_Annotation/$prefix.nuclear_genome.EVM.PoFF.gff" # The file path of the PoFF.gff file generated in the task 09.Nuclear_Gene_Annotation. +threads=8 # The number of threads to use. Default = "8". -input_mitochondrial_gene_gff="./../10.Mitochondrial_Gene_Annotation/$prefix.mitochondrial_genome.mfannot.gff3" # The file path of the input mitochondrial gene gff3 file generated in the task 10.Mitochondrial_Gene_Annotation. Set this variable as well as the following two variables to "" if you want to skip this step for the mitochondrial gene annotation. -query_mitochondrial_gene_PoFF_faa="./../10.Mitochondrial_Gene_Annotation/$prefix.mitochondrial_genome.mfannot.PoFF.faa" # The file path of the PoFF.faa file generated in the task 10.Mitochondrial_Gene_Annotation. -query_mitochondrial_gene_PoFF_gff="./../10.Mitochondrial_Gene_Annotation/$prefix.mitochondrial_genome.mfannot.PoFF.gff" # The file path of the PoFF.gff file generated in the task 10.Mitochondrial_Gene_Annotation. +input_nuclear_genome_gff="./../09.Nuclear_Gene_Annotation/$prefix.nuclear_genome.gff3" # The file path of the input nuclear gene gff3 file generated in the task 09.Nuclear_Gene_Annotation. Set this variable as well as the following two variables to "" if you want to skip this step for the nuclear gene annotation. +query_nuclear_genome_PoFF_faa="./../09.Nuclear_Gene_Annotation/$prefix.nuclear_genome.PoFF.faa" # The file path of the PoFF.faa file generated in the task 09.Nuclear_Gene_Annotation.Po +query_nuclear_genome_PoFF_gff="./../09.Nuclear_Gene_Annotation/$prefix.nuclear_genome.PoFF.gff" # The file path of the PoFF.gff file generated in the task 09.Nuclear_Gene_Annotation. + +input_mitochondrial_genome_gff="./../10.Mitochondrial_Gene_Annotation/$prefix.mitochondrial_genome.gff3" # The file path of the input mitochondrial gene gff3 file generated in the task 10.Mitochondrial_Gene_Annotation. Set this variable as well as the following two variables to "" if you want to skip this step for the mitochondrial gene annotation. +query_mitochondrial_genome_PoFF_faa="./../10.Mitochondrial_Gene_Annotation/$prefix.mitochondrial_genome.PoFF.faa" # The file path of the PoFF.faa file generated in the task 10.Mitochondrial_Gene_Annotation. +query_mitochondrial_genome_PoFF_gff="./../10.Mitochondrial_Gene_Annotation/$prefix.mitochondrial_genome.PoFF.gff" # The file path of the PoFF.gff file generated in the task 10.Mitochondrial_Gene_Annotation. ref_PoFF_faa="$LRSDAY_HOME/data/SGDref.PoFF.faa" # The file path of the reference proteome file in FASTA format: for S. cerevisiae and its close relatives, you can directly use the pre-shipped file: SGDref.PoFF.faa; if you work with other organisms, you can check ProteinOrtho's manual for details on how to prepare such file. ref_PoFF_gff="$LRSDAY_HOME/data/SGDref.PoFF.gff" # The path of the reference gene GFF file in GFF format: for S. cerevisiae and its close relatives, you can directly use the pre-shipped file: SGDref.PoFF.gff; if you work with other organisms, you can check ProteinOrtho's manual for details on how to prepare such file. @@ -41,46 +42,45 @@ cp $ref_PoFF_faa ref.PoFF.faa cp $ref_PoFF_gff ref.PoFF.gff # process nuclear gene annotation -if [[ ! -z $input_nuclear_gene_gff ]] +if [[ ! -z $input_nuclear_genome_gff ]] then - echo "The variable input_nuclear_gene_gff has been specified, so expecting input files specified for query_nuclear_gene_PoFF_faa and query_nuclear_gene_PoFF_gff" - test_file_existence $query_nuclear_gene_PoFF_faa - test_file_existence $query_nuclear_gene_PoFF_gff - cp $query_nuclear_gene_PoFF_faa query.nuclear_gene.PoFF.faa - cp $query_nuclear_gene_PoFF_gff query.nuclear_gene.PoFF.gff - output_nuclear_gene_gff="$prefix.nuclear_gene.orthology_map.gff3" - proteinortho_nuclear_gene_input="query.nuclear_gene.PoFF.faa ref.PoFF.faa" - perl $proteinortho_dir/proteinortho5.pl -cpus=$threads -blastpath=$blast_dir -singles -synteny -project="$prefix.nuclear_gene" $proteinortho_nuclear_gene_input - perl $LRSDAY_HOME/scripts/update_gff3_by_proteinortho.pl -i $input_nuclear_gene_gff -x $prefix.nuclear_gene.poff -r ref.PoFF.faa -q query.nuclear_gene.PoFF.faa -o $prefix.nuclear_gene.updated.gff3 + echo "The variable input_nuclear_genome_gff has been specified, so expecting input files specified for query_nuclear_genome_PoFF_faa and query_nuclear_genome_PoFF_gff" + test_file_existence $query_nuclear_genome_PoFF_faa + test_file_existence $query_nuclear_genome_PoFF_gff + cp $query_nuclear_genome_PoFF_faa query.nuclear_genome.PoFF.faa + cp $query_nuclear_genome_PoFF_gff query.nuclear_genome.PoFF.gff + proteinortho_nuclear_genome_input="query.nuclear_genome.PoFF.faa ref.PoFF.faa" + $proteinortho_dir/proteinortho -cpus=$threads -p=blastp -binpath=$blast_dir -singles -synteny -project="$prefix.nuclear_genome" $proteinortho_nuclear_genome_input + perl $LRSDAY_HOME/scripts/update_gff3_by_proteinortho.pl -i $input_nuclear_genome_gff -x $prefix.nuclear_genome.proteinortho.tsv -r ref.PoFF.faa -q query.nuclear_genome.PoFF.faa -o $prefix.nuclear_genome.SGD_orthology_mapped.gff3 + if [[ $debug == "no" ]] then - rm $prefix.nuclear_gene.ffadj-graph - rm $prefix.nuclear_gene.blast-graph - rm $prefix.nuclear_gene.proteinortho-graph - rm $prefix.nuclear_gene.poff-graph + rm $prefix.nuclear_genome.ffadj-graph + rm $prefix.nuclear_genome.blast-graph + rm $prefix.nuclear_genome.proteinortho-graph + rm $prefix.nuclear_genome.poff-graph fi fi # process mitochondrial gene annotation -if [[ ! -z $input_mitochondrial_gene_gff ]] +if [[ ! -z $input_mitochondrial_genome_gff ]] then - echo "The variable input_mitochondrial_gene_gff has been specified, so expecting input files specified for query_mitochondrial_gene_PoFF_faa and query_mitochondrial_gene_PoFF_gff" - test_file_existence $query_mitochondrial_gene_PoFF_faa - test_file_existence $query_mitochondrial_gene_PoFF_gff - cp $query_mitochondrial_gene_PoFF_faa query.mitochondrial_gene.PoFF.faa - cp $query_mitochondrial_gene_PoFF_gff query.mitochondrial_gene.PoFF.gff - output_mitochondrial_gene_gff="$prefix.mitochondrial_gene.orthology_map.gff3" - proteinortho_mitochondrial_gene_input="query.mitochondrial_gene.PoFF.faa ref.PoFF.faa" - perl $proteinortho_dir/proteinortho5.pl -cpus=$threads -blastpath=$blast_dir -singles -synteny -project="$prefix.mitochondrial_gene" $proteinortho_mitochondrial_gene_input - perl $LRSDAY_HOME/scripts/update_gff3_by_proteinortho.pl -i $input_mitochondrial_gene_gff -x $prefix.mitochondrial_gene.poff -r ref.PoFF.faa -q query.mitochondrial_gene.PoFF.faa -o $prefix.mitochondrial_gene.updated.gff3 + echo "The variable input_mitochondrial_genome_gff has been specified, so expecting input files specified for query_mitochondrial_genome_PoFF_faa and query_mitochondrial_genome_PoFF_gff" + test_file_existence $query_mitochondrial_genome_PoFF_faa + test_file_existence $query_mitochondrial_genome_PoFF_gff + cp $query_mitochondrial_genome_PoFF_faa query.mitochondrial_genome.PoFF.faa + cp $query_mitochondrial_genome_PoFF_gff query.mitochondrial_genome.PoFF.gff + proteinortho_mitochondrial_genome_input="query.mitochondrial_genome.PoFF.faa ref.PoFF.faa" + perl $proteinortho_dir/proteinortho -cpus=$threads -p=blastp -binpath=$blast_dir -singles -synteny -project="$prefix.mitochondrial_genome" $proteinortho_mitochondrial_genome_input + perl $LRSDAY_HOME/scripts/update_gff3_by_proteinortho.pl -i $input_mitochondrial_genome_gff -x $prefix.mitochondrial_genome.proteinortho.tsv -r ref.PoFF.faa -q query.mitochondrial_genome.PoFF.faa -o $prefix.mitochondrial_genome.SGD_orthology_mapped.gff3 if [[ $debug == "no" ]] then - rm $prefix.mitochondrial_gene.ffadj-graph - rm $prefix.mitochondrial_gene.blast-graph - rm $prefix.mitochondrial_gene.proteinortho-graph - rm $prefix.mitochondrial_gene.poff-graph + rm $prefix.mitochondrial_genome.ffadj-graph + rm $prefix.mitochondrial_genome.blast-graph + rm $prefix.mitochondrial_genome.proteinortho-graph + rm $prefix.mitochondrial_genome.poff-graph fi fi @@ -90,6 +90,7 @@ if [[ $debug == "no" ]] then rm query.* rm ref.* + rm proteinortho_cache_${prefix}.log fi ############################ diff --git a/Project_Template/15.Annotation_Integration/LRSDAY.15.Annotation_Integration.sh b/Project_Template/15.Annotation_Integration/LRSDAY.15.Annotation_Integration.sh index 306f7e8..695d896 100755 --- a/Project_Template/15.Annotation_Integration/LRSDAY.15.Annotation_Integration.sh +++ b/Project_Template/15.Annotation_Integration/LRSDAY.15.Annotation_Integration.sh @@ -6,14 +6,15 @@ source ./../../env.sh ####################################### # set project-specific variables -prefix="SK1" # The file name prefix for the processing sample. Default = "SK1" for the testing example. -genome="./../07.Supervised_Final_Assembly/$prefix.assembly.final.fa" # The file path of the input genome assembly. -centromere_gff3="./../08.Centromere_Annotation/$prefix.centromere.gff3" # The path of the final centromere annotation gff3 generated by task 08.Centromere_Annotation_for_FinalAssembly, use "" if not existing. -TE_gff3="./../11.TE_Annotation/$prefix.TE.gff3" # The file path of the TE annotation gff3 generated by task 11.TE_Annotation, use "" if not existing. -X_element_gff3="./../12.Core_X_Element_Annotation/$prefix.X_element.gff3" # The file path of the X_element annotation gff3 generated by task 12.CoreX_Annotation, use "" if not existing. -Y_prime_element_gff3="./../13.Y_Prime_Element_Annotation/$prefix.Y_prime_element.gff3" # The file path of the Y_prime_element annotation gff3 generated by task 13.Yprime_Annotation, use "" if not existing. -nuclear_gene_gff3="./../14.Gene_Orthology_Identification/$prefix.nuclear_gene.updated.gff3" # The file path of the nuclear gene annotation gff3 generated by task 14.GeneOrthology_Identification (which is better) or 09.Nuclear_Gene_Annotation, use "" if not existing. -mitochondrial_gene_gff3="./../14.Gene_Orthology_Identification/$prefix.mitochondrial_gene.updated.gff3" # The file path of the mitochondrial gene annotation gff3 generated by task 14.GeneOrthology_Identification (which is better) or 10.Mitochondrial_Gene_Annotation, use "" if not existing. +prefix="CPG_1a" # The file name prefix (only allowing strings of alphabetical letters, numbers, and underscores) for the processing sample. Default = "CPG_1a" for the testing example. + +genome_assembly="./../07.Supervised_Final_Assembly/$prefix.assembly.final.fa" # The file path of the final input genome assembly. +centromere_gff3="./../08.Centromere_Annotation/$prefix.nuclear_genome.centromere.gff3" # The path of the final centromere annotation gff3 generated by task 08.Centromere_Annotation_for_FinalAssembly, use "" if not existing. +TE_gff3="./../11.TE_Annotation/$prefix.nuclear_genome.TE.gff3" # The file path of the TE annotation gff3 generated by task 11.TE_Annotation, use "" if not existing. +X_element_gff3="./../12.Core_X_Element_Annotation/$prefix.nuclear_genome.X_element.gff3" # The file path of the X_element annotation gff3 generated by task 12.CoreX_Annotation, use "" if not existing. +Y_prime_element_gff3="./../13.Y_Prime_Element_Annotation/$prefix.nuclear_genome.Y_prime_element.gff3" # The file path of the Y_prime_element annotation gff3 generated by task 13.Yprime_Annotation, use "" if not existing. +nuclear_gene_gff3="./../14.Gene_Orthology_Identification/$prefix.nuclear_genome.SGD_orthology_mapped.gff3" # The file path of the nuclear gene annotation gff3 generated by task 14.GeneOrthology_Identification (which is better) or 09.Nuclear_Gene_Annotation, use "" if not existing. +mitochondrial_gene_gff3="./../14.Gene_Orthology_Identification/$prefix.mitochondrial_genome.SGD_orthology_mapped.gff3" # The file path of the mitochondrial gene annotation gff3 generated by task 14.GeneOrthology_Identification (which is better) or 10.Mitochondrial_Gene_Annotation, use "" if not existing. chrMT_tag="chrMT" # The sequence name for the mitochondrial genome in the input genome assembly, if there are multiple corresponding contigs/scaffolds, use a single ';' to separate them. e.g. "chrMT_1;chrMT_2". Default = "chrMT". chrMT_genetic_code_table=3 # The NCBI genetic code table (https://www.ncbi.nlm.nih.gov/Taxonomy/Utils/wprintgc.cgi) for the annotated mitochondrial genome. Default = 3 (i.e. Yeast Mitochondria) @@ -21,38 +22,52 @@ debug="no" # use "yes" if prefer to keep intermediate files, otherwise use "no". ###################################### # process the pipeline -cat $centromere_gff3 $TE_gff3 $X_element_gff3 $Y_prime_element_gff3 $nuclear_gene_gff3 $mitochondrial_gene_gff3 >$prefix.concatenated.gff3 -perl $LRSDAY_HOME/scripts/sort_gff3.pl -i $prefix.concatenated.gff3 -t $prefix -o $prefix.final.gff3 -r $genome -perl $LRSDAY_HOME/scripts/extract_cds_from_tidy_gff3.pl -r $genome -g $prefix.final.gff3 -o $prefix.final.cds.fa -cp $genome $prefix.assembly.final.fa echo $chrMT_tag | sed -e "s/;/\n/g" > $prefix.assembly.chrMT.list -$LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $genome -l $prefix.assembly.chrMT.list -m reverse -o $prefix.assembly.nuclear_genome.fa -$LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $genome -l $prefix.assembly.chrMT.list -m normal -o $prefix.assembly.mitochondrial_genome.fa +perl $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $genome_assembly -l $prefix.assembly.chrMT.list -m reverse -o $prefix.nuclear_genome.fa +perl $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $genome_assembly -l $prefix.assembly.chrMT.list -m normal -o $prefix.mitochondrial_genome.fa + +perl $LRSDAY_HOME/scripts/tidy_fasta.pl -i $prefix.nuclear_genome.fa -o $prefix.nuclear_genome.tidy.fa + +cat $centromere_gff3 $TE_gff3 $X_element_gff3 $Y_prime_element_gff3 $nuclear_gene_gff3 >$prefix.nuclear_genome.concatenated.gff3 +perl $LRSDAY_HOME/scripts/sort_gff3.pl -i $prefix.nuclear_genome.concatenated.gff3 -t $prefix -o $prefix.nuclear_genome.tidy.gff3 -r $prefix.nuclear_genome.tidy.fa if [[ ! -z $nuclear_gene_gff3 ]] then - perl $LRSDAY_HOME/scripts/extract_cds_from_tidy_gff3.pl -r $prefix.assembly.nuclear_genome.fa -g $prefix.final.gff3 -o $prefix.nuclear_genome.cds.fa - perl $LRSDAY_HOME/scripts/cds2protein.pl -i $prefix.nuclear_genome.cds.fa -p $prefix.nuclear_genome -t 1 + perl $LRSDAY_HOME/scripts/extract_cds_from_tidy_gff3.pl -r $prefix.nuclear_genome.tidy.fa -g $prefix.nuclear_genome.tidy.gff3 -o $prefix.nuclear_genome.tidy.cds.fa + perl $LRSDAY_HOME/scripts/cds2protein.pl -i $prefix.nuclear_genome.tidy.cds.fa -p $prefix.nuclear_genome.tidy -t 1 fi -if [[ ! -z $mitochondrial_gene_gff3 ]] +if [[ $(egrep -c "^>" "$prefix.mitochondrial_genome.fa") -eq 0 ]] then - perl $LRSDAY_HOME/scripts/extract_cds_from_tidy_gff3.pl -r $prefix.assembly.mitochondrial_genome.fa -g $prefix.final.gff3 -o $prefix.mitochondrial_genome.cds.fa - perl $LRSDAY_HOME/scripts/cds2protein.pl -i $prefix.mitochondrial_genome.cds.fa -p $prefix.mitochondrial_genome -t $chrMT_genetic_code_table -fi + echo "No mitochondrial genome assembly was detected! Skip final annotation aggregation for the mitochondrial genome!" +else + perl $LRSDAY_HOME/scripts/tidy_fasta.pl -i $prefix.mitochondrial_genome.fa -o $prefix.mitochondrial_genome.tidy.fa + cp $mitochondrial_gene_gff3 $prefix.mitochondrial_genome.tidy.gff3 + if [[ ! -z $mitochondrial_gene_gff3 ]] + then + perl $LRSDAY_HOME/scripts/extract_cds_from_tidy_gff3.pl -r $prefix.mitochondrial_genome.tidy.fa -g $prefix.mitochondrial_genome.tidy.gff3 -o $prefix.mitochondrial_genome.tidy.cds.fa + perl $LRSDAY_HOME/scripts/cds2protein.pl -i $prefix.mitochondrial_genome.tidy.cds.fa -p $prefix.mitochondrial_genome.tidy -t $chrMT_genetic_code_table + fi -if [[ ! -z $nuclear_gene_gff3 && ! -z $mitochondrial_gene_gff3 ]] -then - cat $prefix.nuclear_genome.trimmed_cds.fa $prefix.mitochondrial_genome.trimmed_cds.fa > $prefix.final.trimmed_cds.fa - cat $prefix.nuclear_genome.pep.fa $prefix.mitochondrial_genome.pep.fa >$prefix.final.pep.fa - cat $prefix.nuclear_genome.manual_check.list $prefix.mitochondrial_genome.manual_check.list > $prefix.final.manual_check.list fi + + # clean up intermediate files if [[ $debug == "no" ]] then - rm $prefix.concatenated.gff3 + rm $prefix.nuclear_genome.concatenated.gff3 + + if [[ -e $prefix.nuclear_genome.fa ]] + then + rm $prefix.nuclear_genome.fa + fi + + if [[ -e $prefix.mitochondrial_genome.fa ]] + then + rm $prefix.mitochondrial_genome.fa + fi fi ############################ diff --git a/README.md b/README.md index 3eebcb8..3bda02c 100644 --- a/README.md +++ b/README.md @@ -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.0 Released on 2022/12/31 * v1.6.0 Released on 2019/10/03 * v1.5.0 Released on 2019/05/13 * v1.4.0 Released on 2019/03/21 @@ -37,7 +38,7 @@ LRSDAY itself is distributed under the MIT license. A number of LRSDAY's depende ## Requirements ### Hardware, operating system and network -This protocol is designed for a desktop or computing server running an x86-64-bit Linux operating system. Multithreaded processors are preferred to speed up the process since many steps can be configured to use multiple threads in parallel. For assembling and analyzing the budding yeast genomes (genome size = ~12.5 Mb), at least 16 Gb of RAM and 100 Gb of free disk space are recomended. When adapted for other eukaryotic organisms with larger genome sizes, the RAM and disk space consumption will scale up, majorly during *de novo* genome assembly (performed by [Canu](https://github.com/marbl/canu) by default. Plese refer to [Canu’s manual](http://canu.readthedocs.io/en/latest/) for suggested RAM and disk space consumption for assembling large genomes. Stable Internet connection is required for the installation and configuration of LRSDAY as well as for retrieving the test data. +This protocol is designed for a desktop or computing server running an x86-64-bit Linux operating system. Multithreaded processors are preferred to speed up the process since many steps can be configured to use multiple threads in parallel. For assembling and analyzing the budding yeast genomes (genome size = ~12.5 Mb), at least 16 Gb of RAM and 100 Gb of free disk space are recomended. More disk space is needed if you want to use LRSDAY to do Nanopore basecalling. When adapted for other eukaryotic organisms with larger genome sizes, the RAM and disk space consumption will scale up, majorly during *de novo* genome assembly (performed by [Canu](https://github.com/marbl/canu) by default. Plese refer to [Canu’s manual](http://canu.readthedocs.io/en/latest/) for suggested RAM and disk space consumption for assembling large genomes. Stable Internet connection is required for the installation and configuration of LRSDAY as well as for retrieving the test data. ### Software or library requirements @@ -53,7 +54,7 @@ This protocol is designed for a desktop or computing server running an x86-64-bi * perl v5.12 or newer (https://www.perl.org/) * python v2.7.9 or newer (https://www.python.org/) * python-devel -* python v3.4 or newer (https://www.python.org/) +* python v3.7 or newer (https://www.python.org/) * python3-devel * tar (https://www.gnu.org/software/tar/) * unzip (http://infozip.sourceforge.net/UnZip.html) diff --git a/data/Proteome_DB_for_annotation.CDhit_I95.fa.gz b/data/Proteome_DB_for_annotation.CDhit_I95.fa.gz index eee4cab..aa92adf 100644 Binary files a/data/Proteome_DB_for_annotation.CDhit_I95.fa.gz and b/data/Proteome_DB_for_annotation.CDhit_I95.fa.gz differ diff --git a/data/SGDref.PoFF.faa.gz b/data/SGDref.PoFF.faa.gz index bc36e84..0af577d 100644 Binary files a/data/SGDref.PoFF.faa.gz and b/data/SGDref.PoFF.faa.gz differ diff --git a/data/SGDref.PoFF.ffn.gz b/data/SGDref.PoFF.ffn.gz index a0c2124..6dca2f2 100644 Binary files a/data/SGDref.PoFF.ffn.gz and b/data/SGDref.PoFF.ffn.gz differ diff --git a/data/SGDref.PoFF.gff b/data/SGDref.PoFF.gff deleted file mode 100644 index ceece18..0000000 --- a/data/SGDref.PoFF.gff +++ /dev/null @@ -1,5816 +0,0 @@ -chrI SGD CDS 1807 2169 . - . ID=YAL068C;Name=YAL068C;Alias=PAU8 -chrI SGD CDS 2480 2707 . + . ID=YAL067W-A;Name=YAL067W-A;Alias= -chrI SGD CDS 7235 9016 . - . ID=YAL067C;Name=YAL067C;Alias=SEO1 -chrI SGD CDS 11565 11951 . - . ID=YAL065C;Name=YAL065C;Alias= -chrI SGD CDS 12046 12426 . + . ID=YAL064W-B;Name=YAL064W-B;Alias= -chrI SGD CDS 13363 13743 . - . ID=YAL064C-A;Name=YAL064C-A;Alias=TDA8 -chrI SGD CDS 21566 21850 . + . ID=YAL064W;Name=YAL064W;Alias= -chrI SGD CDS 22395 22685 . - . ID=YAL063C-A;Name=YAL063C-A;Alias= -chrI SGD CDS 24000 27968 . - . ID=YAL063C;Name=YAL063C;Alias=FLO9 -chrI SGD CDS 31567 32940 . + . ID=YAL062W;Name=YAL062W;Alias=GDH3 -chrI SGD CDS 33448 34701 . + . ID=YAL061W;Name=YAL061W;Alias=BDH2 -chrI SGD CDS 35155 36303 . + . ID=YAL060W;Name=YAL060W;Alias=BDH1 -chrI SGD CDS 36509 37147 . + . ID=YAL059W;Name=YAL059W;Alias=ECM1 -chrI SGD CDS 37464 38972 . + . ID=YAL058W;Name=YAL058W;Alias=CNE1 -chrI SGD CDS 39259 41901 . + . ID=YAL056W;Name=YAL056W;Alias=GPB2 -chrI SGD CDS 42177 42719 . + . ID=YAL055W;Name=YAL055W;Alias=PEX22 -chrI SGD CDS 42881 45022 . - . ID=YAL054C;Name=YAL054C;Alias=ACS1 -chrI SGD CDS 45899 48250 . + . ID=YAL053W;Name=YAL053W;Alias=FLC2 -chrI SGD CDS 48564 51707 . + . ID=YAL051W;Name=YAL051W;Alias=OAF1 -chrI SGD CDS 51855 52595 . - . ID=YAL049C;Name=YAL049C;Alias=AIM2 -chrI SGD CDS 52801 54789 . - . ID=YAL048C;Name=YAL048C;Alias=GEM1 -chrI SGD CDS 54989 56857 . - . ID=YAL047C;Name=YAL047C;Alias=SPC72 -chrI SGD CDS 57029 57385 . - . ID=YAL046C;Name=YAL046C;Alias=BOL3 -chrI SGD CDS 57518 57850 . + . ID=YAL044W-A;Name=YAL044W-A;Alias=BOL1 -chrI SGD CDS 57950 58462 . - . ID=YAL044C;Name=YAL044C;Alias=GCV3 -chrI SGD CDS 58695 61052 . - . ID=YAL043C;Name=YAL043C;Alias=PTA1 -chrI SGD CDS 61316 62563 . + . ID=YAL042W;Name=YAL042W;Alias=ERV46 -chrI SGD CDS 62840 65404 . + . ID=YAL041W;Name=YAL041W;Alias=CDC24 -chrI SGD CDS 65778 67520 . - . ID=YAL040C;Name=YAL040C;Alias=CLN3 -chrI SGD CDS 68716 69525 . - . ID=YAL039C;Name=YAL039C;Alias=CYC3 -chrI SGD CDS 71786 73288 . + . ID=YAL038W;Name=YAL038W;Alias=CDC19 -chrI SGD CDS 73426 73518 . - . ID=YAL037C-A;Name=YAL037C-A;Alias= -chrI SGD CDS 74020 74823 . + . ID=YAL037W;Name=YAL037W;Alias= -chrI SGD CDS 75043 76152 . - . ID=YAL036C;Name=YAL036C;Alias=RBG1 -chrI SGD CDS 76427 79435 . + . ID=YAL035W;Name=YAL035W;Alias=FUN12 -chrI SGD CDS 79718 80587 . + . ID=YAL034W-A;Name=YAL034W-A;Alias=MTW1 -chrI SGD CDS 80710 81951 . - . ID=YAL034C;Name=YAL034C;Alias=FUN19 -chrI SGD CDS 82706 83227 . + . ID=YAL033W;Name=YAL033W;Alias=POP5 -chrI SGD CDS 83335 84474 . - . ID=YAL032C;Name=YAL032C;Alias=PRP45 -chrI SGD CDS 84749 87031 . - . ID=YAL031C;Name=YAL031C;Alias=GIP4 -chrI SGD CDS 87286 87752 . + . ID=YAL030W;Name=YAL030W;Alias=SNC1 -chrI SGD CDS 87855 92270 . - . ID=YAL029C;Name=YAL029C;Alias=MYO4 -chrI SGD CDS 92900 94486 . + . ID=YAL028W;Name=YAL028W;Alias=FRT2 -chrI SGD CDS 94687 95472 . + . ID=YAL027W;Name=YAL027W;Alias=SAW1 -chrI SGD CDS 95630 99697 . - . ID=YAL026C;Name=YAL026C;Alias=DRS2 -chrI SGD CDS 100225 101145 . - . ID=YAL025C;Name=YAL025C;Alias=MAK16 -chrI SGD CDS 101565 105872 . - . ID=YAL024C;Name=YAL024C;Alias=LTE1 -chrI SGD CDS 106272 108551 . - . ID=YAL023C;Name=YAL023C;Alias=PMT2 -chrI SGD CDS 108877 110430 . - . ID=YAL022C;Name=YAL022C;Alias=FUN26 -chrI SGD CDS 110846 113359 . - . ID=YAL021C;Name=YAL021C;Alias=CCR4 -chrI SGD CDS 113614 114615 . - . ID=YAL020C;Name=YAL020C;Alias=ATS1 -chrI SGD CDS 114919 118314 . + . ID=YAL019W;Name=YAL019W;Alias=FUN30 -chrI SGD CDS 118564 119541 . - . ID=YAL018C;Name=YAL018C;Alias=LDS1 -chrI SGD CDS 120225 124295 . + . ID=YAL017W;Name=YAL017W;Alias=PSK1 -chrI SGD CDS 124879 126786 . + . ID=YAL016W;Name=YAL016W;Alias=TPD3 -chrI SGD CDS 126903 128102 . - . ID=YAL015C;Name=YAL015C;Alias=NTG1 -chrI SGD CDS 128252 129019 . - . ID=YAL014C;Name=YAL014C;Alias=SYN8 -chrI SGD CDS 129270 130487 . + . ID=YAL013W;Name=YAL013W;Alias=DEP1 -chrI SGD CDS 130799 131983 . + . ID=YAL012W;Name=YAL012W;Alias=CYS3 -chrI SGD CDS 132199 134076 . + . ID=YAL011W;Name=YAL011W;Alias=SWC3 -chrI SGD CDS 134184 135665 . - . ID=YAL010C;Name=YAL010C;Alias=MDM10 -chrI SGD CDS 135854 136633 . + . ID=YAL009W;Name=YAL009W;Alias=SPO7 -chrI SGD CDS 136914 137510 . + . ID=YAL008W;Name=YAL008W;Alias=FUN14 -chrI SGD CDS 137698 138345 . - . ID=YAL007C;Name=YAL007C;Alias=ERP2 -chrI SGD CDS 139503 141431 . - . ID=YAL005C;Name=YAL005C;Alias=SSA1 -chrI SGD CDS 142174 143160 . + . ID=YAL003W;Name=YAL003W;Alias=EFB1 -chrI SGD CDS 143707 147531 . + . ID=YAL002W;Name=YAL002W;Alias=VPS8 -chrI SGD CDS 147594 151166 . - . ID=YAL001C;Name=YAL001C;Alias=TFC3 -chrI SGD CDS 152257 153876 . + . ID=YAR002W;Name=YAR002W;Alias=NUP60 -chrI SGD CDS 154065 154724 . - . ID=YAR002C-A;Name=YAR002C-A;Alias=ERP1 -chrI SGD CDS 155005 156285 . + . ID=YAR003W;Name=YAR003W;Alias=SWD1 -chrI SGD CDS 156754 158619 . - . ID=YAR007C;Name=YAR007C;Alias=RFA1 -chrI SGD CDS 158966 159793 . + . ID=YAR008W;Name=YAR008W;Alias=SEN34 -chrI SGD CDS 166742 168871 . - . ID=YAR014C;Name=YAR014C;Alias=BUD14 -chrI SGD CDS 169375 170295 . + . ID=YAR015W;Name=YAR015W;Alias=ADE1 -chrI SGD CDS 170396 171703 . - . ID=YAR018C;Name=YAR018C;Alias=KIN3 -chrI SGD CDS 172211 175135 . - . ID=YAR019C;Name=YAR019C;Alias=CDC15 -chrI SGD CDS 176856 177023 . - . ID=YAR020C;Name=YAR020C;Alias=PAU7 -chrI SGD CDS 179281 179820 . - . ID=YAR023C;Name=YAR023C;Alias= -chrI SGD CDS 183770 184477 . + . ID=YAR027W;Name=YAR027W;Alias=UIP3 -chrI SGD CDS 184892 185596 . + . ID=YAR028W;Name=YAR028W;Alias= -chrI SGD CDS 186321 186545 . + . ID=YAR029W;Name=YAR029W;Alias= -chrI SGD CDS 186836 187732 . + . ID=YAR031W;Name=YAR031W;Alias=PRM9 -chrI SGD CDS 188107 188811 . + . ID=YAR033W;Name=YAR033W;Alias=MST28 -chrI SGD CDS 190193 192256 . + . ID=YAR035W;Name=YAR035W;Alias=YAT1 -chrI SGD CDS 192337 192417 . - . ID=YAR035C-A;Name=YAR035C-A;Alias= -chrI SGD CDS 192619 196185 . + . ID=YAR042W;Name=YAR042W;Alias=SWH1 -chrI SGD CDS 203403 208016 . + . ID=YAR050W;Name=YAR050W;Alias=FLO1 -chrI SGD CDS 220198 220497 . + . ID=YAR064W;Name=YAR064W;Alias= -chrI SGD CDS 221049 221660 . + . ID=YAR066W;Name=YAR066W;Alias= -chrI SGD CDS 222406 222891 . + . ID=YAR068W;Name=YAR068W;Alias= -chrI SGD CDS 225460 226863 . + . ID=YAR071W;Name=YAR071W;Alias=PHO11 -chrII SGD CDS 280 2658 . - . ID=YBL113C;Name=YBL113C;Alias= -chrII SGD CDS 2582 2899 . - . ID=YBL112C;Name=YBL112C;Alias= -chrII SGD CDS 2907 5009 . - . ID=YBL111C;Name=YBL111C;Alias= -chrII SGD CDS 7605 7733 . - . ID=YBL108C-A;Name=YBL108C-A;Alias=PAU9 -chrII SGD CDS 9961 10551 . - . ID=YBL107C;Name=YBL107C;Alias=MIX23 -chrII SGD CDS 10847 13879 . - . ID=YBL106C;Name=YBL106C;Alias=SRO77 -chrII SGD CDS 14241 17696 . - . ID=YBL105C;Name=YBL105C;Alias=PKC1 -chrII SGD CDS 18177 21293 . - . ID=YBL104C;Name=YBL104C;Alias=SEA4 -chrII SGD CDS 22076 23536 . - . ID=YBL103C;Name=YBL103C;Alias=RTG3 -chrII SGD CDS 24098 24745 . + . ID=YBL102W;Name=YBL102W;Alias=SFT2 -chrII SGD CDS 24946 28299 . - . ID=YBL101C;Name=YBL101C;Alias=ECM21 -chrII SGD CDS 28427 28546 . + . ID=YBL100W-C;Name=YBL100W-C;Alias= -chrII SGD CDS 37053 38690 . + . ID=YBL099W;Name=YBL099W;Alias=ATP1 -chrII SGD CDS 39145 40527 . + . ID=YBL098W;Name=YBL098W;Alias=BNA4 -chrII SGD CDS 40831 43095 . + . ID=YBL097W;Name=YBL097W;Alias=BRN1 -chrII SGD CDS 43277 44089 . + . ID=YBL095W;Name=YBL095W;Alias=MRX3 -chrII SGD CDS 44256 44918 . - . ID=YBL093C;Name=YBL093C;Alias=ROX3 -chrII SGD CDS 45645 46370 . + . ID=YBL092W;Name=YBL092W;Alias=RPL32 -chrII SGD CDS 46565 47180 . - . ID=YBL091C-A;Name=YBL091C-A;Alias=SCS22 -chrII SGD CDS 47363 48628 . - . ID=YBL091C;Name=YBL091C;Alias=MAP2 -chrII SGD CDS 48825 49358 . + . ID=YBL090W;Name=YBL090W;Alias=MRP21 -chrII SGD CDS 49574 50953 . + . ID=YBL089W;Name=YBL089W;Alias=AVT5 -chrII SGD CDS 51019 59382 . - . ID=YBL088C;Name=YBL088C;Alias=TEL1 -chrII SGD CDS 59822 60739 . - . ID=YBL087C;Name=YBL087C;Alias=RPL23A -chrII SGD CDS 61202 62602 . - . ID=YBL086C;Name=YBL086C;Alias= -chrII SGD CDS 63876 66818 . + . ID=YBL085W;Name=YBL085W;Alias=BOI1 -chrII SGD CDS 67169 69445 . - . ID=YBL084C;Name=YBL084C;Alias=CDC27 -chrII SGD CDS 69751 71127 . - . ID=YBL082C;Name=YBL082C;Alias=ALG3 -chrII SGD CDS 71866 72972 . + . ID=YBL081W;Name=YBL081W;Alias= -chrII SGD CDS 73070 74695 . - . ID=YBL080C;Name=YBL080C;Alias=PET112 -chrII SGD CDS 75259 79767 . + . ID=YBL079W;Name=YBL079W;Alias=NUP170 -chrII SGD CDS 80378 80731 . - . ID=YBL078C;Name=YBL078C;Alias=ATG8 -chrII SGD CDS 81043 84261 . - . ID=YBL076C;Name=YBL076C;Alias=ILS1 -chrII SGD CDS 84499 86448 . - . ID=YBL075C;Name=YBL075C;Alias=SSA3 -chrII SGD CDS 86722 87789 . - . ID=YBL074C;Name=YBL074C;Alias=AAR2 -chrII SGD CDS 88523 89440 . - . ID=YBL072C;Name=YBL072C;Alias=RPS8A -chrII SGD CDS 89458 89556 . - . ID=YBL071C-B;Name=YBL071C-B;Alias= -chrII SGD CDS 89978 90226 . + . ID=YBL071W-A;Name=YBL071W-A;Alias=KTI11 -chrII SGD CDS 90741 92030 . + . ID=YBL069W;Name=YBL069W;Alias=AST1 -chrII SGD CDS 92414 93394 . + . ID=YBL068W;Name=YBL068W;Alias=PRS4 -chrII SGD CDS 93639 95882 . - . ID=YBL067C;Name=YBL067C;Alias=UBP13 -chrII SGD CDS 96669 100115 . - . ID=YBL066C;Name=YBL066C;Alias=SEF1 -chrII SGD CDS 100371 101156 . - . ID=YBL064C;Name=YBL064C;Alias=PRX1 -chrII SGD CDS 101886 105221 . + . ID=YBL063W;Name=YBL063W;Alias=KIP1 -chrII SGD CDS 105316 107406 . - . ID=YBL061C;Name=YBL061C;Alias=SKT5 -chrII SGD CDS 107932 109995 . + . ID=YBL060W;Name=YBL060W;Alias=YEL1 -chrII SGD CDS 110125 110539 . - . ID=YBL059C-A;Name=YBL059C-A;Alias=CMC2 -chrII SGD CDS 110594 111244 . + . ID=YBL059W;Name=YBL059W;Alias= -chrII SGD CDS 111437 112708 . + . ID=YBL058W;Name=YBL058W;Alias=SHP1 -chrII SGD CDS 112801 113427 . - . ID=YBL057C;Name=YBL057C;Alias=PTH2 -chrII SGD CDS 113762 115168 . + . ID=YBL056W;Name=YBL056W;Alias=PTC3 -chrII SGD CDS 115573 116829 . - . ID=YBL055C;Name=YBL055C;Alias= -chrII SGD CDS 117589 119166 . + . ID=YBL054W;Name=YBL054W;Alias=TOD6 -chrII SGD CDS 119379 121874 . - . ID=YBL052C;Name=YBL052C;Alias=SAS3 -chrII SGD CDS 122753 124759 . - . ID=YBL051C;Name=YBL051C;Alias=PIN4 -chrII SGD CDS 125125 126119 . + . ID=YBL050W;Name=YBL050W;Alias=SEC17 -chrII SGD CDS 126828 127244 . + . ID=YBL049W;Name=YBL049W;Alias=MOH1 -chrII SGD CDS 127895 132040 . - . ID=YBL047C;Name=YBL047C;Alias=EDE1 -chrII SGD CDS 132424 133749 . + . ID=YBL046W;Name=YBL046W;Alias=PSY4 -chrII SGD CDS 134143 135516 . - . ID=YBL045C;Name=YBL045C;Alias=COR1 -chrII SGD CDS 135998 136366 . + . ID=YBL044W;Name=YBL044W;Alias= -chrII SGD CDS 136688 137461 . + . ID=YBL043W;Name=YBL043W;Alias=ECM13 -chrII SGD CDS 138341 140260 . - . ID=YBL042C;Name=YBL042C;Alias=FUI1 -chrII SGD CDS 141247 141972 . + . ID=YBL041W;Name=YBL041W;Alias=PRE7 -chrII SGD CDS 142112 142868 . - . ID=YBL040C;Name=YBL040C;Alias=ERD2 -chrII SGD CDS 143393 143572 . + . ID=YBL039W-B;Name=YBL039W-B;Alias= -chrII SGD CDS 143989 145728 . - . ID=YBL039C;Name=YBL039C;Alias=URA7 -chrII SGD CDS 146187 146885 . + . ID=YBL038W;Name=YBL038W;Alias=MRPL16 -chrII SGD CDS 147209 150286 . + . ID=YBL037W;Name=YBL037W;Alias=APL3 -chrII SGD CDS 150447 151220 . - . ID=YBL036C;Name=YBL036C;Alias= -chrII SGD CDS 151493 153610 . - . ID=YBL035C;Name=YBL035C;Alias=POL12 -chrII SGD CDS 153848 158389 . - . ID=YBL034C;Name=YBL034C;Alias=STU1 -chrII SGD CDS 158656 159693 . - . ID=YBL033C;Name=YBL033C;Alias=RIB1 -chrII SGD CDS 160184 161329 . + . ID=YBL032W;Name=YBL032W;Alias=HEK2 -chrII SGD CDS 161699 162715 . + . ID=YBL031W;Name=YBL031W;Alias=SHE1 -chrII SGD CDS 163041 163997 . - . ID=YBL030C;Name=YBL030C;Alias=PET9 -chrII SGD CDS 164488 164772 . - . ID=YBL029C-A;Name=YBL029C-A;Alias= -chrII SGD CDS 166134 167264 . + . ID=YBL029W;Name=YBL029W;Alias= -chrII SGD CDS 167518 167838 . - . ID=YBL028C;Name=YBL028C;Alias= -chrII SGD CDS 168423 169376 . + . ID=YBL027W;Name=YBL027W;Alias=RPL19B -chrII SGD CDS 170623 171038 . + . ID=YBL026W;Name=YBL026W;Alias=LSM2 -chrII SGD CDS 171481 171918 . + . ID=YBL025W;Name=YBL025W;Alias=RRN10 -chrII SGD CDS 172534 174588 . + . ID=YBL024W;Name=YBL024W;Alias=NCL1 -chrII SGD CDS 174920 177526 . - . ID=YBL023C;Name=YBL023C;Alias=MCM2 -chrII SGD CDS 177874 181275 . - . ID=YBL022C;Name=YBL022C;Alias=PIM1 -chrII SGD CDS 181660 182094 . - . ID=YBL021C;Name=YBL021C;Alias=HAP3 -chrII SGD CDS 182401 184125 . + . ID=YBL020W;Name=YBL020W;Alias=RFT1 -chrII SGD CDS 184353 185915 . + . ID=YBL019W;Name=YBL019W;Alias=APN2 -chrII SGD CDS 185998 186474 . - . ID=YBL018C;Name=YBL018C;Alias=POP8 -chrII SGD CDS 186844 191583 . - . ID=YBL017C;Name=YBL017C;Alias=PEP1 -chrII SGD CDS 192451 193512 . + . ID=YBL016W;Name=YBL016W;Alias=FUS3 -chrII SGD CDS 194122 195702 . + . ID=YBL015W;Name=YBL015W;Alias=ACH1 -chrII SGD CDS 199064 201748 . - . ID=YBL014C;Name=YBL014C;Alias=RRN6 -chrII SGD CDS 202056 203261 . + . ID=YBL013W;Name=YBL013W;Alias=FMT1 -chrII SGD CDS 203538 205817 . + . ID=YBL011W;Name=YBL011W;Alias=SCT1 -chrII SGD CDS 206107 206949 . - . ID=YBL010C;Name=YBL010C;Alias= -chrII SGD CDS 207194 209224 . + . ID=YBL009W;Name=YBL009W;Alias=ALK2 -chrII SGD CDS 209409 209648 . + . ID=YBL008W-A;Name=YBL008W-A;Alias= -chrII SGD CDS 209653 212175 . + . ID=YBL008W;Name=YBL008W;Alias=HIR1 -chrII SGD CDS 212632 216366 . - . ID=YBL007C;Name=YBL007C;Alias=SLA1 -chrII SGD CDS 216587 217129 . - . ID=YBL006C;Name=YBL006C;Alias=LDB7 -chrII SGD CDS 217470 220400 . + . ID=YBL005W;Name=YBL005W;Alias=PDR3 -chrII SGD CDS 227636 235117 . + . ID=YBL004W;Name=YBL004W;Alias=UTP20 -chrII SGD CDS 235394 235792 . - . ID=YBL003C;Name=YBL003C;Alias=HTA2 -chrII SGD CDS 236492 236887 . + . ID=YBL002W;Name=YBL002W;Alias=HTB2 -chrII SGD CDS 237153 237467 . - . ID=YBL001C;Name=YBL001C;Alias=ECM15 -chrII SGD CDS 238941 241283 . - . ID=YBR001C;Name=YBR001C;Alias=NTH2 -chrII SGD CDS 241708 242568 . - . ID=YBR002C;Name=YBR002C;Alias=RER2 -chrII SGD CDS 242809 244230 . + . ID=YBR003W;Name=YBR003W;Alias=COQ1 -chrII SGD CDS 244366 245667 . - . ID=YBR004C;Name=YBR004C;Alias=GPI18 -chrII SGD CDS 245906 246547 . + . ID=YBR005W;Name=YBR005W;Alias=RCR1 -chrII SGD CDS 247010 248503 . + . ID=YBR006W;Name=YBR006W;Alias=UGA2 -chrII SGD CDS 248806 251016 . - . ID=YBR007C;Name=YBR007C;Alias=DSF2 -chrII SGD CDS 252563 254209 . - . ID=YBR008C;Name=YBR008C;Alias=FLR1 -chrII SGD CDS 255373 255684 . - . ID=YBR009C;Name=YBR009C;Alias=HHF1 -chrII SGD CDS 256331 256741 . + . ID=YBR010W;Name=YBR010W;Alias=HHT1 -chrII SGD CDS 257112 257975 . - . ID=YBR011C;Name=YBR011C;Alias=IPP1 -chrII SGD CDS 265492 265881 . - . ID=YBR013C;Name=YBR013C;Alias= -chrII SGD CDS 266725 267336 . - . ID=YBR014C;Name=YBR014C;Alias=GRX7 -chrII SGD CDS 267710 269503 . - . ID=YBR015C;Name=YBR015C;Alias=MNN2 -chrII SGD CDS 270247 270633 . + . ID=YBR016W;Name=YBR016W;Alias= -chrII SGD CDS 270947 273703 . - . ID=YBR017C;Name=YBR017C;Alias=KAP104 -chrII SGD CDS 274427 275527 . - . ID=YBR018C;Name=YBR018C;Alias=GAL7 -chrII SGD CDS 276253 278352 . - . ID=YBR019C;Name=YBR019C;Alias=GAL10 -chrII SGD CDS 279021 280607 . + . ID=YBR020W;Name=YBR020W;Alias=GAL1 -chrII SGD CDS 281443 283344 . + . ID=YBR021W;Name=YBR021W;Alias=FUR4 -chrII SGD CDS 283738 284271 . + . ID=YBR022W;Name=YBR022W;Alias=POA1 -chrII SGD CDS 284428 287925 . - . ID=YBR023C;Name=YBR023C;Alias=CHS3 -chrII SGD CDS 289445 290350 . + . ID=YBR024W;Name=YBR024W;Alias=SCO2 -chrII SGD CDS 290681 291865 . - . ID=YBR025C;Name=YBR025C;Alias=OLA1 -chrII SGD CDS 292877 294019 . - . ID=YBR026C;Name=YBR026C;Alias=ETR1 -chrII SGD CDS 294425 296002 . - . ID=YBR028C;Name=YBR028C;Alias=YPK3 -chrII SGD CDS 296369 297742 . - . ID=YBR029C;Name=YBR029C;Alias=CDS1 -chrII SGD CDS 298292 299950 . + . ID=YBR030W;Name=YBR030W;Alias=RKM3 -chrII SGD CDS 300166 301254 . + . ID=YBR031W;Name=YBR031W;Alias=RPL4A -chrII SGD CDS 301944 304703 . + . ID=YBR033W;Name=YBR033W;Alias=EDS1 -chrII SGD CDS 304930 305976 . - . ID=YBR034C;Name=YBR034C;Alias=HMT1 -chrII SGD CDS 306269 306955 . - . ID=YBR035C;Name=YBR035C;Alias=PDX3 -chrII SGD CDS 309081 310313 . - . ID=YBR036C;Name=YBR036C;Alias=CSG2 -chrII SGD CDS 310565 311452 . - . ID=YBR037C;Name=YBR037C;Alias=SCO1 -chrII SGD CDS 311898 314789 . + . ID=YBR038W;Name=YBR038W;Alias=CHS2 -chrII SGD CDS 315575 316510 . + . ID=YBR039W;Name=YBR039W;Alias=ATP3 -chrII SGD CDS 316968 317864 . + . ID=YBR040W;Name=YBR040W;Alias=FIG1 -chrII SGD CDS 318266 320275 . + . ID=YBR041W;Name=YBR041W;Alias=FAT1 -chrII SGD CDS 320416 321609 . - . ID=YBR042C;Name=YBR042C;Alias=CST26 -chrII SGD CDS 321876 323945 . - . ID=YBR043C;Name=YBR043C;Alias=QDR3 -chrII SGD CDS 324341 326059 . - . ID=YBR044C;Name=YBR044C;Alias=TCM62 -chrII SGD CDS 328173 330092 . - . ID=YBR045C;Name=YBR045C;Alias=GIP1 -chrII SGD CDS 330507 331511 . - . ID=YBR046C;Name=YBR046C;Alias=ZTA1 -chrII SGD CDS 331833 332360 . + . ID=YBR047W;Name=YBR047W;Alias=FMP23 -chrII SGD CDS 332831 333812 . + . ID=YBR048W;Name=YBR048W;Alias=RPS11B -chrII SGD CDS 334386 336818 . - . ID=YBR049C;Name=YBR049C;Alias=REB1 -chrII SGD CDS 337183 338199 . - . ID=YBR050C;Name=YBR050C;Alias=REG2 -chrII SGD CDS 338720 339352 . - . ID=YBR052C;Name=YBR052C;Alias=RFS1 -chrII SGD CDS 339675 340751 . - . ID=YBR053C;Name=YBR053C;Alias= -chrII SGD CDS 343101 344135 . + . ID=YBR054W;Name=YBR054W;Alias=YRO2 -chrII SGD CDS 344602 347301 . - . ID=YBR055C;Name=YBR055C;Alias=PRP6 -chrII SGD CDS 347879 349384 . + . ID=YBR056W;Name=YBR056W;Alias= -chrII SGD CDS 351255 351455 . + . ID=YBR056W-A;Name=YBR056W-A;Alias= -chrII SGD CDS 352193 353293 . - . ID=YBR057C;Name=YBR057C;Alias=MUM2 -chrII SGD CDS 353672 356017 . - . ID=YBR058C;Name=YBR058C;Alias=UBP14 -chrII SGD CDS 356324 356566 . - . ID=YBR058C-A;Name=YBR058C-A;Alias=TSC3 -chrII SGD CDS 356861 360187 . - . ID=YBR059C;Name=YBR059C;Alias=AKL1 -chrII SGD CDS 360652 362514 . - . ID=YBR060C;Name=YBR060C;Alias=ORC2 -chrII SGD CDS 364787 365719 . - . ID=YBR061C;Name=YBR061C;Alias=TRM7 -chrII SGD CDS 365976 366600 . - . ID=YBR062C;Name=YBR062C;Alias= -chrII SGD CDS 366970 368184 . - . ID=YBR063C;Name=YBR063C;Alias= -chrII SGD CDS 368584 369678 . - . ID=YBR065C;Name=YBR065C;Alias=ECM2 -chrII SGD CDS 370037 370699 . - . ID=YBR066C;Name=YBR066C;Alias=NRG2 -chrII SGD CDS 372103 372735 . - . ID=YBR067C;Name=YBR067C;Alias=TIP1 -chrII SGD CDS 373861 375690 . - . ID=YBR068C;Name=YBR068C;Alias=BAP2 -chrII SGD CDS 376574 378433 . - . ID=YBR069C;Name=YBR069C;Alias=TAT1 -chrII SGD CDS 379221 379934 . - . ID=YBR070C;Name=YBR070C;Alias=ALG14 -chrII SGD CDS 380411 381046 . + . ID=YBR071W;Name=YBR071W;Alias= -chrII SGD CDS 382030 382674 . + . ID=YBR072W;Name=YBR072W;Alias=HSP26 -chrII SGD CDS 382860 383021 . - . ID=YBR072C-A;Name=YBR072C-A;Alias= -chrII SGD CDS 383112 385988 . + . ID=YBR073W;Name=YBR073W;Alias=RDH54 -chrII SGD CDS 386286 389216 . + . ID=YBR074W;Name=YBR074W;Alias=PFF1 -chrII SGD CDS 390227 391291 . + . ID=YBR076W;Name=YBR076W;Alias=ECM8 -chrII SGD CDS 391805 392293 . - . ID=YBR077C;Name=YBR077C;Alias=SLM4 -chrII SGD CDS 393123 394742 . + . ID=YBR078W;Name=YBR078W;Alias=ECM33 -chrII SGD CDS 395383 398277 . - . ID=YBR079C;Name=YBR079C;Alias=RPG1 -chrII SGD CDS 398614 400890 . - . ID=YBR080C;Name=YBR080C;Alias=SEC18 -chrII SGD CDS 401253 405251 . - . ID=YBR081C;Name=YBR081C;Alias=SPT7 -chrII SGD CDS 406628 407169 . - . ID=YBR082C;Name=YBR082C;Alias=UBC4 -chrII SGD CDS 409169 410629 . + . ID=YBR083W;Name=YBR083W;Alias=TEC1 -chrII SGD CDS 411054 413981 . + . ID=YBR084W;Name=YBR084W;Alias=MIS1 -chrII SGD CDS 414186 415261 . - . ID=YBR084C-A;Name=YBR084C-A;Alias=RPL19A -chrII SGD CDS 415983 416906 . + . ID=YBR085W;Name=YBR085W;Alias=AAC3 -chrII SGD CDS 418907 419164 . - . ID=YBR085C-A;Name=YBR085C-A;Alias= -chrII SGD CDS 420201 423041 . - . ID=YBR086C;Name=YBR086C;Alias=IST2 -chrII SGD CDS 423765 424829 . + . ID=YBR087W;Name=YBR087W;Alias=RFC5 -chrII SGD CDS 424990 425766 . - . ID=YBR088C;Name=YBR088C;Alias=POL30 -chrII SGD CDS 426190 426873 . - . ID=YBR089C-A;Name=YBR089C-A;Alias=NHP6B -chrII SGD CDS 426333 427058 . - . ID=YBR090C;Name=YBR090C;Alias= -chrII SGD CDS 427155 427484 . - . ID=YBR091C;Name=YBR091C;Alias=TIM12 -chrII SGD CDS 427698 429101 . - . ID=YBR092C;Name=YBR092C;Alias=PHO3 -chrII SGD CDS 429548 430951 . - . ID=YBR093C;Name=YBR093C;Alias=PHO5 -chrII SGD CDS 432036 434297 . + . ID=YBR094W;Name=YBR094W;Alias=PBY1 -chrII SGD CDS 434406 435698 . - . ID=YBR095C;Name=YBR095C;Alias=RXT2 -chrII SGD CDS 436021 436713 . + . ID=YBR096W;Name=YBR096W;Alias= -chrII SGD CDS 436951 441315 . + . ID=YBR097W;Name=YBR097W;Alias=VPS15 -chrII SGD CDS 441515 443590 . + . ID=YBR098W;Name=YBR098W;Alias=MMS4 -chrII SGD CDS 443821 444693 . - . ID=YBR101C;Name=YBR101C;Alias=FES1 -chrII SGD CDS 445062 447323 . - . ID=YBR102C;Name=YBR102C;Alias=EXO84 -chrII SGD CDS 447709 449316 . + . ID=YBR103W;Name=YBR103W;Alias=SIF2 -chrII SGD CDS 449667 450656 . + . ID=YBR104W;Name=YBR104W;Alias=YMC2 -chrII SGD CDS 450881 451969 . - . ID=YBR105C;Name=YBR105C;Alias=VID24 -chrII SGD CDS 452658 453224 . + . ID=YBR106W;Name=YBR106W;Alias=PHO88 -chrII SGD CDS 453793 454530 . - . ID=YBR107C;Name=YBR107C;Alias=IML3 -chrII SGD CDS 454822 457665 . + . ID=YBR108W;Name=YBR108W;Alias=AIM3 -chrII SGD CDS 457919 458362 . - . ID=YBR109C;Name=YBR109C;Alias=CMD1 -chrII SGD CDS 458872 460221 . + . ID=YBR110W;Name=YBR110W;Alias=ALG1 -chrII SGD CDS 461178 461873 . - . ID=YBR111C;Name=YBR111C;Alias=YSA1 -chrII SGD CDS 462139 462579 . + . ID=YBR111W-A;Name=YBR111W-A;Alias=SUS1 -chrII SGD CDS 462870 465770 . - . ID=YBR112C;Name=YBR112C;Alias=CYC8 -chrII SGD CDS 467248 469620 . + . ID=YBR114W;Name=YBR114W;Alias=RAD16 -chrII SGD CDS 469748 473926 . - . ID=YBR115C;Name=YBR115C;Alias=LYS2 -chrII SGD CDS 474392 476437 . - . ID=YBR117C;Name=YBR117C;Alias=TKL2 -chrII SGD CDS 477671 479047 . + . ID=YBR118W;Name=YBR118W;Alias=TEF2 -chrII SGD CDS 479338 480323 . + . ID=YBR119W;Name=YBR119W;Alias=MUD1 -chrII SGD CDS 480435 480923 . - . ID=YBR120C;Name=YBR120C;Alias=CBP6 -chrII SGD CDS 481364 483367 . - . ID=YBR121C;Name=YBR121C;Alias=GRS1 -chrII SGD CDS 483970 484503 . - . ID=YBR122C;Name=YBR122C;Alias=MRPL36 -chrII SGD CDS 484742 486691 . - . ID=YBR123C;Name=YBR123C;Alias=TFC1 -chrII SGD CDS 487199 488380 . - . ID=YBR125C;Name=YBR125C;Alias=PTC4 -chrII SGD CDS 488905 490392 . - . ID=YBR126C;Name=YBR126C;Alias=TPS1 -chrII SGD CDS 490850 491056 . + . ID=YBR126W-A;Name=YBR126W-A;Alias=MEO1 -chrII SGD CDS 491269 492822 . - . ID=YBR127C;Name=YBR127C;Alias=VMA2 -chrII SGD CDS 493081 494115 . - . ID=YBR128C;Name=YBR128C;Alias=ATG14 -chrII SGD CDS 494353 495339 . - . ID=YBR129C;Name=YBR129C;Alias=OPY1 -chrII SGD CDS 495592 496869 . - . ID=YBR130C;Name=YBR130C;Alias=SHE3 -chrII SGD CDS 497163 499277 . + . ID=YBR131W;Name=YBR131W;Alias=CCZ1 -chrII SGD CDS 499652 501442 . - . ID=YBR132C;Name=YBR132C;Alias=AGP2 -chrII SGD CDS 501804 504287 . - . ID=YBR133C;Name=YBR133C;Alias=HSL7 -chrII SGD CDS 504854 505306 . + . ID=YBR135W;Name=YBR135W;Alias=CKS1 -chrII SGD CDS 505668 512774 . + . ID=YBR136W;Name=YBR136W;Alias=MEC1 -chrII SGD CDS 513044 513583 . + . ID=YBR137W;Name=YBR137W;Alias= -chrII SGD CDS 513762 515336 . - . ID=YBR138C;Name=YBR138C;Alias= -chrII SGD CDS 515664 517190 . + . ID=YBR139W;Name=YBR139W;Alias= -chrII SGD CDS 517350 526628 . - . ID=YBR140C;Name=YBR140C;Alias=IRA1 -chrII SGD CDS 527025 528038 . - . ID=YBR141C;Name=YBR141C;Alias=BMT2 -chrII SGD CDS 528317 530638 . + . ID=YBR142W;Name=YBR142W;Alias=MAK5 -chrII SGD CDS 530869 532182 . - . ID=YBR143C;Name=YBR143C;Alias=SUP45 -chrII SGD CDS 533762 534817 . + . ID=YBR145W;Name=YBR145W;Alias=ADH5 -chrII SGD CDS 535260 536096 . + . ID=YBR146W;Name=YBR146W;Alias=MRPS9 -chrII SGD CDS 536575 537465 . + . ID=YBR147W;Name=YBR147W;Alias=RTC2 -chrII SGD CDS 537876 539705 . + . ID=YBR148W;Name=YBR148W;Alias=YSW1 -chrII SGD CDS 539987 541021 . + . ID=YBR149W;Name=YBR149W;Alias=ARA1 -chrII SGD CDS 541209 544493 . - . ID=YBR150C;Name=YBR150C;Alias=TBS1 -chrII SGD CDS 545028 545978 . + . ID=YBR151W;Name=YBR151W;Alias=APD1 -chrII SGD CDS 546376 547251 . + . ID=YBR152W;Name=YBR152W;Alias=SPP381 -chrII SGD CDS 547460 548194 . + . ID=YBR153W;Name=YBR153W;Alias=RIB7 -chrII SGD CDS 548362 549009 . - . ID=YBR154C;Name=YBR154C;Alias=RPB5 -chrII SGD CDS 549771 550928 . + . ID=YBR155W;Name=YBR155W;Alias=CNS1 -chrII SGD CDS 551104 553200 . - . ID=YBR156C;Name=YBR156C;Alias=SLI15 -chrII SGD CDS 553543 554310 . - . ID=YBR157C;Name=YBR157C;Alias=ICS2 -chrII SGD CDS 556549 558198 . + . ID=YBR158W;Name=YBR158W;Alias=AMN1 -chrII SGD CDS 558685 559728 . + . ID=YBR159W;Name=YBR159W;Alias=IFA38 -chrII SGD CDS 560078 560974 . + . ID=YBR160W;Name=YBR160W;Alias=CDC28 -chrII SGD CDS 561634 562764 . + . ID=YBR161W;Name=YBR161W;Alias=CSH1 -chrII SGD CDS 563203 564570 . - . ID=YBR162C;Name=YBR162C;Alias=TOS1 -chrII SGD CDS 565231 565428 . + . ID=YBR162W-A;Name=YBR162W-A;Alias=YSY6 -chrII SGD CDS 565723 567480 . + . ID=YBR163W;Name=YBR163W;Alias=EXO5 -chrII SGD CDS 567875 568426 . - . ID=YBR164C;Name=YBR164C;Alias=ARL1 -chrII SGD CDS 568852 569685 . + . ID=YBR165W;Name=YBR165W;Alias=UBS1 -chrII SGD CDS 569842 571200 . - . ID=YBR166C;Name=YBR166C;Alias=TYR1 -chrII SGD CDS 571468 571890 . - . ID=YBR167C;Name=YBR167C;Alias=POP7 -chrII SGD CDS 572371 573612 . + . ID=YBR168W;Name=YBR168W;Alias=PEX32 -chrII SGD CDS 573915 575996 . - . ID=YBR169C;Name=YBR169C;Alias=SSE2 -chrII SGD CDS 576344 578086 . - . ID=YBR170C;Name=YBR170C;Alias=NPL4 -chrII SGD CDS 578364 578984 . + . ID=YBR171W;Name=YBR171W;Alias=SEC66 -chrII SGD CDS 579150 581372 . - . ID=YBR172C;Name=YBR172C;Alias=SMY2 -chrII SGD CDS 581726 582172 . - . ID=YBR173C;Name=YBR173C;Alias=UMP1 -chrII SGD CDS 582408 583355 . + . ID=YBR175W;Name=YBR175W;Alias=SWD3 -chrII SGD CDS 583720 584658 . + . ID=YBR176W;Name=YBR176W;Alias=ECM31 -chrII SGD CDS 584807 586162 . - . ID=YBR177C;Name=YBR177C;Alias=EHT1 -chrII SGD CDS 586547 589114 . - . ID=YBR179C;Name=YBR179C;Alias=FZO1 -chrII SGD CDS 589741 591459 . + . ID=YBR180W;Name=YBR180W;Alias=DTR1 -chrII SGD CDS 591712 592774 . - . ID=YBR181C;Name=YBR181C;Alias=RPS6B -chrII SGD CDS 593506 594864 . - . ID=YBR182C;Name=YBR182C;Alias=SMP1 -chrII SGD CDS 595361 595555 . - . ID=YBR182C-A;Name=YBR182C-A;Alias= -chrII SGD CDS 596115 597065 . + . ID=YBR183W;Name=YBR183W;Alias=YPC1 -chrII SGD CDS 597363 598934 . + . ID=YBR184W;Name=YBR184W;Alias= -chrII SGD CDS 599123 599959 . - . ID=YBR185C;Name=YBR185C;Alias=MBA1 -chrII SGD CDS 600553 602360 . + . ID=YBR186W;Name=YBR186W;Alias=PCH2 -chrII SGD CDS 602634 603476 . + . ID=YBR187W;Name=YBR187W;Alias=GDT1 -chrII SGD CDS 603685 604107 . - . ID=YBR188C;Name=YBR188C;Alias=NTC20 -chrII SGD CDS 604508 605508 . + . ID=YBR189W;Name=YBR189W;Alias=RPS9B -chrII SGD CDS 606270 607140 . + . ID=YBR191W;Name=YBR191W;Alias=RPL21A -chrII SGD CDS 607652 608785 . + . ID=YBR192W;Name=YBR192W;Alias=RIM2 -chrII SGD CDS 609082 609753 . - . ID=YBR193C;Name=YBR193C;Alias=MED8 -chrII SGD CDS 610038 610409 . + . ID=YBR194W;Name=YBR194W;Alias=AIM4 -chrII SGD CDS 610614 611882 . - . ID=YBR195C;Name=YBR195C;Alias=MSI1 -chrII SGD CDS 612236 613900 . - . ID=YBR196C;Name=YBR196C;Alias=PGI1 -chrII SGD CDS 614024 614173 . - . ID=YBR196C-A;Name=YBR196C-A;Alias= -chrII SGD CDS 614526 614630 . - . ID=YBR196C-B;Name=YBR196C-B;Alias= -chrII SGD CDS 615203 615856 . - . ID=YBR197C;Name=YBR197C;Alias= -chrII SGD CDS 616127 618523 . - . ID=YBR198C;Name=YBR198C;Alias=TAF5 -chrII SGD CDS 618909 620303 . + . ID=YBR199W;Name=YBR199W;Alias=KTR4 -chrII SGD CDS 620872 622527 . + . ID=YBR200W;Name=YBR200W;Alias=BEM1 -chrII SGD CDS 622983 623147 . + . ID=YBR200W-A;Name=YBR200W-A;Alias= -chrII SGD CDS 623576 624211 . + . ID=YBR201W;Name=YBR201W;Alias=DER1 -chrII SGD CDS 624493 624696 . - . ID=YBR201C-A;Name=YBR201C-A;Alias= -chrII SGD CDS 625772 628309 . + . ID=YBR202W;Name=YBR202W;Alias=MCM7 -chrII SGD CDS 629168 631942 . + . ID=YBR203W;Name=YBR203W;Alias=COS111 -chrII SGD CDS 632254 633381 . - . ID=YBR204C;Name=YBR204C;Alias=LDH1 -chrII SGD CDS 633622 634836 . + . ID=YBR205W;Name=YBR205W;Alias=KTR3 -chrII SGD CDS 635146 636543 . + . ID=YBR207W;Name=YBR207W;Alias=FTH1 -chrII SGD CDS 636703 642210 . - . ID=YBR208C;Name=YBR208C;Alias=DUR1%2C2 -chrII SGD CDS 645550 645978 . + . ID=YBR210W;Name=YBR210W;Alias=ERV15 -chrII SGD CDS 646158 647132 . - . ID=YBR211C;Name=YBR211C;Alias=AME1 -chrII SGD CDS 647886 649904 . + . ID=YBR212W;Name=YBR212W;Alias=NGR1 -chrII SGD CDS 650368 651192 . + . ID=YBR213W;Name=YBR213W;Alias=MET8 -chrII SGD CDS 651415 652998 . + . ID=YBR214W;Name=YBR214W;Alias=SDS24 -chrII SGD CDS 653356 655317 . + . ID=YBR215W;Name=YBR215W;Alias=HPC2 -chrII SGD CDS 655576 657600 . - . ID=YBR216C;Name=YBR216C;Alias=YBP1 -chrII SGD CDS 657832 658392 . + . ID=YBR217W;Name=YBR217W;Alias=ATG12 -chrII SGD CDS 658707 662249 . - . ID=YBR218C;Name=YBR218C;Alias=PYC2 -chrII SGD CDS 662499 663303 . - . ID=YBR219C;Name=YBR219C;Alias= -chrII SGD CDS 662995 664677 . - . ID=YBR220C;Name=YBR220C;Alias= -chrII SGD CDS 665153 666253 . - . ID=YBR221C;Name=YBR221C;Alias=PDB1 -chrII SGD CDS 666538 666642 . + . ID=YBR221W-A;Name=YBR221W-A;Alias= -chrII SGD CDS 666720 668351 . - . ID=YBR222C;Name=YBR222C;Alias=PCS60 -chrII SGD CDS 668663 670297 . - . ID=YBR223C;Name=YBR223C;Alias=TDP1 -chrII SGD CDS 670627 673329 . + . ID=YBR225W;Name=YBR225W;Alias= -chrII SGD CDS 673572 675134 . - . ID=YBR227C;Name=YBR227C;Alias=MCX1 -chrII SGD CDS 675313 676227 . + . ID=YBR228W;Name=YBR228W;Alias=SLX1 -chrII SGD CDS 676357 679221 . - . ID=YBR229C;Name=YBR229C;Alias=ROT2 -chrII SGD CDS 679549 680050 . - . ID=YBR230C;Name=YBR230C;Alias=OM14 -chrII SGD CDS 680362 680562 . + . ID=YBR230W-A;Name=YBR230W-A;Alias= -chrII SGD CDS 682179 683090 . - . ID=YBR231C;Name=YBR231C;Alias=SWC5 -chrII SGD CDS 683428 684669 . + . ID=YBR233W;Name=YBR233W;Alias=PBP2 -chrII SGD CDS 684977 685261 . + . ID=YBR233W-A;Name=YBR233W-A;Alias=DAD3 -chrII SGD CDS 685438 686592 . - . ID=YBR234C;Name=YBR234C;Alias=ARC40 -chrII SGD CDS 686901 690263 . + . ID=YBR235W;Name=YBR235W;Alias=VHC1 -chrII SGD CDS 690383 691693 . - . ID=YBR236C;Name=YBR236C;Alias=ABD1 -chrII SGD CDS 691969 694518 . + . ID=YBR237W;Name=YBR237W;Alias=PRP5 -chrII SGD CDS 695107 697302 . - . ID=YBR238C;Name=YBR238C;Alias= -chrII SGD CDS 698354 699943 . - . ID=YBR239C;Name=YBR239C;Alias=ERT1 -chrII SGD CDS 700490 701842 . - . ID=YBR240C;Name=YBR240C;Alias=THI2 -chrII SGD CDS 702589 704055 . - . ID=YBR241C;Name=YBR241C;Alias= -chrII SGD CDS 704670 705386 . + . ID=YBR242W;Name=YBR242W;Alias= -chrII SGD CDS 705447 706793 . - . ID=YBR243C;Name=YBR243C;Alias=ALG7 -chrII SGD CDS 707528 708016 . + . ID=YBR244W;Name=YBR244W;Alias=GPX2 -chrII SGD CDS 708150 711539 . - . ID=YBR245C;Name=YBR245C;Alias=ISW1 -chrII SGD CDS 711591 712754 . + . ID=YBR246W;Name=YBR246W;Alias=RRT2 -chrII SGD CDS 713004 714455 . - . ID=YBR247C;Name=YBR247C;Alias=ENP1 -chrII SGD CDS 714807 716465 . - . ID=YBR248C;Name=YBR248C;Alias=HIS7 -chrII SGD CDS 716882 717994 . - . ID=YBR249C;Name=YBR249C;Alias=ARO4 -chrII SGD CDS 719033 720604 . + . ID=YBR250W;Name=YBR250W;Alias=SPO23 -chrII SGD CDS 721390 722313 . + . ID=YBR251W;Name=YBR251W;Alias=MRPS5 -chrII SGD CDS 722611 723054 . + . ID=YBR252W;Name=YBR252W;Alias=DUT1 -chrII SGD CDS 723270 723635 . + . ID=YBR253W;Name=YBR253W;Alias=SRB6 -chrII SGD CDS 723736 724263 . - . ID=YBR254C;Name=YBR254C;Alias=TRS20 -chrII SGD CDS 724456 726540 . + . ID=YBR255W;Name=YBR255W;Alias=MTC4 -chrII SGD CDS 726618 727074 . - . ID=YBR255C-A;Name=YBR255C-A;Alias=RCF3 -chrII SGD CDS 727386 728102 . - . ID=YBR256C;Name=YBR256C;Alias=RIB5 -chrII SGD CDS 728885 729724 . + . ID=YBR257W;Name=YBR257W;Alias=POP4 -chrII SGD CDS 729734 730162 . - . ID=YBR258C;Name=YBR258C;Alias=SHG1 -chrII SGD CDS 730387 732453 . + . ID=YBR259W;Name=YBR259W;Alias= -chrII SGD CDS 732639 734639 . - . ID=YBR260C;Name=YBR260C;Alias=RGD1 -chrII SGD CDS 734832 735530 . - . ID=YBR261C;Name=YBR261C;Alias=TAE1 -chrII SGD CDS 735720 736040 . - . ID=YBR262C;Name=YBR262C;Alias=MIC12 -chrII SGD CDS 736264 737736 . + . ID=YBR263W;Name=YBR263W;Alias=SHM1 -chrII SGD CDS 737770 738369 . - . ID=YBR264C;Name=YBR264C;Alias=YPT10 -chrII SGD CDS 738582 739544 . + . ID=YBR265W;Name=YBR265W;Alias=TSC10 -chrII SGD CDS 739841 741022 . + . ID=YBR267W;Name=YBR267W;Alias=REI1 -chrII SGD CDS 741299 741616 . + . ID=YBR268W;Name=YBR268W;Alias=MRPL37 -chrII SGD CDS 742160 742576 . - . ID=YBR269C;Name=YBR269C;Alias=SDH8 -chrII SGD CDS 742761 744398 . - . ID=YBR270C;Name=YBR270C;Alias=BIT2 -chrII SGD CDS 744852 746111 . + . ID=YBR271W;Name=YBR271W;Alias=EFM2 -chrII SGD CDS 746361 747803 . - . ID=YBR272C;Name=YBR272C;Alias=HSM3 -chrII SGD CDS 748061 749371 . - . ID=YBR273C;Name=YBR273C;Alias=UBX7 -chrII SGD CDS 749594 751177 . + . ID=YBR274W;Name=YBR274W;Alias=CHK1 -chrII SGD CDS 751356 757106 . - . ID=YBR275C;Name=YBR275C;Alias=RIF1 -chrII SGD CDS 757620 760043 . - . ID=YBR276C;Name=YBR276C;Alias=PPS1 -chrII SGD CDS 760294 760899 . + . ID=YBR278W;Name=YBR278W;Alias=DPB3 -chrII SGD CDS 761257 762594 . + . ID=YBR279W;Name=YBR279W;Alias=PAF1 -chrII SGD CDS 762784 764697 . - . ID=YBR280C;Name=YBR280C;Alias=SAF1 -chrII SGD CDS 764970 767606 . - . ID=YBR281C;Name=YBR281C;Alias=DUG2 -chrII SGD CDS 768240 768680 . + . ID=YBR282W;Name=YBR282W;Alias=MRPL27 -chrII SGD CDS 768943 770415 . - . ID=YBR283C;Name=YBR283C;Alias=SSH1 -chrII SGD CDS 771239 773632 . + . ID=YBR284W;Name=YBR284W;Alias= -chrII SGD CDS 773922 774356 . + . ID=YBR285W;Name=YBR285W;Alias= -chrII SGD CDS 774700 776313 . + . ID=YBR286W;Name=YBR286W;Alias=APE3 -chrII SGD CDS 776571 777854 . + . ID=YBR287W;Name=YBR287W;Alias= -chrII SGD CDS 778012 779463 . - . ID=YBR288C;Name=YBR288C;Alias=APM3 -chrII SGD CDS 779667 782384 . + . ID=YBR289W;Name=YBR289W;Alias=SNF5 -chrII SGD CDS 782591 783556 . + . ID=YBR290W;Name=YBR290W;Alias=BSD2 -chrII SGD CDS 783673 784572 . - . ID=YBR291C;Name=YBR291C;Alias=CTP1 -chrII SGD CDS 787006 788430 . + . ID=YBR293W;Name=YBR293W;Alias=VBA2 -chrII SGD CDS 789235 791814 . + . ID=YBR294W;Name=YBR294W;Alias=SUL1 -chrII SGD CDS 792849 796499 . + . ID=YBR295W;Name=YBR295W;Alias=PCA1 -chrII SGD CDS 796798 798522 . - . ID=YBR296C;Name=YBR296C;Alias=PHO89 -chrII SGD CDS 800123 800242 . - . ID=YBR296C-A;Name=YBR296C-A;Alias= -chrII SGD CDS 800523 801929 . + . ID=YBR297W;Name=YBR297W;Alias=MAL33 -chrII SGD CDS 802631 804475 . - . ID=YBR298C;Name=YBR298C;Alias=MAL31 -chrII SGD CDS 805035 805256 . - . ID=YBR298C-A;Name=YBR298C-A;Alias= -chrII SGD CDS 805351 807105 . + . ID=YBR299W;Name=YBR299W;Alias=MAL32 -chrII SGD CDS 809057 809419 . + . ID=YBR301W;Name=YBR301W;Alias=PAU24 -chrII SGD CDS 810340 811479 . - . ID=YBR302C;Name=YBR302C;Alias=COS2 -chrIII SGD CDS 6479 8326 . - . ID=YCL073C;Name=YCL073C;Alias=GEX1 -chrIII SGD CDS 9706 11082 . + . ID=YCL069W;Name=YCL069W;Alias=VBA3 -chrIII SGD CDS 11503 12285 . - . ID=YCL068C;Name=YCL068C;Alias= -chrIII SGD CDS 12386 13018 . - . ID=YCL067C;Name=YCL067C;Alias=HMLALPHA2 -chrIII SGD CDS 13282 13809 . + . ID=YCL066W;Name=YCL066W;Alias=HMLALPHA1 -chrIII SGD CDS 15798 16880 . - . ID=YCL064C;Name=YCL064C;Alias=CHA1 -chrIII SGD CDS 17290 18561 . + . ID=YCL063W;Name=YCL063W;Alias=VAC17 -chrIII SGD CDS 18816 22106 . - . ID=YCL061C;Name=YCL061C;Alias=MRC1 -chrIII SGD CDS 22429 23379 . - . ID=YCL059C;Name=YCL059C;Alias=KRR1 -chrIII SGD CDS 23523 23981 . - . ID=YCL058C;Name=YCL058C;Alias=FYV5 -chrIII SGD CDS 23584 23925 . + . ID=YCL058W-A;Name=YCL058W-A;Alias=ADF1 -chrIII SGD CDS 24032 24325 . - . ID=YCL057C-A;Name=YCL057C-A;Alias=MIC10 -chrIII SGD CDS 24768 26906 . + . ID=YCL057W;Name=YCL057W;Alias=PRD1 -chrIII SGD CDS 26925 27359 . - . ID=YCL056C;Name=YCL056C;Alias=PEX34 -chrIII SGD CDS 27929 28936 . + . ID=YCL055W;Name=YCL055W;Alias=KAR4 -chrIII SGD CDS 30910 30996 . + . ID=YCL054W-A;Name=YCL054W-A;Alias=RDT1 -chrIII SGD CDS 31449 33974 . + . ID=YCL054W;Name=YCL054W;Alias=SPB1 -chrIII SGD CDS 34143 35393 . - . ID=YCL052C;Name=YCL052C;Alias=PBN1 -chrIII SGD CDS 35865 37616 . + . ID=YCL051W;Name=YCL051W;Alias=LRE1 -chrIII SGD CDS 37836 38801 . - . ID=YCL050C;Name=YCL050C;Alias=APA1 -chrIII SGD CDS 39786 40724 . - . ID=YCL049C;Name=YCL049C;Alias= -chrIII SGD CDS 41488 41727 . + . ID=YCL048W-A;Name=YCL048W-A;Alias= -chrIII SGD CDS 42165 43556 . + . ID=YCL048W;Name=YCL048W;Alias=SPS22 -chrIII SGD CDS 43661 44437 . - . ID=YCL047C;Name=YCL047C;Alias=POF1 -chrIII SGD CDS 44623 46905 . - . ID=YCL045C;Name=YCL045C;Alias=EMC1 -chrIII SGD CDS 47111 48364 . - . ID=YCL044C;Name=YCL044C;Alias=MGR1 -chrIII SGD CDS 48653 50221 . - . ID=YCL043C;Name=YCL043C;Alias=PDI1 -chrIII SGD CDS 50584 50943 . + . ID=YCL042W;Name=YCL042W;Alias= -chrIII SGD CDS 50838 52340 . + . ID=YCL040W;Name=YCL040W;Alias=GLK1 -chrIII SGD CDS 52645 54882 . + . ID=YCL039W;Name=YCL039W;Alias=GID7 -chrIII SGD CDS 54941 56527 . - . ID=YCL038C;Name=YCL038C;Alias=ATG22 -chrIII SGD CDS 57374 58678 . - . ID=YCL037C;Name=YCL037C;Alias=SRO9 -chrIII SGD CDS 59026 60726 . + . ID=YCL036W;Name=YCL036W;Alias=GFD2 -chrIII SGD CDS 60841 61173 . - . ID=YCL035C;Name=YCL035C;Alias=GRX1 -chrIII SGD CDS 61658 62722 . + . ID=YCL034W;Name=YCL034W;Alias=LSB5 -chrIII SGD CDS 62776 63282 . - . ID=YCL033C;Name=YCL033C;Alias=MXR2 -chrIII SGD CDS 63441 64481 . + . ID=YCL032W;Name=YCL032W;Alias=STE50 -chrIII SGD CDS 64675 65568 . - . ID=YCL031C;Name=YCL031C;Alias=RRP7 -chrIII SGD CDS 65934 68333 . - . ID=YCL030C;Name=YCL030C;Alias=HIS4 -chrIII SGD CDS 68599 69921 . - . ID=YCL029C;Name=YCL029C;Alias=BIK1 -chrIII SGD CDS 70150 71367 . + . ID=YCL028W;Name=YCL028W;Alias=RNQ1 -chrIII SGD CDS 71803 73341 . + . ID=YCL027W;Name=YCL027W;Alias=FUS1 -chrIII SGD CDS 73405 73986 . - . ID=YCL026C-B;Name=YCL026C-B;Alias=HBN1 -chrIII SGD CDS 74704 75285 . - . ID=YCL026C-A;Name=YCL026C-A;Alias=FRM2 -chrIII SGD CDS 76018 77919 . - . ID=YCL025C;Name=YCL025C;Alias=AGP1 -chrIII SGD CDS 79162 82275 . + . ID=YCL024W;Name=YCL024W;Alias=KCC4 -chrIII SGD CDS 83620 83997 . + . ID=YCL021W-A;Name=YCL021W-A;Alias= -chrIII SGD CDS 91324 92418 . + . ID=YCL018W;Name=YCL018W;Alias=LEU2 -chrIII SGD CDS 92777 94270 . - . ID=YCL017C;Name=YCL017C;Alias=NFS1 -chrIII SGD CDS 94621 95763 . - . ID=YCL016C;Name=YCL016C;Alias=DCC1 -chrIII SGD CDS 96281 101191 . + . ID=YCL014W;Name=YCL014W;Alias=BUD3 -chrIII SGD CDS 101317 101788 . - . ID=YCL012C;Name=YCL012C;Alias= -chrIII SGD CDS 102075 103358 . - . ID=YCL011C;Name=YCL011C;Alias=GBP2 -chrIII SGD CDS 103571 104350 . - . ID=YCL010C;Name=YCL010C;Alias=SGF29 -chrIII SGD CDS 104619 105548 . - . ID=YCL009C;Name=YCL009C;Alias=ILV6 -chrIII SGD CDS 105696 106853 . - . ID=YCL008C;Name=YCL008C;Alias=STP22 -chrIII SGD CDS 107023 107417 . + . ID=YCL005W-A;Name=YCL005W-A;Alias=VMA9 -chrIII SGD CDS 108021 108791 . + . ID=YCL005W;Name=YCL005W;Alias=LDB16 -chrIII SGD CDS 109105 110670 . + . ID=YCL004W;Name=YCL004W;Alias=PGS1 -chrIII SGD CDS 110808 111675 . - . ID=YCL002C;Name=YCL002C;Alias= -chrIII SGD CDS 111916 112482 . + . ID=YCL001W;Name=YCL001W;Alias=RER1 -chrIII SGD CDS 113080 113541 . + . ID=YCL001W-A;Name=YCL001W-A;Alias= -chrIII SGD CDS 113770 114024 . + . ID=YCL001W-B;Name=YCL001W-B;Alias= -chrIII SGD CDS 117380 118348 . - . ID=YCR002C;Name=YCR002C;Alias=CDC10 -chrIII SGD CDS 118620 119171 . + . ID=YCR003W;Name=YCR003W;Alias=MRPL32 -chrIII SGD CDS 119575 120318 . - . ID=YCR004C;Name=YCR004C;Alias=YCP4 -chrIII SGD CDS 120946 122328 . - . ID=YCR005C;Name=YCR005C;Alias=CIT2 -chrIII SGD CDS 126011 126730 . - . ID=YCR007C;Name=YCR007C;Alias= -chrIII SGD CDS 128470 130281 . + . ID=YCR008W;Name=YCR008W;Alias=SAT4 -chrIII SGD CDS 130745 131542 . - . ID=YCR009C;Name=YCR009C;Alias=RVS161 -chrIII SGD CDS 132273 133124 . - . ID=YCR010C;Name=YCR010C;Alias=ADY2 -chrIII SGD CDS 133724 136873 . - . ID=YCR011C;Name=YCR011C;Alias=ADP1 -chrIII SGD CDS 137746 138996 . + . ID=YCR012W;Name=YCR012W;Alias=PGK1 -chrIII SGD CDS 139185 140933 . - . ID=YCR014C;Name=YCR014C;Alias=POL4 -chrIII SGD CDS 141217 142170 . - . ID=YCR015C;Name=YCR015C;Alias=CTO1 -chrIII SGD CDS 143634 144506 . + . ID=YCR016W;Name=YCR016W;Alias= -chrIII SGD CDS 144773 147634 . - . ID=YCR017C;Name=YCR017C;Alias=CWH43 -chrIII SGD CDS 148238 148903 . - . ID=YCR018C;Name=YCR018C;Alias=SRD1 -chrIII SGD CDS 152837 153928 . + . ID=YCR019W;Name=YCR019W;Alias=MAK32 -chrIII SGD CDS 154012 154659 . - . ID=YCR020C;Name=YCR020C;Alias=PET18 -chrIII SGD CDS 154830 155096 . - . ID=YCR020C-A;Name=YCR020C-A;Alias=MAK31 -chrIII SGD CDS 155320 155556 . + . ID=YCR020W-B;Name=YCR020W-B;Alias=HTL1 -chrIII SGD CDS 156109 157107 . - . ID=YCR021C;Name=YCR021C;Alias=HSP30 -chrIII SGD CDS 158538 160373 . - . ID=YCR023C;Name=YCR023C;Alias= -chrIII SGD CDS 160744 162222 . - . ID=YCR024C;Name=YCR024C;Alias=SLM5 -chrIII SGD CDS 162599 162865 . - . ID=YCR024C-B;Name=YCR024C-B;Alias= -chrIII SGD CDS 162945 163067 . - . ID=YCR024C-A;Name=YCR024C-A;Alias=PMP1 -chrIII SGD CDS 164111 166339 . - . ID=YCR026C;Name=YCR026C;Alias=NPP1 -chrIII SGD CDS 167370 167999 . - . ID=YCR027C;Name=YCR027C;Alias=RHB1 -chrIII SGD CDS 170886 172424 . - . ID=YCR028C;Name=YCR028C;Alias=FEN2 -chrIII SGD CDS 172950 173440 . - . ID=YCR028C-A;Name=YCR028C-A;Alias=RIM1 -chrIII SGD CDS 173826 176438 . - . ID=YCR030C;Name=YCR030C;Alias=SYP1 -chrIII SGD CDS 177500 178220 . - . ID=YCR031C;Name=YCR031C;Alias=RPS14A -chrIII SGD CDS 179520 186023 . + . ID=YCR032W;Name=YCR032W;Alias=BPH1 -chrIII SGD CDS 186489 190169 . + . ID=YCR033W;Name=YCR033W;Alias=SNT1 -chrIII SGD CDS 190592 191635 . + . ID=YCR034W;Name=YCR034W;Alias=ELO2 -chrIII SGD CDS 191834 193018 . - . ID=YCR035C;Name=YCR035C;Alias=RRP43 -chrIII SGD CDS 193297 194298 . + . ID=YCR036W;Name=YCR036W;Alias=RBK1 -chrIII SGD CDS 194414 197185 . - . ID=YCR037C;Name=YCR037C;Alias=PHO87 -chrIII SGD CDS 197621 199549 . - . ID=YCR038C;Name=YCR038C;Alias=BUD5 -chrIII SGD CDS 199546 200178 . - . ID=YCR039C;Name=YCR039C;Alias=MATALPHA2 -chrIII SGD CDS 200442 200969 . + . ID=YCR040W;Name=YCR040W;Alias=MATALPHA1 -chrIII SGD CDS 200911 201243 . + . ID=YCR041W;Name=YCR041W;Alias= -chrIII SGD CDS 201174 205397 . - . ID=YCR042C;Name=YCR042C;Alias=TAF2 -chrIII SGD CDS 206261 206644 . - . ID=YCR043C;Name=YCR043C;Alias= -chrIII SGD CDS 206877 207950 . - . ID=YCR044C;Name=YCR044C;Alias=PER1 -chrIII SGD CDS 208135 209610 . - . ID=YCR045C;Name=YCR045C;Alias=RRT12 -chrIII SGD CDS 209914 210423 . - . ID=YCR046C;Name=YCR046C;Alias=IMG1 -chrIII SGD CDS 210718 211545 . - . ID=YCR047C;Name=YCR047C;Alias=BUD23 -chrIII SGD CDS 211929 213761 . + . ID=YCR048W;Name=YCR048W;Alias=ARE1 -chrIII SGD CDS 213464 213772 . - . ID=YCR050C;Name=YCR050C;Alias= -chrIII SGD CDS 214071 214739 . + . ID=YCR051W;Name=YCR051W;Alias= -chrIII SGD CDS 214994 216445 . + . ID=YCR052W;Name=YCR052W;Alias=RSC6 -chrIII SGD CDS 216697 218241 . + . ID=YCR053W;Name=YCR053W;Alias=THR4 -chrIII SGD CDS 218376 220067 . - . ID=YCR054C;Name=YCR054C;Alias=CTR86 -chrIII SGD CDS 220457 223228 . - . ID=YCR057C;Name=YCR057C;Alias=PWP2 -chrIII SGD CDS 223454 224230 . - . ID=YCR059C;Name=YCR059C;Alias=YIH1 -chrIII SGD CDS 224399 224734 . + . ID=YCR060W;Name=YCR060W;Alias=TAH1 -chrIII SGD CDS 225563 227458 . + . ID=YCR061W;Name=YCR061W;Alias= -chrIII SGD CDS 228318 228791 . + . ID=YCR063W;Name=YCR063W;Alias=BUD31 -chrIII SGD CDS 229310 231004 . + . ID=YCR065W;Name=YCR065W;Alias=HCM1 -chrIII SGD CDS 231500 232963 . + . ID=YCR066W;Name=YCR066W;Alias=RAD18 -chrIII SGD CDS 233125 236322 . - . ID=YCR067C;Name=YCR067C;Alias=SED4 -chrIII SGD CDS 237214 238776 . + . ID=YCR068W;Name=YCR068W;Alias=ATG15 -chrIII SGD CDS 239055 240011 . + . ID=YCR069W;Name=YCR069W;Alias=CPR4 -chrIII SGD CDS 240103 240543 . - . ID=YCR071C;Name=YCR071C;Alias=IMG2 -chrIII SGD CDS 240805 242352 . - . ID=YCR072C;Name=YCR072C;Alias=RSA4 -chrIII SGD CDS 242588 246583 . - . ID=YCR073C;Name=YCR073C;Alias=SSK22 -chrIII SGD CDS 246963 247910 . + . ID=YCR073W-A;Name=YCR073W-A;Alias=SOL2 -chrIII SGD CDS 248033 248815 . - . ID=YCR075C;Name=YCR075C;Alias=ERS1 -chrIII SGD CDS 248975 249202 . + . ID=YCR075W-A;Name=YCR075W-A;Alias=EGO2 -chrIII SGD CDS 249293 250045 . - . ID=YCR076C;Name=YCR076C;Alias=FUB1 -chrIII SGD CDS 250238 252628 . - . ID=YCR077C;Name=YCR077C;Alias=PAT1 -chrIII SGD CDS 252845 254173 . + . ID=YCR079W;Name=YCR079W;Alias=PTC6 -chrIII SGD CDS 254371 258654 . + . ID=YCR081W;Name=YCR081W;Alias=SRB8 -chrIII SGD CDS 258883 259269 . + . ID=YCR082W;Name=YCR082W;Alias=AHC2 -chrIII SGD CDS 259578 259961 . + . ID=YCR083W;Name=YCR083W;Alias=TRX3 -chrIII SGD CDS 260311 262452 . - . ID=YCR084C;Name=YCR084C;Alias=TUP1 -chrIII SGD CDS 263392 263964 . + . ID=YCR086W;Name=YCR086W;Alias=CSM1 -chrIII SGD CDS 264006 264467 . - . ID=YCR087C-A;Name=YCR087C-A;Alias= -chrIII SGD CDS 265068 266846 . + . ID=YCR088W;Name=YCR088W;Alias=ABP1 -chrIII SGD CDS 267434 272263 . + . ID=YCR089W;Name=YCR089W;Alias=FIG2 -chrIII SGD CDS 272315 272863 . - . ID=YCR090C;Name=YCR090C;Alias= -chrIII SGD CDS 274404 276566 . + . ID=YCR091W;Name=YCR091W;Alias=KIN82 -chrIII SGD CDS 276764 279820 . - . ID=YCR092C;Name=YCR092C;Alias=MSH3 -chrIII SGD CDS 280117 286443 . + . ID=YCR093W;Name=YCR093W;Alias=CDC39 -chrIII SGD CDS 286762 287937 . + . ID=YCR094W;Name=YCR094W;Alias=CDC50 -chrIII SGD CDS 288170 289258 . - . ID=YCR095C;Name=YCR095C;Alias=OCA4 -chrIII SGD CDS 289639 289797 . + . ID=YCR095W-A;Name=YCR095W-A;Alias= -chrIII SGD CDS 293179 293538 . - . ID=YCR096C;Name=YCR096C;Alias=HMRA2 -chrIII SGD CDS 293835 294321 . + . ID=YCR097W;Name=YCR097W;Alias=HMRA1 -chrIII SGD CDS 297049 298605 . - . ID=YCR098C;Name=YCR098C;Alias=GIT1 -chrIII SGD CDS 300832 301299 . - . ID=YCR099C;Name=YCR099C;Alias= -chrIII SGD CDS 301271 302221 . - . ID=YCR100C;Name=YCR100C;Alias= -chrIII SGD CDS 302482 303030 . - . ID=YCR101C;Name=YCR101C;Alias= -chrIII SGD CDS 304361 305467 . - . ID=YCR102C;Name=YCR102C;Alias= -chrIII SGD CDS 307801 308175 . + . ID=YCR104W;Name=YCR104W;Alias=PAU3 -chrIII SGD CDS 309070 310155 . + . ID=YCR105W;Name=YCR105W;Alias=ADH7 -chrIII SGD CDS 310958 313456 . + . ID=YCR106W;Name=YCR106W;Alias=RDS1 -chrIII SGD CDS 313890 314981 . + . ID=YCR107W;Name=YCR107W;Alias=AAD3 -chrIII SGD CDS 315997 316188 . - . ID=YCR108C;Name=YCR108C;Alias= -chrIV SGD CDS 1802 2953 . + . ID=YDL248W;Name=YDL248W;Alias=COS7 -chrIV SGD CDS 5985 7814 . + . ID=YDL247W;Name=YDL247W;Alias=MPH2 -chrIV SGD CDS 8683 9756 . - . ID=YDL246C;Name=YDL246C;Alias=SOR2 -chrIV SGD CDS 11657 13360 . - . ID=YDL245C;Name=YDL245C;Alias=HXT15 -chrIV SGD CDS 16204 17226 . + . ID=YDL244W;Name=YDL244W;Alias=THI13 -chrIV SGD CDS 17577 18566 . - . ID=YDL243C;Name=YDL243C;Alias=AAD4 -chrIV SGD CDS 20635 21006 . + . ID=YDL241W;Name=YDL241W;Alias= -chrIV SGD CDS 22823 25876 . + . ID=YDL240W;Name=YDL240W;Alias=LRG1 -chrIV SGD CDS 26403 28775 . - . ID=YDL239C;Name=YDL239C;Alias=ADY3 -chrIV SGD CDS 28985 30454 . - . ID=YDL238C;Name=YDL238C;Alias=GUD1 -chrIV SGD CDS 30657 31829 . + . ID=YDL237W;Name=YDL237W;Alias=AIM6 -chrIV SGD CDS 32296 33234 . + . ID=YDL236W;Name=YDL236W;Alias=PHO13 -chrIV SGD CDS 33415 33918 . - . ID=YDL235C;Name=YDL235C;Alias=YPD1 -chrIV SGD CDS 34237 36477 . - . ID=YDL234C;Name=YDL234C;Alias=GYP7 -chrIV SGD CDS 36797 38173 . + . ID=YDL233W;Name=YDL233W;Alias=MFG1 -chrIV SGD CDS 38487 38597 . + . ID=YDL232W;Name=YDL232W;Alias=OST4 -chrIV SGD CDS 38867 42244 . - . ID=YDL231C;Name=YDL231C;Alias=BRE4 -chrIV SGD CDS 42700 43707 . + . ID=YDL230W;Name=YDL230W;Alias=PTP1 -chrIV SGD CDS 44065 45906 . + . ID=YDL229W;Name=YDL229W;Alias=SSB1 -chrIV SGD CDS 46271 48031 . - . ID=YDL227C;Name=YDL227C;Alias=HO -chrIV SGD CDS 51115 52173 . - . ID=YDL226C;Name=YDL226C;Alias=GCS1 -chrIV SGD CDS 52445 54100 . + . ID=YDL225W;Name=YDL225W;Alias=SHS1 -chrIV SGD CDS 54397 56346 . - . ID=YDL224C;Name=YDL224C;Alias=WHI4 -chrIV SGD CDS 57265 60405 . - . ID=YDL223C;Name=YDL223C;Alias=HBT1 -chrIV SGD CDS 60872 61801 . - . ID=YDL222C;Name=YDL222C;Alias=FMP45 -chrIV SGD CDS 62244 65018 . - . ID=YDL220C;Name=YDL220C;Alias=CDC13 -chrIV SGD CDS 65242 65765 . + . ID=YDL219W;Name=YDL219W;Alias=DTD1 -chrIV SGD CDS 66493 67446 . + . ID=YDL218W;Name=YDL218W;Alias= -chrIV SGD CDS 67983 68606 . - . ID=YDL217C;Name=YDL217C;Alias=TIM22 -chrIV SGD CDS 68997 70319 . - . ID=YDL216C;Name=YDL216C;Alias=RRI1 -chrIV SGD CDS 70640 73918 . - . ID=YDL215C;Name=YDL215C;Alias=GDH2 -chrIV SGD CDS 74446 76545 . - . ID=YDL214C;Name=YDL214C;Alias=PRR2 -chrIV SGD CDS 77289 77966 . - . ID=YDL213C;Name=YDL213C;Alias=NOP6 -chrIV SGD CDS 78426 79058 . + . ID=YDL212W;Name=YDL212W;Alias=SHR3 -chrIV SGD CDS 79294 80412 . - . ID=YDL211C;Name=YDL211C;Alias= -chrIV SGD CDS 84270 85985 . + . ID=YDL210W;Name=YDL210W;Alias=UGA4 -chrIV SGD CDS 86207 87226 . - . ID=YDL209C;Name=YDL209C;Alias=CWC2 -chrIV SGD CDS 87512 87982 . + . ID=YDL208W;Name=YDL208W;Alias=NHP2 -chrIV SGD CDS 88248 89864 . + . ID=YDL207W;Name=YDL207W;Alias=GLE1 -chrIV SGD CDS 90176 92464 . + . ID=YDL206W;Name=YDL206W;Alias= -chrIV SGD CDS 92762 93745 . - . ID=YDL205C;Name=YDL205C;Alias=HEM3 -chrIV SGD CDS 94605 95786 . + . ID=YDL204W;Name=YDL204W;Alias=RTN2 -chrIV SGD CDS 96082 97953 . - . ID=YDL203C;Name=YDL203C;Alias=ACK1 -chrIV SGD CDS 98475 99224 . + . ID=YDL202W;Name=YDL202W;Alias=MRPL11 -chrIV SGD CDS 99561 100421 . + . ID=YDL201W;Name=YDL201W;Alias=TRM8 -chrIV SGD CDS 100501 101067 . - . ID=YDL200C;Name=YDL200C;Alias=MGT1 -chrIV SGD CDS 101290 103353 . - . ID=YDL199C;Name=YDL199C;Alias= -chrIV SGD CDS 103649 104551 . - . ID=YDL198C;Name=YDL198C;Alias=GGC1 -chrIV SGD CDS 104917 106494 . - . ID=YDL197C;Name=YDL197C;Alias=ASF2 -chrIV SGD CDS 107208 111029 . + . ID=YDL195W;Name=YDL195W;Alias=SEC31 -chrIV SGD CDS 111580 114234 . + . ID=YDL194W;Name=YDL194W;Alias=SNF3 -chrIV SGD CDS 114672 115799 . + . ID=YDL193W;Name=YDL193W;Alias=NUS1 -chrIV SGD CDS 116321 116866 . + . ID=YDL192W;Name=YDL192W;Alias=ARF1 -chrIV SGD CDS 117664 118517 . + . ID=YDL191W;Name=YDL191W;Alias=RPL35A -chrIV SGD CDS 118707 121592 . - . ID=YDL190C;Name=YDL190C;Alias=UFD2 -chrIV SGD CDS 122078 123589 . + . ID=YDL189W;Name=YDL189W;Alias=RBS1 -chrIV SGD CDS 123865 124998 . - . ID=YDL188C;Name=YDL188C;Alias=PPH22 -chrIV SGD CDS 125616 126449 . + . ID=YDL186W;Name=YDL186W;Alias= -chrIV SGD CDS 126787 130002 . + . ID=YDL185W;Name=YDL185W;Alias=VMA1 -chrIV SGD CDS 130407 130484 . - . ID=YDL184C;Name=YDL184C;Alias=RPL41A -chrIV SGD CDS 130871 131833 . - . ID=YDL183C;Name=YDL183C;Alias= -chrIV SGD CDS 133437 134723 . + . ID=YDL182W;Name=YDL182W;Alias=LYS20 -chrIV SGD CDS 135179 135436 . + . ID=YDL181W;Name=YDL181W;Alias=INH1 -chrIV SGD CDS 135896 137539 . + . ID=YDL180W;Name=YDL180W;Alias= -chrIV SGD CDS 138291 139205 . + . ID=YDL179W;Name=YDL179W;Alias=PCL9 -chrIV SGD CDS 139522 141114 . + . ID=YDL178W;Name=YDL178W;Alias=DLD2 -chrIV SGD CDS 141209 141721 . - . ID=YDL177C;Name=YDL177C;Alias= -chrIV SGD CDS 142097 144223 . + . ID=YDL176W;Name=YDL176W;Alias= -chrIV SGD CDS 144484 145518 . - . ID=YDL175C;Name=YDL175C;Alias=AIR2 -chrIV SGD CDS 145826 147589 . - . ID=YDL174C;Name=YDL174C;Alias=DLD1 -chrIV SGD CDS 148191 149078 . + . ID=YDL173W;Name=YDL173W;Alias=PAR32 -chrIV SGD CDS 149203 155640 . - . ID=YDL171C;Name=YDL171C;Alias=GLT1 -chrIV SGD CDS 156318 157904 . + . ID=YDL170W;Name=YDL170W;Alias=UGA3 -chrIV SGD CDS 158064 158735 . - . ID=YDL169C;Name=YDL169C;Alias=UGX2 -chrIV SGD CDS 159604 160764 . + . ID=YDL168W;Name=YDL168W;Alias=SFA1 -chrIV SGD CDS 160995 163154 . - . ID=YDL167C;Name=YDL167C;Alias=NRP1 -chrIV SGD CDS 163449 164042 . - . ID=YDL166C;Name=YDL166C;Alias=FAP7 -chrIV SGD CDS 164290 164865 . + . ID=YDL165W;Name=YDL165W;Alias=CDC36 -chrIV SGD CDS 164987 167254 . - . ID=YDL164C;Name=YDL164C;Alias=CDC9 -chrIV SGD CDS 167714 169078 . + . ID=YDL161W;Name=YDL161W;Alias=ENT1 -chrIV SGD CDS 169366 169608 . - . ID=YDL160C-A;Name=YDL160C-A;Alias=MHF2 -chrIV SGD CDS 170410 171930 . - . ID=YDL160C;Name=YDL160C;Alias=DHH1 -chrIV SGD CDS 172182 172313 . + . ID=YDL159W-A;Name=YDL159W-A;Alias= -chrIV SGD CDS 172481 174028 . + . ID=YDL159W;Name=YDL159W;Alias=STE7 -chrIV SGD CDS 174232 174588 . - . ID=YDL157C;Name=YDL157C;Alias= -chrIV SGD CDS 174918 176486 . + . ID=YDL156W;Name=YDL156W;Alias=CMR1 -chrIV SGD CDS 176773 178056 . + . ID=YDL155W;Name=YDL155W;Alias=CLB3 -chrIV SGD CDS 178334 181039 . + . ID=YDL154W;Name=YDL154W;Alias=MSH5 -chrIV SGD CDS 181186 183018 . - . ID=YDL153C;Name=YDL153C;Alias=SAS10 -chrIV SGD CDS 183343 184611 . + . ID=YDL150W;Name=YDL150W;Alias=RPC53 -chrIV SGD CDS 184925 187918 . + . ID=YDL149W;Name=YDL149W;Alias=ATG9 -chrIV SGD CDS 188154 190586 . - . ID=YDL148C;Name=YDL148C;Alias=NOP14 -chrIV SGD CDS 190924 192261 . + . ID=YDL147W;Name=YDL147W;Alias=RPN5 -chrIV SGD CDS 192750 194225 . + . ID=YDL146W;Name=YDL146W;Alias=LDB17 -chrIV SGD CDS 194571 198176 . - . ID=YDL145C;Name=YDL145C;Alias=COP1 -chrIV SGD CDS 198662 199732 . - . ID=YDL144C;Name=YDL144C;Alias= -chrIV SGD CDS 199996 201582 . + . ID=YDL143W;Name=YDL143W;Alias=CCT4 -chrIV SGD CDS 201719 202570 . - . ID=YDL142C;Name=YDL142C;Alias=CRD1 -chrIV SGD CDS 203039 205111 . + . ID=YDL141W;Name=YDL141W;Alias=BPL1 -chrIV SGD CDS 205360 210561 . - . ID=YDL140C;Name=YDL140C;Alias=RPO21 -chrIV SGD CDS 211375 212046 . - . ID=YDL139C;Name=YDL139C;Alias=SCM3 -chrIV SGD CDS 213351 215642 . + . ID=YDL138W;Name=YDL138W;Alias=RGT2 -chrIV SGD CDS 216158 217074 . + . ID=YDL137W;Name=YDL137W;Alias=ARF2 -chrIV SGD CDS 217600 218367 . + . ID=YDL136W;Name=YDL136W;Alias=RPL35B -chrIV SGD CDS 218680 219288 . - . ID=YDL135C;Name=YDL135C;Alias=RDI1 -chrIV SGD CDS 219662 220771 . - . ID=YDL134C;Name=YDL134C;Alias=PPH21 -chrIV SGD CDS 221724 221801 . - . ID=YDL133C-A;Name=YDL133C-A;Alias=RPL41B -chrIV SGD CDS 222427 223740 . + . ID=YDL133W;Name=YDL133W;Alias=SRF1 -chrIV SGD CDS 224304 226751 . + . ID=YDL132W;Name=YDL132W;Alias=CDC53 -chrIV SGD CDS 227393 228715 . + . ID=YDL131W;Name=YDL131W;Alias=LYS21 -chrIV SGD CDS 229171 229431 . + . ID=YDL130W-A;Name=YDL130W-A;Alias=STF1 -chrIV SGD CDS 229906 230527 . + . ID=YDL130W;Name=YDL130W;Alias=RPP1B -chrIV SGD CDS 231024 231899 . + . ID=YDL129W;Name=YDL129W;Alias= -chrIV SGD CDS 232652 233887 . + . ID=YDL128W;Name=YDL128W;Alias=VCX1 -chrIV SGD CDS 234927 235853 . + . ID=YDL127W;Name=YDL127W;Alias=PCL2 -chrIV SGD CDS 236157 238664 . - . ID=YDL126C;Name=YDL126C;Alias=CDC48 -chrIV SGD CDS 239019 239606 . - . ID=YDL125C;Name=YDL125C;Alias=HNT1 -chrIV SGD CDS 240259 241197 . + . ID=YDL124W;Name=YDL124W;Alias= -chrIV SGD CDS 241418 241840 . + . ID=YDL123W;Name=YDL123W;Alias=SNA4 -chrIV SGD CDS 242552 244981 . + . ID=YDL122W;Name=YDL122W;Alias=UBP1 -chrIV SGD CDS 245133 245582 . - . ID=YDL121C;Name=YDL121C;Alias= -chrIV SGD CDS 245923 246447 . + . ID=YDL120W;Name=YDL120W;Alias=YFH1 -chrIV SGD CDS 246689 247612 . - . ID=YDL119C;Name=YDL119C;Alias=HEM25 -chrIV SGD CDS 248581 251238 . + . ID=YDL117W;Name=YDL117W;Alias=CYK3 -chrIV SGD CDS 251566 253746 . + . ID=YDL116W;Name=YDL116W;Alias=NUP84 -chrIV SGD CDS 253995 255126 . - . ID=YDL115C;Name=YDL115C;Alias=IWR1 -chrIV SGD CDS 255604 256530 . + . ID=YDL114W;Name=YDL114W;Alias= -chrIV SGD CDS 256633 258555 . - . ID=YDL113C;Name=YDL113C;Alias=ATG20 -chrIV SGD CDS 258915 263225 . + . ID=YDL112W;Name=YDL112W;Alias=TRM3 -chrIV SGD CDS 263313 264110 . - . ID=YDL111C;Name=YDL111C;Alias=RRP42 -chrIV SGD CDS 264512 264964 . - . ID=YDL110C;Name=YDL110C;Alias=TMA17 -chrIV SGD CDS 265258 267201 . - . ID=YDL109C;Name=YDL109C;Alias= -chrIV SGD CDS 267698 268699 . + . ID=YDL108W;Name=YDL108W;Alias=KIN28 -chrIV SGD CDS 268921 269976 . + . ID=YDL107W;Name=YDL107W;Alias=MSS2 -chrIV SGD CDS 270222 271901 . - . ID=YDL106C;Name=YDL106C;Alias=PHO2 -chrIV SGD CDS 272389 273597 . + . ID=YDL105W;Name=YDL105W;Alias=NSE4 -chrIV SGD CDS 273653 274876 . - . ID=YDL104C;Name=YDL104C;Alias=QRI7 -chrIV SGD CDS 275148 276581 . - . ID=YDL103C;Name=YDL103C;Alias=QRI1 -chrIV SGD CDS 276872 280165 . + . ID=YDL102W;Name=YDL102W;Alias=POL3 -chrIV SGD CDS 280307 281848 . - . ID=YDL101C;Name=YDL101C;Alias=DUN1 -chrIV SGD CDS 282112 283176 . - . ID=YDL100C;Name=YDL100C;Alias=GET3 -chrIV SGD CDS 283419 284444 . + . ID=YDL099W;Name=YDL099W;Alias=BUG1 -chrIV SGD CDS 284581 285165 . - . ID=YDL098C;Name=YDL098C;Alias=SNU23 -chrIV SGD CDS 285391 286695 . - . ID=YDL097C;Name=YDL097C;Alias=RPN6 -chrIV SGD CDS 287059 289512 . + . ID=YDL095W;Name=YDL095W;Alias=PMT1 -chrIV SGD CDS 289909 292140 . + . ID=YDL093W;Name=YDL093W;Alias=PMT5 -chrIV SGD CDS 292781 293221 . + . ID=YDL092W;Name=YDL092W;Alias=SRP14 -chrIV SGD CDS 293392 294759 . - . ID=YDL091C;Name=YDL091C;Alias=UBX3 -chrIV SGD CDS 295034 296329 . - . ID=YDL090C;Name=YDL090C;Alias=RAM1 -chrIV SGD CDS 296820 298274 . + . ID=YDL089W;Name=YDL089W;Alias=NUR1 -chrIV SGD CDS 298417 300003 . - . ID=YDL088C;Name=YDL088C;Alias=ASM4 -chrIV SGD CDS 300214 300999 . - . ID=YDL087C;Name=YDL087C;Alias=LUC7 -chrIV SGD CDS 301413 302234 . + . ID=YDL086W;Name=YDL086W;Alias= -chrIV SGD CDS 302464 302670 . - . ID=YDL085C-A;Name=YDL085C-A;Alias= -chrIV SGD CDS 303211 304848 . + . ID=YDL085W;Name=YDL085W;Alias=NDE2 -chrIV SGD CDS 305237 306577 . + . ID=YDL084W;Name=YDL084W;Alias=SUB2 -chrIV SGD CDS 306926 307789 . - . ID=YDL083C;Name=YDL083C;Alias=RPS16B -chrIV SGD CDS 308424 309388 . + . ID=YDL082W;Name=YDL082W;Alias=RPL13A -chrIV SGD CDS 309802 310122 . - . ID=YDL081C;Name=YDL081C;Alias=RPP1A -chrIV SGD CDS 310642 312471 . - . ID=YDL080C;Name=YDL080C;Alias=THI3 -chrIV SGD CDS 312951 314748 . - . ID=YDL079C;Name=YDL079C;Alias=MRK1 -chrIV SGD CDS 315357 316388 . - . ID=YDL078C;Name=YDL078C;Alias=MDH3 -chrIV SGD CDS 316971 320120 . - . ID=YDL077C;Name=YDL077C;Alias=VAM6 -chrIV SGD CDS 320668 321552 . - . ID=YDL076C;Name=YDL076C;Alias=RXT3 -chrIV SGD CDS 322226 322988 . + . ID=YDL075W;Name=YDL075W;Alias=RPL31A -chrIV SGD CDS 324047 326149 . - . ID=YDL074C;Name=YDL074C;Alias=BRE1 -chrIV SGD CDS 326613 329567 . + . ID=YDL073W;Name=YDL073W;Alias=AHK1 -chrIV SGD CDS 329836 330447 . - . ID=YDL072C;Name=YDL072C;Alias=YET3 -chrIV SGD CDS 331024 332940 . + . ID=YDL070W;Name=YDL070W;Alias=BDF2 -chrIV SGD CDS 333121 333810 . - . ID=YDL069C;Name=YDL069C;Alias=CBS1 -chrIV SGD CDS 334217 334396 . - . ID=YDL067C;Name=YDL067C;Alias=COX9 -chrIV SGD CDS 334835 336121 . + . ID=YDL066W;Name=YDL066W;Alias=IDP1 -chrIV SGD CDS 336249 337277 . - . ID=YDL065C;Name=YDL065C;Alias=PEX19 -chrIV SGD CDS 337487 338070 . + . ID=YDL064W;Name=YDL064W;Alias=UBC9 -chrIV SGD CDS 338272 340134 . - . ID=YDL063C;Name=YDL063C;Alias=SYO1 -chrIV SGD CDS 340628 341219 . - . ID=YDL061C;Name=YDL061C;Alias=RPS29B -chrIV SGD CDS 341619 343985 . + . ID=YDL060W;Name=YDL060W;Alias=TSR1 -chrIV SGD CDS 344237 344953 . - . ID=YDL059C;Name=YDL059C;Alias=RAD59 -chrIV SGD CDS 345665 351037 . + . ID=YDL058W;Name=YDL058W;Alias=USO1 -chrIV SGD CDS 351434 352420 . + . ID=YDL057W;Name=YDL057W;Alias= -chrIV SGD CDS 352877 355378 . + . ID=YDL056W;Name=YDL056W;Alias=MBP1 -chrIV SGD CDS 355674 356759 . - . ID=YDL055C;Name=YDL055C;Alias=PSA1 -chrIV SGD CDS 359825 361285 . - . ID=YDL054C;Name=YDL054C;Alias=MCH1 -chrIV SGD CDS 361699 362256 . - . ID=YDL053C;Name=YDL053C;Alias=PBP4 -chrIV SGD CDS 362672 363583 . - . ID=YDL052C;Name=YDL052C;Alias=SLC1 -chrIV SGD CDS 363952 364779 . + . ID=YDL051W;Name=YDL051W;Alias=LHP1 -chrIV SGD CDS 365068 365874 . - . ID=YDL049C;Name=YDL049C;Alias=KNH1 -chrIV SGD CDS 366739 368211 . - . ID=YDL048C;Name=YDL048C;Alias=STP4 -chrIV SGD CDS 369771 370706 . + . ID=YDL047W;Name=YDL047W;Alias=SIT4 -chrIV SGD CDS 371240 371761 . + . ID=YDL046W;Name=YDL046W;Alias=NPC2 -chrIV SGD CDS 372248 372535 . + . ID=YDL045W-A;Name=YDL045W-A;Alias=MRP10 -chrIV SGD CDS 372688 373608 . - . ID=YDL045C;Name=YDL045C;Alias=FAD1 -chrIV SGD CDS 373967 375289 . - . ID=YDL044C;Name=YDL044C;Alias=MTF2 -chrIV SGD CDS 375680 376480 . - . ID=YDL043C;Name=YDL043C;Alias=PRP11 -chrIV SGD CDS 376757 378445 . - . ID=YDL042C;Name=YDL042C;Alias=SIR2 -chrIV SGD CDS 378874 381438 . - . ID=YDL040C;Name=YDL040C;Alias=NAT1 -chrIV SGD CDS 381985 384081 . - . ID=YDL039C;Name=YDL039C;Alias=PRM7 -chrIV SGD CDS 384601 385587 . - . ID=YDL037C;Name=YDL037C;Alias=BSC1 -chrIV SGD CDS 387513 388901 . - . ID=YDL036C;Name=YDL036C;Alias=PUS9 -chrIV SGD CDS 389172 392057 . - . ID=YDL035C;Name=YDL035C;Alias=GPR1 -chrIV SGD CDS 392659 393912 . - . ID=YDL033C;Name=YDL033C;Alias=SLM3 -chrIV SGD CDS 394217 397204 . + . ID=YDL031W;Name=YDL031W;Alias=DBP10 -chrIV SGD CDS 397537 399129 . + . ID=YDL030W;Name=YDL030W;Alias=PRP9 -chrIV SGD CDS 399340 400638 . + . ID=YDL029W;Name=YDL029W;Alias=ARP2 -chrIV SGD CDS 400997 403291 . - . ID=YDL028C;Name=YDL028C;Alias=MPS1 -chrIV SGD CDS 403695 404957 . - . ID=YDL027C;Name=YDL027C;Alias=MRX9 -chrIV SGD CDS 405344 407206 . - . ID=YDL025C;Name=YDL025C;Alias=RTK1 -chrIV SGD CDS 408451 409857 . - . ID=YDL024C;Name=YDL024C;Alias=DIA3 -chrIV SGD CDS 409808 410056 . - . ID=YDL022C-A;Name=YDL022C-A;Alias= -chrIV SGD CDS 411825 413000 . + . ID=YDL022W;Name=YDL022W;Alias=GPD1 -chrIV SGD CDS 413953 414888 . + . ID=YDL021W;Name=YDL021W;Alias=GPM2 -chrIV SGD CDS 415113 416708 . - . ID=YDL020C;Name=YDL020C;Alias=RPN4 -chrIV SGD CDS 417663 421514 . - . ID=YDL019C;Name=YDL019C;Alias=OSH2 -chrIV SGD CDS 422833 423510 . - . ID=YDL018C;Name=YDL018C;Alias=ERP3 -chrIV SGD CDS 424209 425732 . + . ID=YDL017W;Name=YDL017W;Alias=CDC7 -chrIV SGD CDS 426002 426934 . - . ID=YDL015C;Name=YDL015C;Alias=TSC13 -chrIV SGD CDS 427364 428347 . + . ID=YDL014W;Name=YDL014W;Alias=NOP1 -chrIV SGD CDS 429067 430926 . + . ID=YDL013W;Name=YDL013W;Alias=SLX5 -chrIV SGD CDS 431108 431517 . - . ID=YDL012C;Name=YDL012C;Alias= -chrIV SGD CDS 432330 433025 . + . ID=YDL010W;Name=YDL010W;Alias=GRX6 -chrIV SGD CDS 432925 433248 . - . ID=YDL009C;Name=YDL009C;Alias= -chrIV SGD CDS 433497 433994 . + . ID=YDL008W;Name=YDL008W;Alias=APC11 -chrIV SGD CDS 436567 436824 . - . ID=YDL007C-A;Name=YDL007C-A;Alias= -chrIV SGD CDS 438047 439360 . + . ID=YDL007W;Name=YDL007W;Alias=RPT2 -chrIV SGD CDS 439909 440754 . + . ID=YDL006W;Name=YDL006W;Alias=PTC1 -chrIV SGD CDS 441014 442309 . - . ID=YDL005C;Name=YDL005C;Alias=MED2 -chrIV SGD CDS 443029 443511 . + . ID=YDL004W;Name=YDL004W;Alias=ATP16 -chrIV SGD CDS 444683 446383 . + . ID=YDL003W;Name=YDL003W;Alias=MCD1 -chrIV SGD CDS 446967 447578 . - . ID=YDL002C;Name=YDL002C;Alias=NHP10 -chrIV SGD CDS 447984 449276 . + . ID=YDL001W;Name=YDL001W;Alias=RMD1 -chrIV SGD CDS 450220 452475 . - . ID=YDR001C;Name=YDR001C;Alias=NTH1 -chrIV SGD CDS 453045 453650 . + . ID=YDR002W;Name=YDR002W;Alias=YRB1 -chrIV SGD CDS 454122 454754 . + . ID=YDR003W;Name=YDR003W;Alias=RCR2 -chrIV SGD CDS 454782 454904 . + . ID=YDR003W-A;Name=YDR003W-A;Alias= -chrIV SGD CDS 455201 456583 . + . ID=YDR004W;Name=YDR004W;Alias=RAD57 -chrIV SGD CDS 456836 458103 . - . ID=YDR005C;Name=YDR005C;Alias=MAF1 -chrIV SGD CDS 458542 461247 . - . ID=YDR006C;Name=YDR006C;Alias=SOK1 -chrIV SGD CDS 461842 462516 . + . ID=YDR007W;Name=YDR007W;Alias=TRP1 -chrIV SGD CDS 463434 464996 . + . ID=YDR009W;Name=YDR009W;Alias=GAL3 -chrIV SGD CDS 465919 470424 . + . ID=YDR011W;Name=YDR011W;Alias=SNQ2 -chrIV SGD CDS 471853 472941 . + . ID=YDR012W;Name=YDR012W;Alias=RPL4B -chrIV SGD CDS 473157 473783 . + . ID=YDR013W;Name=YDR013W;Alias=PSF1 -chrIV SGD CDS 474046 475989 . + . ID=YDR014W;Name=YDR014W;Alias=RAD61 -chrIV SGD CDS 477797 478285 . + . ID=YDR014W-A;Name=YDR014W-A;Alias=HED1 -chrIV SGD CDS 478474 478758 . - . ID=YDR016C;Name=YDR016C;Alias=DAD1 -chrIV SGD CDS 479115 482267 . - . ID=YDR017C;Name=YDR017C;Alias=KCS1 -chrIV SGD CDS 482670 483860 . - . ID=YDR018C;Name=YDR018C;Alias= -chrIV SGD CDS 484163 485365 . - . ID=YDR019C;Name=YDR019C;Alias=GCV1 -chrIV SGD CDS 485746 486444 . - . ID=YDR020C;Name=YDR020C;Alias=DAS2 -chrIV SGD CDS 486804 488003 . + . ID=YDR021W;Name=YDR021W;Alias=FAL1 -chrIV SGD CDS 488072 488662 . - . ID=YDR022C;Name=YDR022C;Alias=ATG31 -chrIV SGD CDS 489508 490896 . + . ID=YDR023W;Name=YDR023W;Alias=SES1 -chrIV SGD CDS 491515 492324 . + . ID=YDR025W;Name=YDR025W;Alias=RPS11A -chrIV SGD CDS 492556 494268 . - . ID=YDR026C;Name=YDR026C;Alias=NSI1 -chrIV SGD CDS 494649 497318 . - . ID=YDR027C;Name=YDR027C;Alias=VPS54 -chrIV SGD CDS 497835 500879 . - . ID=YDR028C;Name=YDR028C;Alias=REG1 -chrIV SGD CDS 501753 503273 . - . ID=YDR030C;Name=YDR030C;Alias=RAD28 -chrIV SGD CDS 503498 503863 . + . ID=YDR031W;Name=YDR031W;Alias=MIX14 -chrIV SGD CDS 504099 504695 . - . ID=YDR032C;Name=YDR032C;Alias=PST2 -chrIV SGD CDS 508147 509109 . + . ID=YDR033W;Name=YDR033W;Alias=MRH1 -chrIV SGD CDS 509737 512109 . - . ID=YDR034C;Name=YDR034C;Alias=LYS14 -chrIV SGD CDS 520516 520692 . - . ID=YDR034C-A;Name=YDR034C-A;Alias= -chrIV SGD CDS 521314 521469 . + . ID=YDR034W-B;Name=YDR034W-B;Alias= -chrIV SGD CDS 521816 522928 . + . ID=YDR035W;Name=YDR035W;Alias=ARO3 -chrIV SGD CDS 523211 524713 . - . ID=YDR036C;Name=YDR036C;Alias=EHD3 -chrIV SGD CDS 525440 527215 . + . ID=YDR037W;Name=YDR037W;Alias=KRS1 -chrIV SGD CDS 527422 530697 . - . ID=YDR038C;Name=YDR038C;Alias=ENA5 -chrIV SGD CDS 531307 534582 . - . ID=YDR039C;Name=YDR039C;Alias=ENA2 -chrIV SGD CDS 535192 538467 . - . ID=YDR040C;Name=YDR040C;Alias=ENA1 -chrIV SGD CDS 539803 540414 . + . ID=YDR041W;Name=YDR041W;Alias=RSM10 -chrIV SGD CDS 540601 541203 . - . ID=YDR042C;Name=YDR042C;Alias= -chrIV SGD CDS 542674 543369 . - . ID=YDR043C;Name=YDR043C;Alias=NRG1 -chrIV SGD CDS 546642 547628 . + . ID=YDR044W;Name=YDR044W;Alias=HEM13 -chrIV SGD CDS 547978 548310 . - . ID=YDR045C;Name=YDR045C;Alias=RPC11 -chrIV SGD CDS 548762 550576 . - . ID=YDR046C;Name=YDR046C;Alias=BAP3 -chrIV SGD CDS 551860 552948 . + . ID=YDR047W;Name=YDR047W;Alias=HEM12 -chrIV SGD CDS 553254 555152 . + . ID=YDR049W;Name=YDR049W;Alias=VMS1 -chrIV SGD CDS 555726 556472 . - . ID=YDR050C;Name=YDR050C;Alias=TPI1 -chrIV SGD CDS 557056 558060 . - . ID=YDR051C;Name=YDR051C;Alias=DET1 -chrIV SGD CDS 558511 560625 . - . ID=YDR052C;Name=YDR052C;Alias=DBF4 -chrIV SGD CDS 561440 562327 . - . ID=YDR054C;Name=YDR054C;Alias=CDC34 -chrIV SGD CDS 563527 564861 . + . ID=YDR055W;Name=YDR055W;Alias=PST1 -chrIV SGD CDS 565023 565640 . - . ID=YDR056C;Name=YDR056C;Alias=EMC10 -chrIV SGD CDS 565927 567555 . + . ID=YDR057W;Name=YDR057W;Alias=YOS9 -chrIV SGD CDS 567723 568703 . - . ID=YDR058C;Name=YDR058C;Alias=TGL2 -chrIV SGD CDS 569234 569770 . - . ID=YDR059C;Name=YDR059C;Alias=UBC5 -chrIV SGD CDS 570649 573726 . + . ID=YDR060W;Name=YDR060W;Alias=MAK21 -chrIV SGD CDS 574164 575783 . + . ID=YDR061W;Name=YDR061W;Alias= -chrIV SGD CDS 576474 578159 . + . ID=YDR062W;Name=YDR062W;Alias=LCB2 -chrIV SGD CDS 578663 579112 . + . ID=YDR063W;Name=YDR063W;Alias=AIM7 -chrIV SGD CDS 579458 580452 . + . ID=YDR064W;Name=YDR064W;Alias=RPS13 -chrIV SGD CDS 580687 581784 . + . ID=YDR065W;Name=YDR065W;Alias=RRG1 -chrIV SGD CDS 581908 582498 . - . ID=YDR066C;Name=YDR066C;Alias=RTR2 -chrIV SGD CDS 582791 583465 . - . ID=YDR067C;Name=YDR067C;Alias=OCA6 -chrIV SGD CDS 583713 584645 . + . ID=YDR068W;Name=YDR068W;Alias=DOS2 -chrIV SGD CDS 584939 587719 . - . ID=YDR069C;Name=YDR069C;Alias=DOA4 -chrIV SGD CDS 588098 588379 . - . ID=YDR070C;Name=YDR070C;Alias=FMP16 -chrIV SGD CDS 588827 589402 . - . ID=YDR071C;Name=YDR071C;Alias=PAA1 -chrIV SGD CDS 589761 591344 . - . ID=YDR072C;Name=YDR072C;Alias=IPT1 -chrIV SGD CDS 592439 592948 . + . ID=YDR073W;Name=YDR073W;Alias=SNF11 -chrIV SGD CDS 593893 596583 . + . ID=YDR074W;Name=YDR074W;Alias=TPS2 -chrIV SGD CDS 597156 598082 . + . ID=YDR075W;Name=YDR075W;Alias=PPH3 -chrIV SGD CDS 598468 599688 . + . ID=YDR076W;Name=YDR076W;Alias=RAD55 -chrIV SGD CDS 600793 601809 . + . ID=YDR077W;Name=YDR077W;Alias=SED1 -chrIV SGD CDS 602198 602869 . - . ID=YDR078C;Name=YDR078C;Alias=SHU2 -chrIV SGD CDS 603064 603399 . + . ID=YDR079W;Name=YDR079W;Alias=PET100 -chrIV SGD CDS 603593 603811 . - . ID=YDR079C-A;Name=YDR079C-A;Alias=TFB5 -chrIV SGD CDS 604008 606986 . + . ID=YDR080W;Name=YDR080W;Alias=VPS41 -chrIV SGD CDS 607304 610081 . - . ID=YDR081C;Name=YDR081C;Alias=PDC2 -chrIV SGD CDS 610441 611925 . + . ID=YDR082W;Name=YDR082W;Alias=STN1 -chrIV SGD CDS 612073 613251 . + . ID=YDR083W;Name=YDR083W;Alias=RRP8 -chrIV SGD CDS 613405 614004 . - . ID=YDR084C;Name=YDR084C;Alias=TVP23 -chrIV SGD CDS 614288 616150 . - . ID=YDR085C;Name=YDR085C;Alias=AFR1 -chrIV SGD CDS 616928 617170 . - . ID=YDR086C;Name=YDR086C;Alias=SSS1 -chrIV SGD CDS 617470 618306 . - . ID=YDR087C;Name=YDR087C;Alias=RRP1 -chrIV SGD CDS 618497 619645 . - . ID=YDR088C;Name=YDR088C;Alias=SLU7 -chrIV SGD CDS 622112 624721 . + . ID=YDR089W;Name=YDR089W;Alias=VTC5 -chrIV SGD CDS 625066 625998 . - . ID=YDR090C;Name=YDR090C;Alias= -chrIV SGD CDS 626708 628534 . - . ID=YDR091C;Name=YDR091C;Alias=RLI1 -chrIV SGD CDS 629876 630605 . + . ID=YDR092W;Name=YDR092W;Alias=UBC13 -chrIV SGD CDS 631282 636120 . + . ID=YDR093W;Name=YDR093W;Alias=DNF2 -chrIV SGD CDS 637139 639823 . + . ID=YDR096W;Name=YDR096W;Alias=GIS1 -chrIV SGD CDS 640109 643837 . - . ID=YDR097C;Name=YDR097C;Alias=MSH6 -chrIV SGD CDS 644178 644930 . - . ID=YDR098C;Name=YDR098C;Alias=GRX3 -chrIV SGD CDS 652781 654428 . + . ID=YDR099W;Name=YDR099W;Alias=BMH2 -chrIV SGD CDS 655013 655444 . + . ID=YDR100W;Name=YDR100W;Alias=TVP15 -chrIV SGD CDS 655686 657467 . - . ID=YDR101C;Name=YDR101C;Alias=ARX1 -chrIV SGD CDS 658350 661103 . + . ID=YDR103W;Name=YDR103W;Alias=STE5 -chrIV SGD CDS 661173 664910 . - . ID=YDR104C;Name=YDR104C;Alias=SPO71 -chrIV SGD CDS 665349 666770 . - . ID=YDR105C;Name=YDR105C;Alias=TMS1 -chrIV SGD CDS 667004 667858 . + . ID=YDR106W;Name=YDR106W;Alias=ARP10 -chrIV SGD CDS 669016 671034 . - . ID=YDR107C;Name=YDR107C;Alias=TMN2 -chrIV SGD CDS 671269 673365 . + . ID=YDR108W;Name=YDR108W;Alias=TRS85 -chrIV SGD CDS 673520 675667 . - . ID=YDR109C;Name=YDR109C;Alias= -chrIV SGD CDS 676102 677802 . + . ID=YDR110W;Name=YDR110W;Alias=FOB1 -chrIV SGD CDS 678241 679764 . - . ID=YDR111C;Name=YDR111C;Alias=ALT2 -chrIV SGD CDS 680496 681617 . - . ID=YDR113C;Name=YDR113C;Alias=PDS1 -chrIV SGD CDS 681924 682226 . - . ID=YDR114C;Name=YDR114C;Alias= -chrIV SGD CDS 682175 682492 . + . ID=YDR115W;Name=YDR115W;Alias=MRX14 -chrIV SGD CDS 682724 683581 . - . ID=YDR116C;Name=YDR116C;Alias=MRPL1 -chrIV SGD CDS 683946 685643 . - . ID=YDR117C;Name=YDR117C;Alias=TMA64 -chrIV SGD CDS 685882 687840 . + . ID=YDR118W;Name=YDR118W;Alias=APC4 -chrIV SGD CDS 688227 690533 . + . ID=YDR119W;Name=YDR119W;Alias=VBA4 -chrIV SGD CDS 691014 691214 . + . ID=YDR119W-A;Name=YDR119W-A;Alias=COX26 -chrIV SGD CDS 691549 693261 . - . ID=YDR120C;Name=YDR120C;Alias=TRM1 -chrIV SGD CDS 693585 694175 . + . ID=YDR121W;Name=YDR121W;Alias=DPB4 -chrIV SGD CDS 694700 697894 . + . ID=YDR122W;Name=YDR122W;Alias=KIN1 -chrIV SGD CDS 698554 699468 . - . ID=YDR123C;Name=YDR123C;Alias=INO2 -chrIV SGD CDS 700315 701289 . + . ID=YDR124W;Name=YDR124W;Alias= -chrIV SGD CDS 701397 702758 . - . ID=YDR125C;Name=YDR125C;Alias=ECM18 -chrIV SGD CDS 703234 704244 . + . ID=YDR126W;Name=YDR126W;Alias=SWF1 -chrIV SGD CDS 704484 709250 . + . ID=YDR127W;Name=YDR127W;Alias=ARO1 -chrIV SGD CDS 709549 712995 . + . ID=YDR128W;Name=YDR128W;Alias=MTC5 -chrIV SGD CDS 713340 715379 . - . ID=YDR129C;Name=YDR129C;Alias=SAC6 -chrIV SGD CDS 715747 716622 . - . ID=YDR130C;Name=YDR130C;Alias=FIN1 -chrIV SGD CDS 716790 718460 . - . ID=YDR131C;Name=YDR131C;Alias= -chrIV SGD CDS 718816 720303 . - . ID=YDR132C;Name=YDR132C;Alias= -chrIV SGD CDS 723004 727551 . - . ID=YDR135C;Name=YDR135C;Alias=YCF1 -chrIV SGD CDS 728259 730250 . + . ID=YDR137W;Name=YDR137W;Alias=RGP1 -chrIV SGD CDS 730578 732836 . + . ID=YDR138W;Name=YDR138W;Alias=HPR1 -chrIV SGD CDS 733618 733924 . - . ID=YDR139C;Name=YDR139C;Alias=RUB1 -chrIV SGD CDS 734138 734803 . + . ID=YDR140W;Name=YDR140W;Alias=MTQ2 -chrIV SGD CDS 734901 739997 . - . ID=YDR141C;Name=YDR141C;Alias=DOP1 -chrIV SGD CDS 740473 741600 . - . ID=YDR142C;Name=YDR142C;Alias=PEX7 -chrIV SGD CDS 742042 743874 . - . ID=YDR143C;Name=YDR143C;Alias=SAN1 -chrIV SGD CDS 744311 746101 . - . ID=YDR144C;Name=YDR144C;Alias=MKC7 -chrIV SGD CDS 746738 748357 . + . ID=YDR145W;Name=YDR145W;Alias=TAF12 -chrIV SGD CDS 748613 750742 . - . ID=YDR146C;Name=YDR146C;Alias=SWI5 -chrIV SGD CDS 751631 753235 . + . ID=YDR147W;Name=YDR147W;Alias=EKI1 -chrIV SGD CDS 753675 755066 . - . ID=YDR148C;Name=YDR148C;Alias=KGD2 -chrIV SGD CDS 755628 763874 . + . ID=YDR150W;Name=YDR150W;Alias=NUM1 -chrIV SGD CDS 764178 765155 . - . ID=YDR151C;Name=YDR151C;Alias=CTH1 -chrIV SGD CDS 765706 766503 . + . ID=YDR152W;Name=YDR152W;Alias=GIR2 -chrIV SGD CDS 766736 767971 . - . ID=YDR153C;Name=YDR153C;Alias=ENT5 -chrIV SGD CDS 768512 769000 . - . ID=YDR155C;Name=YDR155C;Alias=CPR1 -chrIV SGD CDS 769525 769938 . + . ID=YDR156W;Name=YDR156W;Alias=RPA14 -chrIV SGD CDS 770357 771454 . + . ID=YDR158W;Name=YDR158W;Alias=HOM2 -chrIV SGD CDS 771877 775782 . + . ID=YDR159W;Name=YDR159W;Alias=SAC3 -chrIV SGD CDS 776163 778721 . + . ID=YDR160W;Name=YDR160W;Alias=SSY1 -chrIV SGD CDS 779043 780206 . + . ID=YDR161W;Name=YDR161W;Alias=ACL4 -chrIV SGD CDS 780390 781100 . - . ID=YDR162C;Name=YDR162C;Alias=NBP2 -chrIV SGD CDS 781423 781950 . + . ID=YDR163W;Name=YDR163W;Alias=CWC15 -chrIV SGD CDS 782041 784215 . - . ID=YDR164C;Name=YDR164C;Alias=SEC1 -chrIV SGD CDS 784871 786205 . + . ID=YDR165W;Name=YDR165W;Alias=TRM82 -chrIV SGD CDS 786306 789221 . - . ID=YDR166C;Name=YDR166C;Alias=SEC5 -chrIV SGD CDS 789449 790069 . + . ID=YDR167W;Name=YDR167W;Alias=TAF10 -chrIV SGD CDS 790328 791848 . + . ID=YDR168W;Name=YDR168W;Alias=CDC37 -chrIV SGD CDS 792348 793889 . - . ID=YDR169C;Name=YDR169C;Alias=STB3 -chrIV SGD CDS 794574 794723 . - . ID=YDR169C-A;Name=YDR169C-A;Alias= -chrIV SGD CDS 796193 802222 . - . ID=YDR170C;Name=YDR170C;Alias=SEC7 -chrIV SGD CDS 806621 807748 . + . ID=YDR171W;Name=YDR171W;Alias=HSP42 -chrIV SGD CDS 808324 810381 . + . ID=YDR172W;Name=YDR172W;Alias=SUP35 -chrIV SGD CDS 810565 811632 . - . ID=YDR173C;Name=YDR173C;Alias=ARG82 -chrIV SGD CDS 812110 812850 . + . ID=YDR174W;Name=YDR174W;Alias=HMO1 -chrIV SGD CDS 813193 814152 . - . ID=YDR175C;Name=YDR175C;Alias=RSM24 -chrIV SGD CDS 814452 816560 . + . ID=YDR176W;Name=YDR176W;Alias=NGG1 -chrIV SGD CDS 816878 817525 . + . ID=YDR177W;Name=YDR177W;Alias=UBC1 -chrIV SGD CDS 817950 818495 . + . ID=YDR178W;Name=YDR178W;Alias=SDH4 -chrIV SGD CDS 818708 819196 . - . ID=YDR179C;Name=YDR179C;Alias=CSN9 -chrIV SGD CDS 819433 820824 . + . ID=YDR179W-A;Name=YDR179W-A;Alias=NVJ3 -chrIV SGD CDS 821295 825776 . + . ID=YDR180W;Name=YDR180W;Alias=SCC2 -chrIV SGD CDS 825910 827355 . - . ID=YDR181C;Name=YDR181C;Alias=SAS4 -chrIV SGD CDS 827582 829057 . + . ID=YDR182W;Name=YDR182W;Alias=CDC1 -chrIV SGD CDS 829151 829354 . + . ID=YDR182W-A;Name=YDR182W-A;Alias= -chrIV SGD CDS 829585 830277 . + . ID=YDR183W;Name=YDR183W;Alias=PLP1 -chrIV SGD CDS 830629 831513 . - . ID=YDR184C;Name=YDR184C;Alias=ATC1 -chrIV SGD CDS 831934 832473 . - . ID=YDR185C;Name=YDR185C;Alias=UPS3 -chrIV SGD CDS 832859 835492 . - . ID=YDR186C;Name=YDR186C;Alias=SND1 -chrIV SGD CDS 836421 838061 . + . ID=YDR188W;Name=YDR188W;Alias=CCT6 -chrIV SGD CDS 838392 840392 . + . ID=YDR189W;Name=YDR189W;Alias=SLY1 -chrIV SGD CDS 840604 841995 . - . ID=YDR190C;Name=YDR190C;Alias=RVB1 -chrIV SGD CDS 842337 843449 . + . ID=YDR191W;Name=YDR191W;Alias=HST4 -chrIV SGD CDS 843569 844861 . - . ID=YDR192C;Name=YDR192C;Alias=NUP42 -chrIV SGD CDS 845952 847946 . - . ID=YDR194C;Name=YDR194C;Alias=MSS116 -chrIV SGD CDS 848071 848223 . + . ID=YDR194W-A;Name=YDR194W-A;Alias= -chrIV SGD CDS 848599 850200 . + . ID=YDR195W;Name=YDR195W;Alias=REF2 -chrIV SGD CDS 850274 850999 . - . ID=YDR196C;Name=YDR196C;Alias=CAB5 -chrIV SGD CDS 851228 852397 . + . ID=YDR197W;Name=YDR197W;Alias=CBS2 -chrIV SGD CDS 852533 853972 . - . ID=YDR198C;Name=YDR198C;Alias=RKM2 -chrIV SGD CDS 854279 856093 . - . ID=YDR200C;Name=YDR200C;Alias=VPS64 -chrIV SGD CDS 856317 856814 . + . ID=YDR201W;Name=YDR201W;Alias=SPC19 -chrIV SGD CDS 856898 857953 . - . ID=YDR202C;Name=YDR202C;Alias=RAV2 -chrIV SGD CDS 858137 859144 . + . ID=YDR204W;Name=YDR204W;Alias=COQ4 -chrIV SGD CDS 859346 861520 . + . ID=YDR205W;Name=YDR205W;Alias=MSC2 -chrIV SGD CDS 862054 864708 . + . ID=YDR206W;Name=YDR206W;Alias=EBS1 -chrIV SGD CDS 865012 867522 . - . ID=YDR207C;Name=YDR207C;Alias=UME6 -chrIV SGD CDS 868224 870563 . + . ID=YDR208W;Name=YDR208W;Alias=MSS4 -chrIV SGD CDS 871074 871301 . + . ID=YDR210W;Name=YDR210W;Alias= -chrIV SGD CDS 884727 886865 . + . ID=YDR211W;Name=YDR211W;Alias=GCD6 -chrIV SGD CDS 887232 888911 . + . ID=YDR212W;Name=YDR212W;Alias=TCP1 -chrIV SGD CDS 889751 892492 . + . ID=YDR213W;Name=YDR213W;Alias=UPC2 -chrIV SGD CDS 892875 893927 . + . ID=YDR214W;Name=YDR214W;Alias=AHA1 -chrIV SGD CDS 895035 899006 . + . ID=YDR216W;Name=YDR216W;Alias=ADR1 -chrIV SGD CDS 899551 903480 . - . ID=YDR217C;Name=YDR217C;Alias=RAD9 -chrIV SGD CDS 903781 905052 . - . ID=YDR218C;Name=YDR218C;Alias=SPR28 -chrIV SGD CDS 905455 906852 . - . ID=YDR219C;Name=YDR219C;Alias=MFB1 -chrIV SGD CDS 907330 909438 . + . ID=YDR221W;Name=YDR221W;Alias=GTB1 -chrIV SGD CDS 910054 911301 . + . ID=YDR222W;Name=YDR222W;Alias= -chrIV SGD CDS 912099 913502 . + . ID=YDR223W;Name=YDR223W;Alias=CRF1 -chrIV SGD CDS 914317 914712 . - . ID=YDR224C;Name=YDR224C;Alias=HTB1 -chrIV SGD CDS 915530 915928 . + . ID=YDR225W;Name=YDR225W;Alias=HTA1 -chrIV SGD CDS 916486 917154 . + . ID=YDR226W;Name=YDR226W;Alias=ADK1 -chrIV SGD CDS 917571 921647 . + . ID=YDR227W;Name=YDR227W;Alias=SIR4 -chrIV SGD CDS 921926 923806 . - . ID=YDR228C;Name=YDR228C;Alias=PCF11 -chrIV SGD CDS 924785 926146 . + . ID=YDR229W;Name=YDR229W;Alias=IVY1 -chrIV SGD CDS 926293 926910 . - . ID=YDR231C;Name=YDR231C;Alias=COX20 -chrIV SGD CDS 927452 929098 . + . ID=YDR232W;Name=YDR232W;Alias=HEM1 -chrIV SGD CDS 929470 930357 . - . ID=YDR233C;Name=YDR233C;Alias=RTN1 -chrIV SGD CDS 931129 933210 . + . ID=YDR234W;Name=YDR234W;Alias=LYS4 -chrIV SGD CDS 933504 935138 . + . ID=YDR235W;Name=YDR235W;Alias=PRP42 -chrIV SGD CDS 935236 935892 . - . ID=YDR236C;Name=YDR236C;Alias=FMN1 -chrIV SGD CDS 936615 937493 . + . ID=YDR237W;Name=YDR237W;Alias=MRPL7 -chrIV SGD CDS 937895 940816 . - . ID=YDR238C;Name=YDR238C;Alias=SEC26 -chrIV SGD CDS 941057 943420 . - . ID=YDR239C;Name=YDR239C;Alias= -chrIV SGD CDS 943674 945152 . - . ID=YDR240C;Name=YDR240C;Alias=SNU56 -chrIV SGD CDS 946807 948456 . + . ID=YDR242W;Name=YDR242W;Alias=AMD2 -chrIV SGD CDS 948518 950284 . - . ID=YDR243C;Name=YDR243C;Alias=PRP28 -chrIV SGD CDS 950563 952401 . + . ID=YDR244W;Name=YDR244W;Alias=PEX5 -chrIV SGD CDS 952800 953981 . + . ID=YDR245W;Name=YDR245W;Alias=MNN10 -chrIV SGD CDS 954288 954947 . + . ID=YDR246W;Name=YDR246W;Alias=TRS23 -chrIV SGD CDS 955133 955333 . + . ID=YDR246W-A;Name=YDR246W-A;Alias= -chrIV SGD CDS 956013 957398 . + . ID=YDR247W;Name=YDR247W;Alias=VHS1 -chrIV SGD CDS 957758 958339 . - . ID=YDR248C;Name=YDR248C;Alias= -chrIV SGD CDS 958681 959802 . - . ID=YDR249C;Name=YDR249C;Alias= -chrIV SGD CDS 960614 963106 . + . ID=YDR251W;Name=YDR251W;Alias=PAM1 -chrIV SGD CDS 963412 963861 . + . ID=YDR252W;Name=YDR252W;Alias=BTT1 -chrIV SGD CDS 963990 964565 . - . ID=YDR253C;Name=YDR253C;Alias=MET32 -chrIV SGD CDS 965113 966489 . + . ID=YDR254W;Name=YDR254W;Alias=CHL4 -chrIV SGD CDS 966557 967822 . - . ID=YDR255C;Name=YDR255C;Alias=RMD5 -chrIV SGD CDS 968133 969680 . - . ID=YDR256C;Name=YDR256C;Alias=CTA1 -chrIV SGD CDS 969990 971474 . - . ID=YDR257C;Name=YDR257C;Alias=RKM4 -chrIV SGD CDS 971808 974243 . - . ID=YDR258C;Name=YDR258C;Alias=HSP78 -chrIV SGD CDS 974631 975782 . - . ID=YDR259C;Name=YDR259C;Alias=YAP6 -chrIV SGD CDS 976717 977229 . - . ID=YDR260C;Name=YDR260C;Alias=SWM1 -chrIV SGD CDS 977521 979209 . - . ID=YDR261C;Name=YDR261C;Alias=EXG2 -chrIV SGD CDS 993134 993952 . + . ID=YDR262W;Name=YDR262W;Alias= -chrIV SGD CDS 994242 995534 . - . ID=YDR263C;Name=YDR263C;Alias=DIN7 -chrIV SGD CDS 996029 998323 . - . ID=YDR264C;Name=YDR264C;Alias=AKR1 -chrIV SGD CDS 998864 999877 . + . ID=YDR265W;Name=YDR265W;Alias=PEX10 -chrIV SGD CDS 1000104 1002023 . - . ID=YDR266C;Name=YDR266C;Alias=HEL2 -chrIV SGD CDS 1002510 1003502 . - . ID=YDR267C;Name=YDR267C;Alias=CIA1 -chrIV SGD CDS 1004004 1005143 . + . ID=YDR268W;Name=YDR268W;Alias=MSW1 -chrIV SGD CDS 1005675 1008689 . + . ID=YDR270W;Name=YDR270W;Alias=CCC2 -chrIV SGD CDS 1009010 1009834 . + . ID=YDR272W;Name=YDR272W;Alias=GLO2 -chrIV SGD CDS 1010176 1011273 . + . ID=YDR273W;Name=YDR273W;Alias=DON1 -chrIV SGD CDS 1012252 1012959 . + . ID=YDR275W;Name=YDR275W;Alias=BSC2 -chrIV SGD CDS 1013476 1013643 . - . ID=YDR276C;Name=YDR276C;Alias=PMP3 -chrIV SGD CDS 1014401 1015702 . - . ID=YDR277C;Name=YDR277C;Alias=MTH1 -chrIV SGD CDS 1019368 1020420 . + . ID=YDR279W;Name=YDR279W;Alias=RNH202 -chrIV SGD CDS 1020747 1021664 . + . ID=YDR280W;Name=YDR280W;Alias=RRP45 -chrIV SGD CDS 1022007 1022321 . - . ID=YDR281C;Name=YDR281C;Alias=PHM6 -chrIV SGD CDS 1023511 1024755 . - . ID=YDR282C;Name=YDR282C;Alias=MRX10 -chrIV SGD CDS 1025070 1030049 . - . ID=YDR283C;Name=YDR283C;Alias=GCN2 -chrIV SGD CDS 1030550 1031419 . - . ID=YDR284C;Name=YDR284C;Alias=DPP1 -chrIV SGD CDS 1032436 1035063 . + . ID=YDR285W;Name=YDR285W;Alias=ZIP1 -chrIV SGD CDS 1035231 1035575 . - . ID=YDR286C;Name=YDR286C;Alias= -chrIV SGD CDS 1035995 1036873 . + . ID=YDR287W;Name=YDR287W;Alias=INM2 -chrIV SGD CDS 1037195 1038106 . + . ID=YDR288W;Name=YDR288W;Alias=NSE3 -chrIV SGD CDS 1038280 1039509 . - . ID=YDR289C;Name=YDR289C;Alias=RTT103 -chrIV SGD CDS 1039728 1042961 . + . ID=YDR291W;Name=YDR291W;Alias=HRQ1 -chrIV SGD CDS 1043146 1045011 . - . ID=YDR292C;Name=YDR292C;Alias=SRP101 -chrIV SGD CDS 1045640 1049392 . - . ID=YDR293C;Name=YDR293C;Alias=SSD1 -chrIV SGD CDS 1050459 1052228 . - . ID=YDR294C;Name=YDR294C;Alias=DPL1 -chrIV SGD CDS 1052623 1054647 . - . ID=YDR295C;Name=YDR295C;Alias=HDA2 -chrIV SGD CDS 1055212 1055892 . + . ID=YDR296W;Name=YDR296W;Alias=MHR1 -chrIV SGD CDS 1056551 1057600 . + . ID=YDR297W;Name=YDR297W;Alias=SUR2 -chrIV SGD CDS 1058176 1058814 . - . ID=YDR298C;Name=YDR298C;Alias=ATP5 -chrIV SGD CDS 1059627 1061231 . + . ID=YDR299W;Name=YDR299W;Alias=BFR2 -chrIV SGD CDS 1061505 1062791 . - . ID=YDR300C;Name=YDR300C;Alias=PRO1 -chrIV SGD CDS 1063352 1067425 . + . ID=YDR301W;Name=YDR301W;Alias=CFT1 -chrIV SGD CDS 1067731 1068390 . + . ID=YDR302W;Name=YDR302W;Alias=GPI11 -chrIV SGD CDS 1068729 1071386 . - . ID=YDR303C;Name=YDR303C;Alias=RSC3 -chrIV SGD CDS 1071880 1072557 . - . ID=YDR304C;Name=YDR304C;Alias=CPR5 -chrIV SGD CDS 1072746 1073488 . - . ID=YDR305C;Name=YDR305C;Alias=HNT2 -chrIV SGD CDS 1073735 1075171 . - . ID=YDR306C;Name=YDR306C;Alias= -chrIV SGD CDS 1075865 1077853 . + . ID=YDR307W;Name=YDR307W;Alias=PMT7 -chrIV SGD CDS 1078027 1078449 . - . ID=YDR308C;Name=YDR308C;Alias=SRB7 -chrIV SGD CDS 1079048 1080199 . - . ID=YDR309C;Name=YDR309C;Alias=GIC2 -chrIV SGD CDS 1081128 1084316 . - . ID=YDR310C;Name=YDR310C;Alias=SUM1 -chrIV SGD CDS 1085065 1086993 . + . ID=YDR311W;Name=YDR311W;Alias=TFB1 -chrIV SGD CDS 1087581 1088942 . + . ID=YDR312W;Name=YDR312W;Alias=SSF2 -chrIV SGD CDS 1089219 1090079 . - . ID=YDR313C;Name=YDR313C;Alias=PIB1 -chrIV SGD CDS 1090433 1092511 . - . ID=YDR314C;Name=YDR314C;Alias=RAD34 -chrIV SGD CDS 1092741 1093586 . - . ID=YDR315C;Name=YDR315C;Alias=IPK1 -chrIV SGD CDS 1093763 1095178 . + . ID=YDR316W;Name=YDR316W;Alias=OMS1 -chrIV SGD CDS 1102184 1103428 . + . ID=YDR317W;Name=YDR317W;Alias=HIM1 -chrIV SGD CDS 1103758 1104947 . + . ID=YDR318W;Name=YDR318W;Alias=MCM21 -chrIV SGD CDS 1105003 1105827 . - . ID=YDR319C;Name=YDR319C;Alias=YFT2 -chrIV SGD CDS 1106095 1108101 . - . ID=YDR320C;Name=YDR320C;Alias=SWA2 -chrIV SGD CDS 1108280 1108498 . - . ID=YDR320C-A;Name=YDR320C-A;Alias=DAD4 -chrIV SGD CDS 1108702 1109847 . + . ID=YDR321W;Name=YDR321W;Alias=ASP1 -chrIV SGD CDS 1110589 1111692 . + . ID=YDR322W;Name=YDR322W;Alias=MRPL35 -chrIV SGD CDS 1112003 1112293 . - . ID=YDR322C-A;Name=YDR322C-A;Alias=TIM11 -chrIV SGD CDS 1112480 1114027 . - . ID=YDR323C;Name=YDR323C;Alias=PEP7 -chrIV SGD CDS 1114433 1116763 . - . ID=YDR324C;Name=YDR324C;Alias=UTP4 -chrIV SGD CDS 1117126 1120233 . + . ID=YDR325W;Name=YDR325W;Alias=YCG1 -chrIV SGD CDS 1120609 1124925 . - . ID=YDR326C;Name=YDR326C;Alias=YSP2 -chrIV SGD CDS 1125434 1126018 . - . ID=YDR328C;Name=YDR328C;Alias=SKP1 -chrIV SGD CDS 1126270 1127595 . - . ID=YDR329C;Name=YDR329C;Alias=PEX3 -chrIV SGD CDS 1127872 1129374 . + . ID=YDR330W;Name=YDR330W;Alias=UBX5 -chrIV SGD CDS 1129588 1130823 . + . ID=YDR331W;Name=YDR331W;Alias=GPI8 -chrIV SGD CDS 1131001 1133070 . + . ID=YDR332W;Name=YDR332W;Alias=IRC3 -chrIV SGD CDS 1133260 1135431 . - . ID=YDR333C;Name=YDR333C;Alias=RQC1 -chrIV SGD CDS 1135932 1140476 . + . ID=YDR334W;Name=YDR334W;Alias=SWR1 -chrIV SGD CDS 1141168 1144842 . + . ID=YDR335W;Name=YDR335W;Alias=MSN5 -chrIV SGD CDS 1145092 1146036 . + . ID=YDR336W;Name=YDR336W;Alias=MRX8 -chrIV SGD CDS 1146319 1147179 . + . ID=YDR337W;Name=YDR337W;Alias=MRPS28 -chrIV SGD CDS 1147379 1149466 . - . ID=YDR338C;Name=YDR338C;Alias= -chrIV SGD CDS 1149951 1150520 . - . ID=YDR339C;Name=YDR339C;Alias=FCF1 -chrIV SGD CDS 1151803 1153626 . - . ID=YDR341C;Name=YDR341C;Alias= -chrIV SGD CDS 1154216 1155928 . - . ID=YDR342C;Name=YDR342C;Alias=HXT7 -chrIV SGD CDS 1159608 1161320 . - . ID=YDR343C;Name=YDR343C;Alias=HXT6 -chrIV SGD CDS 1162957 1164660 . - . ID=YDR345C;Name=YDR345C;Alias=HXT3 -chrIV SGD CDS 1167214 1168659 . - . ID=YDR346C;Name=YDR346C;Alias=SVF1 -chrIV SGD CDS 1169178 1170143 . + . ID=YDR347W;Name=YDR347W;Alias=MRP1 -chrIV SGD CDS 1170326 1171825 . - . ID=YDR348C;Name=YDR348C;Alias=PAL1 -chrIV SGD CDS 1172386 1174176 . - . ID=YDR349C;Name=YDR349C;Alias=YPS7 -chrIV SGD CDS 1176120 1178174 . - . ID=YDR350C;Name=YDR350C;Alias=ATP22 -chrIV SGD CDS 1178666 1181260 . + . ID=YDR351W;Name=YDR351W;Alias=SBE2 -chrIV SGD CDS 1181801 1182754 . + . ID=YDR352W;Name=YDR352W;Alias=YPQ2 -chrIV SGD CDS 1183299 1184258 . + . ID=YDR353W;Name=YDR353W;Alias=TRR1 -chrIV SGD CDS 1184747 1185889 . + . ID=YDR354W;Name=YDR354W;Alias=TRP4 -chrIV SGD CDS 1186107 1188941 . + . ID=YDR356W;Name=YDR356W;Alias=SPC110 -chrIV SGD CDS 1189199 1189567 . - . ID=YDR357C;Name=YDR357C;Alias=CNL1 -chrIV SGD CDS 1190059 1191732 . + . ID=YDR358W;Name=YDR358W;Alias=GGA1 -chrIV SGD CDS 1191936 1194884 . - . ID=YDR359C;Name=YDR359C;Alias=EAF1 -chrIV SGD CDS 1195412 1196263 . - . ID=YDR361C;Name=YDR361C;Alias=BCP1 -chrIV SGD CDS 1196679 1198697 . - . ID=YDR362C;Name=YDR362C;Alias=TFC6 -chrIV SGD CDS 1199183 1200553 . + . ID=YDR363W;Name=YDR363W;Alias=ESC2 -chrIV SGD CDS 1202128 1202397 . + . ID=YDR363W-A;Name=YDR363W-A;Alias=SEM1 -chrIV SGD CDS 1202843 1204210 . - . ID=YDR364C;Name=YDR364C;Alias=CDC40 -chrIV SGD CDS 1204497 1206383 . - . ID=YDR365C;Name=YDR365C;Alias=ESF1 -chrIV SGD CDS 1212438 1212836 . - . ID=YDR366C;Name=YDR366C;Alias= -chrIV SGD CDS 1212848 1213614 . + . ID=YDR367W;Name=YDR367W;Alias=KEI1 -chrIV SGD CDS 1213904 1214842 . + . ID=YDR368W;Name=YDR368W;Alias=YPR1 -chrIV SGD CDS 1215016 1217580 . - . ID=YDR369C;Name=YDR369C;Alias=XRS2 -chrIV SGD CDS 1217782 1219110 . - . ID=YDR370C;Name=YDR370C;Alias=DXO1 -chrIV SGD CDS 1219413 1220948 . + . ID=YDR371W;Name=YDR371W;Alias=CTS2 -chrIV SGD CDS 1221112 1222149 . - . ID=YDR372C;Name=YDR372C;Alias=VPS74 -chrIV SGD CDS 1222759 1223331 . + . ID=YDR373W;Name=YDR373W;Alias=FRQ1 -chrIV SGD CDS 1223474 1224394 . - . ID=YDR374C;Name=YDR374C;Alias=PHO92 -chrIV SGD CDS 1224757 1225026 . + . ID=YDR374W-A;Name=YDR374W-A;Alias=WIP1 -chrIV SGD CDS 1225166 1226536 . - . ID=YDR375C;Name=YDR375C;Alias=BCS1 -chrIV SGD CDS 1226822 1228303 . + . ID=YDR376W;Name=YDR376W;Alias=ARH1 -chrIV SGD CDS 1228611 1228916 . + . ID=YDR377W;Name=YDR377W;Alias=ATP17 -chrIV SGD CDS 1229349 1229609 . - . ID=YDR378C;Name=YDR378C;Alias=LSM6 -chrIV SGD CDS 1230167 1233196 . + . ID=YDR379W;Name=YDR379W;Alias=RGA2 -chrIV SGD CDS 1233278 1233517 . - . ID=YDR379C-A;Name=YDR379C-A;Alias=SDH6 -chrIV SGD CDS 1234218 1236125 . + . ID=YDR380W;Name=YDR380W;Alias=ARO10 -chrIV SGD CDS 1236558 1238004 . + . ID=YDR381W;Name=YDR381W;Alias=YRA1 -chrIV SGD CDS 1238312 1238850 . - . ID=YDR381C-A;Name=YDR381C-A;Alias= -chrIV SGD CDS 1239492 1239824 . + . ID=YDR382W;Name=YDR382W;Alias=RPP2B -chrIV SGD CDS 1239960 1240676 . - . ID=YDR383C;Name=YDR383C;Alias=NKP1 -chrIV SGD CDS 1241204 1242031 . - . ID=YDR384C;Name=YDR384C;Alias=ATO3 -chrIV SGD CDS 1243230 1245758 . + . ID=YDR385W;Name=YDR385W;Alias=EFT2 -chrIV SGD CDS 1246084 1247982 . + . ID=YDR386W;Name=YDR386W;Alias=MUS81 -chrIV SGD CDS 1248154 1249821 . - . ID=YDR387C;Name=YDR387C;Alias=CIN10 -chrIV SGD CDS 1250186 1251634 . + . ID=YDR388W;Name=YDR388W;Alias=RVS167 -chrIV SGD CDS 1252537 1254501 . + . ID=YDR389W;Name=YDR389W;Alias=SAC7 -chrIV SGD CDS 1254937 1256847 . - . ID=YDR390C;Name=YDR390C;Alias=UBA2 -chrIV SGD CDS 1257358 1258056 . - . ID=YDR391C;Name=YDR391C;Alias= -chrIV SGD CDS 1258696 1259709 . + . ID=YDR392W;Name=YDR392W;Alias=SPT3 -chrIV SGD CDS 1259901 1261271 . + . ID=YDR393W;Name=YDR393W;Alias=SHE9 -chrIV SGD CDS 1261681 1262967 . + . ID=YDR394W;Name=YDR394W;Alias=RPT3 -chrIV SGD CDS 1263324 1266158 . + . ID=YDR395W;Name=YDR395W;Alias=SXM1 -chrIV SGD CDS 1266366 1266898 . - . ID=YDR397C;Name=YDR397C;Alias=NCB2 -chrIV SGD CDS 1267471 1269402 . + . ID=YDR398W;Name=YDR398W;Alias=UTP5 -chrIV SGD CDS 1270068 1270733 . + . ID=YDR399W;Name=YDR399W;Alias=HPT1 -chrIV SGD CDS 1271063 1272085 . + . ID=YDR400W;Name=YDR400W;Alias=URH1 -chrIV SGD CDS 1272234 1273703 . - . ID=YDR402C;Name=YDR402C;Alias=DIT2 -chrIV SGD CDS 1274602 1276212 . + . ID=YDR403W;Name=YDR403W;Alias=DIT1 -chrIV SGD CDS 1276654 1277169 . - . ID=YDR404C;Name=YDR404C;Alias=RPB7 -chrIV SGD CDS 1277646 1278437 . + . ID=YDR405W;Name=YDR405W;Alias=MRP20 -chrIV SGD CDS 1279210 1283799 . + . ID=YDR406W;Name=YDR406W;Alias=PDR15 -chrIV SGD CDS 1284069 1287938 . - . ID=YDR407C;Name=YDR407C;Alias=TRS120 -chrIV SGD CDS 1288215 1288859 . - . ID=YDR408C;Name=YDR408C;Alias=ADE8 -chrIV SGD CDS 1289406 1292120 . + . ID=YDR409W;Name=YDR409W;Alias=SIZ1 -chrIV SGD CDS 1292372 1293091 . - . ID=YDR410C;Name=YDR410C;Alias=STE14 -chrIV SGD CDS 1293369 1294394 . - . ID=YDR411C;Name=YDR411C;Alias=DFM1 -chrIV SGD CDS 1294693 1295400 . + . ID=YDR412W;Name=YDR412W;Alias=RRP17 -chrIV SGD CDS 1295598 1296686 . - . ID=YDR414C;Name=YDR414C;Alias=ERD1 -chrIV SGD CDS 1297037 1298161 . - . ID=YDR415C;Name=YDR415C;Alias= -chrIV SGD CDS 1298432 1301011 . + . ID=YDR416W;Name=YDR416W;Alias=SYF1 -chrIV SGD CDS 1301616 1302113 . + . ID=YDR418W;Name=YDR418W;Alias=RPL12B -chrIV SGD CDS 1303174 1305072 . + . ID=YDR419W;Name=YDR419W;Alias=RAD30 -chrIV SGD CDS 1306267 1311675 . + . ID=YDR420W;Name=YDR420W;Alias=HKR1 -chrIV SGD CDS 1312040 1314892 . + . ID=YDR421W;Name=YDR421W;Alias=ARO80 -chrIV SGD CDS 1315326 1317773 . - . ID=YDR422C;Name=YDR422C;Alias=SIP1 -chrIV SGD CDS 1318046 1319275 . - . ID=YDR423C;Name=YDR423C;Alias=CAD1 -chrIV SGD CDS 1319387 1319841 . - . ID=YDR424C;Name=YDR424C;Alias=DYN2 -chrIV SGD CDS 1320064 1321941 . + . ID=YDR425W;Name=YDR425W;Alias=SNX41 -chrIV SGD CDS 1322205 1323386 . + . ID=YDR427W;Name=YDR427W;Alias=RPN9 -chrIV SGD CDS 1323454 1324239 . - . ID=YDR428C;Name=YDR428C;Alias=BNA7 -chrIV SGD CDS 1324477 1325301 . - . ID=YDR429C;Name=YDR429C;Alias=TIF35 -chrIV SGD CDS 1325501 1328470 . - . ID=YDR430C;Name=YDR430C;Alias=CYM1 -chrIV SGD CDS 1328783 1330027 . + . ID=YDR432W;Name=YDR432W;Alias=NPL3 -chrIV SGD CDS 1331237 1332841 . + . ID=YDR434W;Name=YDR434W;Alias=GPI17 -chrIV SGD CDS 1332983 1333969 . - . ID=YDR435C;Name=YDR435C;Alias=PPM1 -chrIV SGD CDS 1334821 1336953 . + . ID=YDR436W;Name=YDR436W;Alias=PPZ2 -chrIV SGD CDS 1337352 1337774 . + . ID=YDR437W;Name=YDR437W;Alias=GPI19 -chrIV SGD CDS 1338274 1339386 . + . ID=YDR438W;Name=YDR438W;Alias=THI74 -chrIV SGD CDS 1339676 1340719 . + . ID=YDR439W;Name=YDR439W;Alias=LRS4 -chrIV SGD CDS 1342493 1344241 . + . ID=YDR440W;Name=YDR440W;Alias=DOT1 -chrIV SGD CDS 1344517 1345062 . - . ID=YDR441C;Name=YDR441C;Alias=APT2 -chrIV SGD CDS 1345676 1349938 . - . ID=YDR443C;Name=YDR443C;Alias=SSN2 -chrIV SGD CDS 1350290 1352353 . + . ID=YDR444W;Name=YDR444W;Alias= -chrIV SGD CDS 1353725 1354633 . + . ID=YDR446W;Name=YDR446W;Alias=ECM11 -chrIV SGD CDS 1354829 1355553 . - . ID=YDR447C;Name=YDR447C;Alias=RPS17B -chrIV SGD CDS 1356065 1357369 . + . ID=YDR448W;Name=YDR448W;Alias=ADA2 -chrIV SGD CDS 1357580 1358902 . - . ID=YDR449C;Name=YDR449C;Alias=UTP6 -chrIV SGD CDS 1359923 1360798 . + . ID=YDR450W;Name=YDR450W;Alias=RPS18A -chrIV SGD CDS 1361120 1362181 . - . ID=YDR451C;Name=YDR451C;Alias=YHP1 -chrIV SGD CDS 1362878 1364902 . + . ID=YDR452W;Name=YDR452W;Alias=PPN1 -chrIV SGD CDS 1365072 1365662 . - . ID=YDR453C;Name=YDR453C;Alias=TSA2 -chrIV SGD CDS 1366264 1366827 . - . ID=YDR454C;Name=YDR454C;Alias=GUK1 -chrIV SGD CDS 1367485 1369386 . + . ID=YDR456W;Name=YDR456W;Alias=NHX1 -chrIV SGD CDS 1369790 1379596 . + . ID=YDR457W;Name=YDR457W;Alias=TOM1 -chrIV SGD CDS 1380055 1382046 . - . ID=YDR458C;Name=YDR458C;Alias=HEH2 -chrIV SGD CDS 1382319 1383443 . - . ID=YDR459C;Name=YDR459C;Alias=PFA5 -chrIV SGD CDS 1383811 1384776 . + . ID=YDR460W;Name=YDR460W;Alias=TFB3 -chrIV SGD CDS 1385176 1385286 . + . ID=YDR461W;Name=YDR461W;Alias=MFA1 -chrIV SGD CDS 1385524 1385766 . - . ID=YDR461C-A;Name=YDR461C-A;Alias= -chrIV SGD CDS 1386073 1386516 . + . ID=YDR462W;Name=YDR462W;Alias=MRPL28 -chrIV SGD CDS 1386816 1388375 . + . ID=YDR463W;Name=YDR463W;Alias=STP1 -chrIV SGD CDS 1388872 1393179 . + . ID=YDR464W;Name=YDR464W;Alias=SPP41 -chrIV SGD CDS 1393336 1394574 . - . ID=YDR465C;Name=YDR465C;Alias=RMT2 -chrIV SGD CDS 1395121 1397817 . + . ID=YDR466W;Name=YDR466W;Alias=PKH3 -chrIV SGD CDS 1398026 1398700 . - . ID=YDR468C;Name=YDR468C;Alias=TLG1 -chrIV SGD CDS 1399015 1399542 . + . ID=YDR469W;Name=YDR469W;Alias=SDC1 -chrIV SGD CDS 1399706 1401214 . - . ID=YDR470C;Name=YDR470C;Alias=UGO1 -chrIV SGD CDS 1401770 1402564 . + . ID=YDR471W;Name=YDR471W;Alias=RPL27B -chrIV SGD CDS 1403322 1404173 . + . ID=YDR472W;Name=YDR472W;Alias=TRS31 -chrIV SGD CDS 1404445 1405854 . - . ID=YDR473C;Name=YDR473C;Alias=PRP3 -chrIV SGD CDS 1407464 1410094 . - . ID=YDR475C;Name=YDR475C;Alias=JIP4 -chrIV SGD CDS 1410453 1411127 . - . ID=YDR476C;Name=YDR476C;Alias= -chrIV SGD CDS 1412373 1414274 . + . ID=YDR477W;Name=YDR477W;Alias=SNF1 -chrIV SGD CDS 1414575 1415171 . + . ID=YDR478W;Name=YDR478W;Alias=SNM1 -chrIV SGD CDS 1415210 1416874 . - . ID=YDR479C;Name=YDR479C;Alias=PEX29 -chrIV SGD CDS 1417399 1418370 . + . ID=YDR480W;Name=YDR480W;Alias=DIG2 -chrIV SGD CDS 1418550 1420250 . - . ID=YDR481C;Name=YDR481C;Alias=PHO8 -chrIV SGD CDS 1420431 1420838 . - . ID=YDR482C;Name=YDR482C;Alias=CWC21 -chrIV SGD CDS 1421157 1422485 . + . ID=YDR483W;Name=YDR483W;Alias=KRE2 -chrIV SGD CDS 1422763 1424688 . + . ID=YDR484W;Name=YDR484W;Alias=VPS52 -chrIV SGD CDS 1424820 1427207 . - . ID=YDR485C;Name=YDR485C;Alias=VPS72 -chrIV SGD CDS 1427431 1428120 . - . ID=YDR486C;Name=YDR486C;Alias=VPS60 -chrIV SGD CDS 1428354 1428980 . - . ID=YDR487C;Name=YDR487C;Alias=RIB3 -chrIV SGD CDS 1429188 1430789 . - . ID=YDR488C;Name=YDR488C;Alias=PAC11 -chrIV SGD CDS 1431012 1431896 . + . ID=YDR489W;Name=YDR489W;Alias=SLD5 -chrIV SGD CDS 1431968 1434268 . - . ID=YDR490C;Name=YDR490C;Alias=PKH1 -chrIV SGD CDS 1434924 1435874 . + . ID=YDR492W;Name=YDR492W;Alias=IZH1 -chrIV SGD CDS 1436217 1436588 . + . ID=YDR493W;Name=YDR493W;Alias=MZM1 -chrIV SGD CDS 1436930 1438015 . + . ID=YDR494W;Name=YDR494W;Alias=RSM28 -chrIV SGD CDS 1438115 1441150 . - . ID=YDR495C;Name=YDR495C;Alias=VPS3 -chrIV SGD CDS 1441433 1443403 . - . ID=YDR496C;Name=YDR496C;Alias=PUF6 -chrIV SGD CDS 1443713 1445467 . - . ID=YDR497C;Name=YDR497C;Alias=ITR1 -chrIV SGD CDS 1445843 1446994 . - . ID=YDR498C;Name=YDR498C;Alias=SEC20 -chrIV SGD CDS 1447830 1450073 . + . ID=YDR499W;Name=YDR499W;Alias=LCD1 -chrIV SGD CDS 1450198 1450853 . - . ID=YDR500C;Name=YDR500C;Alias=RPL37B -chrIV SGD CDS 1451353 1452918 . + . ID=YDR501W;Name=YDR501W;Alias=PLM2 -chrIV SGD CDS 1453310 1454464 . - . ID=YDR502C;Name=YDR502C;Alias=SAM2 -chrIV SGD CDS 1455042 1455866 . - . ID=YDR503C;Name=YDR503C;Alias=LPP1 -chrIV SGD CDS 1456311 1456694 . - . ID=YDR504C;Name=YDR504C;Alias=SPG3 -chrIV SGD CDS 1456695 1459220 . - . ID=YDR505C;Name=YDR505C;Alias=PSP1 -chrIV SGD CDS 1459728 1461554 . - . ID=YDR506C;Name=YDR506C;Alias=GMC1 -chrIV SGD CDS 1462358 1465786 . - . ID=YDR507C;Name=YDR507C;Alias=GIN4 -chrIV SGD CDS 1466453 1468444 . - . ID=YDR508C;Name=YDR508C;Alias=GNP1 -chrIV SGD CDS 1469400 1469705 . + . ID=YDR510W;Name=YDR510W;Alias=SMT3 -chrIV SGD CDS 1470017 1470418 . + . ID=YDR511W;Name=YDR511W;Alias=SDH7 -chrIV SGD CDS 1470500 1471063 . - . ID=YDR512C;Name=YDR512C;Alias=EMI1 -chrIV SGD CDS 1471017 1471448 . + . ID=YDR513W;Name=YDR513W;Alias=GRX2 -chrIV SGD CDS 1471548 1472999 . - . ID=YDR514C;Name=YDR514C;Alias= -chrIV SGD CDS 1473429 1474772 . + . ID=YDR515W;Name=YDR515W;Alias=SLF1 -chrIV SGD CDS 1474974 1476476 . - . ID=YDR516C;Name=YDR516C;Alias=EMI2 -chrIV SGD CDS 1477239 1478357 . + . ID=YDR517W;Name=YDR517W;Alias=GRH1 -chrIV SGD CDS 1478608 1480161 . + . ID=YDR518W;Name=YDR518W;Alias=EUG1 -chrIV SGD CDS 1480425 1480832 . + . ID=YDR519W;Name=YDR519W;Alias=FPR2 -chrIV SGD CDS 1481085 1483403 . - . ID=YDR520C;Name=YDR520C;Alias=URC2 -chrIV SGD CDS 1483795 1485303 . - . ID=YDR522C;Name=YDR522C;Alias=SPS2 -chrIV SGD CDS 1485566 1487038 . - . ID=YDR523C;Name=YDR523C;Alias=SPS1 -chrIV SGD CDS 1487542 1488990 . - . ID=YDR524C;Name=YDR524C;Alias=AGE1 -chrIV SGD CDS 1489403 1489492 . + . ID=YDR524W-C;Name=YDR524W-C;Alias= -chrIV SGD CDS 1489598 1489798 . - . ID=YDR524C-B;Name=YDR524C-B;Alias= -chrIV SGD CDS 1490596 1490835 . + . ID=YDR525W-A;Name=YDR525W-A;Alias=SNA2 -chrIV SGD CDS 1491094 1492413 . + . ID=YDR527W;Name=YDR527W;Alias=RBA50 -chrIV SGD CDS 1494586 1495857 . + . ID=YDR528W;Name=YDR528W;Alias=HLR1 -chrIV SGD CDS 1496165 1496548 . - . ID=YDR529C;Name=YDR529C;Alias=QCR7 -chrIV SGD CDS 1496791 1497768 . - . ID=YDR530C;Name=YDR530C;Alias=APA2 -chrIV SGD CDS 1498232 1499335 . + . ID=YDR531W;Name=YDR531W;Alias=CAB1 -chrIV SGD CDS 1499396 1500553 . - . ID=YDR532C;Name=YDR532C;Alias=KRE28 -chrIV SGD CDS 1501447 1502160 . - . ID=YDR533C;Name=YDR533C;Alias=HSP31 -chrIV SGD CDS 1503314 1504900 . - . ID=YDR534C;Name=YDR534C;Alias=FIT1 -chrIV SGD CDS 1508005 1509714 . + . ID=YDR536W;Name=YDR536W;Alias=STL1 -chrIV SGD CDS 1510902 1511630 . + . ID=YDR538W;Name=YDR538W;Alias=PAD1 -chrIV SGD CDS 1512094 1513605 . + . ID=YDR539W;Name=YDR539W;Alias=FDC1 -chrIV SGD CDS 1517136 1517675 . - . ID=YDR540C;Name=YDR540C;Alias=IRC4 -chrIV SGD CDS 1519664 1520698 . - . ID=YDR541C;Name=YDR541C;Alias= -chrIV SGD CDS 1523249 1523611 . + . ID=YDR542W;Name=YDR542W;Alias=PAU10 -chrIV SGD CDS 1526321 1531711 . + . ID=YDR545W;Name=YDR545W;Alias=YRF1-1 -chrV SGD CDS 264 4097 . - . ID=YEL077C;Name=YEL077C;Alias= -chrV SGD CDS 4185 5114 . - . ID=YEL076C-A;Name=YEL076C-A;Alias= -chrV SGD CDS 4464 5114 . - . ID=YEL076C;Name=YEL076C;Alias= -chrV SGD CDS 5345 5713 . - . ID=YEL075C;Name=YEL075C;Alias= -chrV SGD CDS 7230 7553 . - . ID=YEL073C;Name=YEL073C;Alias= -chrV SGD CDS 13720 14415 . + . ID=YEL072W;Name=YEL072W;Alias=RMD6 -chrV SGD CDS 16355 17845 . + . ID=YEL071W;Name=YEL071W;Alias=DLD3 -chrV SGD CDS 19589 21097 . + . ID=YEL070W;Name=YEL070W;Alias=DSF1 -chrV SGD CDS 21537 23231 . - . ID=YEL069C;Name=YEL069C;Alias=HXT13 -chrV SGD CDS 25646 25978 . - . ID=YEL068C;Name=YEL068C;Alias= -chrV SGD CDS 26189 26776 . - . ID=YEL067C;Name=YEL067C;Alias= -chrV SGD CDS 26667 27206 . + . ID=YEL066W;Name=YEL066W;Alias=HPA3 -chrV SGD CDS 27657 29543 . + . ID=YEL065W;Name=YEL065W;Alias=SIT1 -chrV SGD CDS 29797 31239 . - . ID=YEL064C;Name=YEL064C;Alias=AVT2 -chrV SGD CDS 31694 33466 . - . ID=YEL063C;Name=YEL063C;Alias=CAN1 -chrV SGD CDS 34407 36254 . + . ID=YEL062W;Name=YEL062W;Alias=NPR2 -chrV SGD CDS 36535 39537 . - . ID=YEL061C;Name=YEL061C;Alias=CIN8 -chrV SGD CDS 40046 41953 . - . ID=YEL060C;Name=YEL060C;Alias=PRB1 -chrV SGD CDS 42400 42624 . - . ID=YEL059C-A;Name=YEL059C-A;Alias=SOM1 -chrV SGD CDS 43252 44925 . + . ID=YEL058W;Name=YEL058W;Alias=PCM1 -chrV SGD CDS 45020 45721 . - . ID=YEL057C;Name=YEL057C;Alias=SDD1 -chrV SGD CDS 47168 48373 . + . ID=YEL056W;Name=YEL056W;Alias=HAT2 -chrV SGD CDS 48471 51539 . - . ID=YEL055C;Name=YEL055C;Alias=POL5 -chrV SGD CDS 52721 53218 . - . ID=YEL054C;Name=YEL054C;Alias=RPL12A -chrV SGD CDS 53901 56102 . - . ID=YEL053C;Name=YEL053C;Alias=MAK10 -chrV SGD CDS 56571 58100 . + . ID=YEL052W;Name=YEL052W;Alias=AFG1 -chrV SGD CDS 58378 59148 . + . ID=YEL051W;Name=YEL051W;Alias=VMA8 -chrV SGD CDS 59670 60851 . - . ID=YEL050C;Name=YEL050C;Alias=RML2 -chrV SGD CDS 63728 64090 . + . ID=YEL049W;Name=YEL049W;Alias=PAU2 -chrV SGD CDS 64709 65167 . - . ID=YEL048C;Name=YEL048C;Alias=TCA17 -chrV SGD CDS 65385 66797 . - . ID=YEL047C;Name=YEL047C;Alias=FRD1 -chrV SGD CDS 67629 68792 . - . ID=YEL046C;Name=YEL046C;Alias=GLY1 -chrV SGD CDS 69757 70257 . + . ID=YEL044W;Name=YEL044W;Alias=IES6 -chrV SGD CDS 70478 73348 . + . ID=YEL043W;Name=YEL043W;Alias= -chrV SGD CDS 73771 75327 . + . ID=YEL042W;Name=YEL042W;Alias=GDA1 -chrV SGD CDS 75944 77431 . + . ID=YEL041W;Name=YEL041W;Alias=YEF1 -chrV SGD CDS 78053 79456 . + . ID=YEL040W;Name=YEL040W;Alias=UTR2 -chrV SGD CDS 79636 79977 . - . ID=YEL039C;Name=YEL039C;Alias=CYC7 -chrV SGD CDS 80462 81145 . + . ID=YEL038W;Name=YEL038W;Alias=UTR4 -chrV SGD CDS 81407 82603 . - . ID=YEL037C;Name=YEL037C;Alias=RAD23 -chrV SGD CDS 83050 84552 . - . ID=YEL036C;Name=YEL036C;Alias=ANP1 -chrV SGD CDS 85045 85545 . - . ID=YEL035C;Name=YEL035C;Alias=UTR5 -chrV SGD CDS 85676 86149 . + . ID=YEL034W;Name=YEL034W;Alias=HYP2 -chrV SGD CDS 86179 86598 . + . ID=YEL033W;Name=YEL033W;Alias=MTC7 -chrV SGD CDS 86937 89852 . + . ID=YEL032W;Name=YEL032W;Alias=MCM3 -chrV SGD CDS 90258 93905 . + . ID=YEL031W;Name=YEL031W;Alias=SPF1 -chrV SGD CDS 94644 96578 . + . ID=YEL030W;Name=YEL030W;Alias=ECM10 -chrV SGD CDS 96858 97796 . - . ID=YEL029C;Name=YEL029C;Alias=BUD16 -chrV SGD CDS 100769 101251 . + . ID=YEL027W;Name=YEL027W;Alias=VMA3 -chrV SGD CDS 101943 102323 . + . ID=YEL026W;Name=YEL026W;Alias=SNU13 -chrV SGD CDS 102581 106147 . - . ID=YEL025C;Name=YEL025C;Alias= -chrV SGD CDS 107260 107907 . + . ID=YEL024W;Name=YEL024W;Alias=RIP1 -chrV SGD CDS 108504 110552 . - . ID=YEL023C;Name=YEL023C;Alias= -chrV SGD CDS 111421 115800 . + . ID=YEL022W;Name=YEL022W;Alias=GEA2 -chrV SGD CDS 116167 116970 . + . ID=YEL021W;Name=YEL021W;Alias=URA3 -chrV SGD CDS 117211 117474 . + . ID=YEL020W-A;Name=YEL020W-A;Alias=TIM9 -chrV SGD CDS 118617 120299 . - . ID=YEL020C;Name=YEL020C;Alias=PXP1 -chrV SGD CDS 120498 121301 . - . ID=YEL019C;Name=YEL019C;Alias=MMS21 -chrV SGD CDS 121471 122310 . + . ID=YEL018W;Name=YEL018W;Alias=EAF5 -chrV SGD CDS 122798 122929 . - . ID=YEL017C-A;Name=YEL017C-A;Alias=PMP2 -chrV SGD CDS 123657 124670 . + . ID=YEL017W;Name=YEL017W;Alias=GTT3 -chrV SGD CDS 124737 126218 . - . ID=YEL016C;Name=YEL016C;Alias=NPP2 -chrV SGD CDS 126629 128284 . + . ID=YEL015W;Name=YEL015W;Alias=EDC3 -chrV SGD CDS 128825 130561 . + . ID=YEL013W;Name=YEL013W;Alias=VAC8 -chrV SGD CDS 131772 132551 . + . ID=YEL012W;Name=YEL012W;Alias=UBC8 -chrV SGD CDS 133120 135234 . + . ID=YEL011W;Name=YEL011W;Alias=GLC3 -chrV SGD CDS 138918 139763 . - . ID=YEL009C;Name=YEL009C;Alias=GCN4 -chrV SGD CDS 141892 143892 . + . ID=YEL007W;Name=YEL007W;Alias=MIT1 -chrV SGD CDS 144327 145334 . + . ID=YEL006W;Name=YEL006W;Alias=YEA6 -chrV SGD CDS 145907 146755 . - . ID=YEL005C;Name=YEL005C;Alias=VAB2 -chrV SGD CDS 146951 147979 . + . ID=YEL004W;Name=YEL004W;Alias=YEA4 -chrV SGD CDS 148176 148599 . + . ID=YEL003W;Name=YEL003W;Alias=GIM4 -chrV SGD CDS 148722 150014 . - . ID=YEL002C;Name=YEL002C;Alias=WBP1 -chrV SGD CDS 150301 150978 . - . ID=YEL001C;Name=YEL001C;Alias=IRC22 -chrV SGD CDS 153520 155808 . + . ID=YER001W;Name=YER001W;Alias=MNN1 -chrV SGD CDS 156803 157498 . + . ID=YER002W;Name=YER002W;Alias=NOP16 -chrV SGD CDS 157736 159118 . - . ID=YER003C;Name=YER003C;Alias=PMI40 -chrV SGD CDS 159580 160275 . + . ID=YER004W;Name=YER004W;Alias=FMP52 -chrV SGD CDS 160550 162442 . + . ID=YER005W;Name=YER005W;Alias=YND1 -chrV SGD CDS 162723 164285 . + . ID=YER006W;Name=YER006W;Alias=NUG1 -chrV SGD CDS 164527 166083 . + . ID=YER007W;Name=YER007W;Alias=PAC2 -chrV SGD CDS 166237 166885 . - . ID=YER007C-A;Name=YER007C-A;Alias=TMA20 -chrV SGD CDS 167808 171818 . - . ID=YER008C;Name=YER008C;Alias=SEC3 -chrV SGD CDS 172115 172492 . + . ID=YER009W;Name=YER009W;Alias=NTF2 -chrV SGD CDS 172634 173338 . - . ID=YER010C;Name=YER010C;Alias= -chrV SGD CDS 175248 176012 . + . ID=YER011W;Name=YER011W;Alias=TIR1 -chrV SGD CDS 177835 178431 . + . ID=YER012W;Name=YER012W;Alias=PRE1 -chrV SGD CDS 178841 182278 . + . ID=YER013W;Name=YER013W;Alias=PRP22 -chrV SGD CDS 182600 184219 . + . ID=YER014W;Name=YER014W;Alias=HEM14 -chrV SGD CDS 183731 184700 . - . ID=YER014C-A;Name=YER014C-A;Alias=BUD25 -chrV SGD CDS 184541 186775 . + . ID=YER015W;Name=YER015W;Alias=FAA2 -chrV SGD CDS 188277 189311 . + . ID=YER016W;Name=YER016W;Alias=BIM1 -chrV SGD CDS 189503 191788 . - . ID=YER017C;Name=YER017C;Alias=AFG3 -chrV SGD CDS 191959 192624 . - . ID=YER018C;Name=YER018C;Alias=SPC25 -chrV SGD CDS 192797 194230 . + . ID=YER019W;Name=YER019W;Alias=ISC1 -chrV SGD CDS 194273 194539 . - . ID=YER019C-A;Name=YER019C-A;Alias=SBH2 -chrV SGD CDS 195168 196517 . + . ID=YER020W;Name=YER020W;Alias=GPA2 -chrV SGD CDS 196948 198519 . + . ID=YER021W;Name=YER021W;Alias=RPN3 -chrV SGD CDS 198812 200875 . + . ID=YER022W;Name=YER022W;Alias=SRB4 -chrV SGD CDS 201076 201936 . + . ID=YER023W;Name=YER023W;Alias=PRO3 -chrV SGD CDS 202192 204963 . + . ID=YER024W;Name=YER024W;Alias=YAT2 -chrV SGD CDS 205251 206834 . + . ID=YER025W;Name=YER025W;Alias=GCD11 -chrV SGD CDS 207644 208474 . - . ID=YER026C;Name=YER026C;Alias=CHO1 -chrV SGD CDS 208979 210232 . - . ID=YER027C;Name=YER027C;Alias=GAL83 -chrV SGD CDS 210692 211876 . - . ID=YER028C;Name=YER028C;Alias=MIG3 -chrV SGD CDS 212587 213177 . - . ID=YER029C;Name=YER029C;Alias=SMB1 -chrV SGD CDS 213437 213898 . + . ID=YER030W;Name=YER030W;Alias=CHZ1 -chrV SGD CDS 214076 214747 . - . ID=YER031C;Name=YER031C;Alias=YPT31 -chrV SGD CDS 215063 217693 . + . ID=YER032W;Name=YER032W;Alias=FIR1 -chrV SGD CDS 218057 221287 . - . ID=YER033C;Name=YER033C;Alias=ZRG8 -chrV SGD CDS 221846 222403 . + . ID=YER034W;Name=YER034W;Alias= -chrV SGD CDS 222639 223076 . + . ID=YER035W;Name=YER035W;Alias=EDC2 -chrV SGD CDS 223367 225199 . - . ID=YER036C;Name=YER036C;Alias=ARB1 -chrV SGD CDS 225889 226854 . + . ID=YER037W;Name=YER037W;Alias=PHM8 -chrV SGD CDS 226858 228252 . - . ID=YER038C;Name=YER038C;Alias=KRE29 -chrV SGD CDS 228451 228831 . + . ID=YER038W-A;Name=YER038W-A;Alias=FMP49 -chrV SGD CDS 228456 229205 . - . ID=YER039C;Name=YER039C;Alias=HVG1 -chrV SGD CDS 229263 229481 . - . ID=YER039C-A;Name=YER039C-A;Alias= -chrV SGD CDS 229795 231987 . + . ID=YER040W;Name=YER040W;Alias=GLN3 -chrV SGD CDS 232461 234740 . + . ID=YER041W;Name=YER041W;Alias=YEN1 -chrV SGD CDS 234937 235491 . + . ID=YER042W;Name=YER042W;Alias=MXR1 -chrV SGD CDS 235770 237119 . - . ID=YER043C;Name=YER043C;Alias=SAH1 -chrV SGD CDS 237570 238016 . - . ID=YER044C;Name=YER044C;Alias=ERG28 -chrV SGD CDS 238460 239774 . - . ID=YER044C-A;Name=YER044C-A;Alias=MEI4 -chrV SGD CDS 240032 241501 . - . ID=YER045C;Name=YER045C;Alias=ACA1 -chrV SGD CDS 243180 243611 . + . ID=YER046W;Name=YER046W;Alias=SPO73 -chrV SGD CDS 243810 246503 . - . ID=YER047C;Name=YER047C;Alias=SAP1 -chrV SGD CDS 246982 248157 . - . ID=YER048C;Name=YER048C;Alias=CAJ1 -chrV SGD CDS 250718 251002 . + . ID=YER048W-A;Name=YER048W-A;Alias=ISD11 -chrV SGD CDS 251728 253662 . + . ID=YER049W;Name=YER049W;Alias=TPA1 -chrV SGD CDS 253971 254387 . - . ID=YER050C;Name=YER050C;Alias=RSM18 -chrV SGD CDS 254656 256134 . + . ID=YER051W;Name=YER051W;Alias=JHD1 -chrV SGD CDS 256375 257958 . - . ID=YER052C;Name=YER052C;Alias=HOM3 -chrV SGD CDS 258737 259639 . - . ID=YER053C;Name=YER053C;Alias=PIC2 -chrV SGD CDS 260933 261046 . - . ID=YER053C-A;Name=YER053C-A;Alias= -chrV SGD CDS 262052 263698 . - . ID=YER054C;Name=YER054C;Alias=GIP2 -chrV SGD CDS 264892 265785 . - . ID=YER055C;Name=YER055C;Alias=HIS1 -chrV SGD CDS 266512 268113 . - . ID=YER056C;Name=YER056C;Alias=FCY2 -chrV SGD CDS 269423 270185 . - . ID=YER056C-A;Name=YER056C-A;Alias=RPL34A -chrV SGD CDS 270737 271126 . - . ID=YER057C;Name=YER057C;Alias=HMF1 -chrV SGD CDS 271768 272091 . + . ID=YER058W;Name=YER058W;Alias=PET117 -chrV SGD CDS 272624 273886 . + . ID=YER059W;Name=YER059W;Alias=PCL6 -chrV SGD CDS 274567 276153 . + . ID=YER060W;Name=YER060W;Alias=FCY21 -chrV SGD CDS 276572 278164 . + . ID=YER060W-A;Name=YER060W-A;Alias=FCY22 -chrV SGD CDS 278298 279626 . - . ID=YER061C;Name=YER061C;Alias=CEM1 -chrV SGD CDS 279930 280682 . - . ID=YER062C;Name=YER062C;Alias=GPP2 -chrV SGD CDS 281710 282366 . + . ID=YER063W;Name=YER063W;Alias=THO1 -chrV SGD CDS 282705 284222 . - . ID=YER064C;Name=YER064C;Alias=VHR2 -chrV SGD CDS 285241 286914 . - . ID=YER065C;Name=YER065C;Alias=ICL1 -chrV SGD CDS 290242 290799 . + . ID=YER066W;Name=YER066W;Alias=RRT13 -chrV SGD CDS 292066 292551 . + . ID=YER067W;Name=YER067W;Alias=RGI1 -chrV SGD CDS 293050 294813 . + . ID=YER068W;Name=YER068W;Alias=MOT2 -chrV SGD CDS 295410 298001 . + . ID=YER069W;Name=YER069W;Alias=ARG5%2C6 -chrV SGD CDS 298950 301616 . + . ID=YER070W;Name=YER070W;Alias=RNR1 -chrV SGD CDS 301947 302327 . - . ID=YER071C;Name=YER071C;Alias=TDA2 -chrV SGD CDS 302806 303195 . + . ID=YER072W;Name=YER072W;Alias=VTC1 -chrV SGD CDS 304030 305592 . + . ID=YER073W;Name=YER073W;Alias=ALD5 -chrV SGD CDS 306323 307196 . + . ID=YER074W;Name=YER074W;Alias=RPS24A -chrV SGD CDS 307653 308123 . + . ID=YER074W-A;Name=YER074W-A;Alias=YOS1 -chrV SGD CDS 308413 311199 . - . ID=YER075C;Name=YER075C;Alias=PTP3 -chrV SGD CDS 312590 313498 . - . ID=YER076C;Name=YER076C;Alias= -chrV SGD CDS 314534 316600 . - . ID=YER077C;Name=YER077C;Alias=MRX1 -chrV SGD CDS 316807 318342 . - . ID=YER078C;Name=YER078C;Alias=ICP55 -chrV SGD CDS 318646 318810 . + . ID=YER078W-A;Name=YER078W-A;Alias= -chrV SGD CDS 318920 319552 . + . ID=YER079W;Name=YER079W;Alias= -chrV SGD CDS 319963 321846 . + . ID=YER080W;Name=YER080W;Alias=AIM9 -chrV SGD CDS 322686 324095 . + . ID=YER081W;Name=YER081W;Alias=SER3 -chrV SGD CDS 324272 325936 . - . ID=YER082C;Name=YER082C;Alias=UTP7 -chrV SGD CDS 326174 327031 . - . ID=YER083C;Name=YER083C;Alias=GET2 -chrV SGD CDS 327065 327451 . + . ID=YER084W;Name=YER084W;Alias= -chrV SGD CDS 327619 328140 . - . ID=YER085C;Name=YER085C;Alias= -chrV SGD CDS 328477 330207 . + . ID=YER086W;Name=YER086W;Alias=ILV1 -chrV SGD CDS 330576 332306 . + . ID=YER087W;Name=YER087W;Alias=AIM10 -chrV SGD CDS 332582 332830 . - . ID=YER087C-B;Name=YER087C-B;Alias=SBH1 -chrV SGD CDS 333176 335188 . - . ID=YER088C;Name=YER088C;Alias=DOT6 -chrV SGD CDS 335946 337340 . - . ID=YER089C;Name=YER089C;Alias=PTC2 -chrV SGD CDS 337949 339472 . + . ID=YER090W;Name=YER090W;Alias=TRP2 -chrV SGD CDS 339864 342167 . - . ID=YER091C;Name=YER091C;Alias=MET6 -chrV SGD CDS 342855 343232 . + . ID=YER092W;Name=YER092W;Alias=IES5 -chrV SGD CDS 343320 347612 . - . ID=YER093C;Name=YER093C;Alias=TSC11 -chrV SGD CDS 347912 348400 . - . ID=YER093C-A;Name=YER093C-A;Alias=AIM11 -chrV SGD CDS 348729 349346 . - . ID=YER094C;Name=YER094C;Alias=PUP3 -chrV SGD CDS 349980 351182 . + . ID=YER095W;Name=YER095W;Alias=RAD51 -chrV SGD CDS 351698 353236 . + . ID=YER096W;Name=YER096W;Alias=SHC1 -chrV SGD CDS 355466 357730 . + . ID=YER098W;Name=YER098W;Alias=UBP9 -chrV SGD CDS 358105 359061 . - . ID=YER099C;Name=YER099C;Alias=PRS2 -chrV SGD CDS 359562 360314 . + . ID=YER100W;Name=YER100W;Alias=UBC6 -chrV SGD CDS 360502 361794 . - . ID=YER101C;Name=YER101C;Alias=AST2 -chrV SGD CDS 362733 363702 . + . ID=YER102W;Name=YER102W;Alias=RPS8B -chrV SGD CDS 364589 366517 . + . ID=YER103W;Name=YER103W;Alias=SSA4 -chrV SGD CDS 366802 367428 . + . ID=YER104W;Name=YER104W;Alias=RTT105 -chrV SGD CDS 367838 372013 . - . ID=YER105C;Name=YER105C;Alias=NUP157 -chrV SGD CDS 372326 373234 . + . ID=YER106W;Name=YER106W;Alias=MAM1 -chrV SGD CDS 373448 374545 . - . ID=YER107C;Name=YER107C;Alias=GLE2 -chrV SGD CDS 378762 382103 . - . ID=YER110C;Name=YER110C;Alias=KAP123 -chrV SGD CDS 382595 385876 . - . ID=YER111C;Name=YER111C;Alias=SWI4 -chrV SGD CDS 387232 387795 . + . ID=YER112W;Name=YER112W;Alias=LSM4 -chrV SGD CDS 387932 390052 . - . ID=YER113C;Name=YER113C;Alias=TMN3 -chrV SGD CDS 390590 393712 . - . ID=YER114C;Name=YER114C;Alias=BOI2 -chrV SGD CDS 394292 394867 . - . ID=YER115C;Name=YER115C;Alias=SPR6 -chrV SGD CDS 395348 396172 . - . ID=YER116C;Name=YER116C;Alias=SLX8 -chrV SGD CDS 396769 397653 . + . ID=YER117W;Name=YER117W;Alias=RPL23B -chrV SGD CDS 397952 399055 . - . ID=YER118C;Name=YER118C;Alias=SHO1 -chrV SGD CDS 399496 400842 . - . ID=YER119C;Name=YER119C;Alias=AVT6 -chrV SGD CDS 401135 401869 . + . ID=YER120W;Name=YER120W;Alias=SCS2 -chrV SGD CDS 402375 402719 . + . ID=YER121W;Name=YER121W;Alias= -chrV SGD CDS 402871 404352 . - . ID=YER122C;Name=YER122C;Alias=GLO3 -chrV SGD CDS 404813 406387 . + . ID=YER123W;Name=YER123W;Alias=YCK3 -chrV SGD CDS 407342 409063 . - . ID=YER124C;Name=YER124C;Alias=DSE1 -chrV SGD CDS 410189 412618 . + . ID=YER125W;Name=YER125W;Alias=RSP5 -chrV SGD CDS 413394 414179 . - . ID=YER126C;Name=YER126C;Alias=NSA2 -chrV SGD CDS 414481 415554 . + . ID=YER127W;Name=YER127W;Alias=LCP5 -chrV SGD CDS 415859 416470 . + . ID=YER128W;Name=YER128W;Alias=VFA1 -chrV SGD CDS 417281 420709 . + . ID=YER129W;Name=YER129W;Alias=SAK1 -chrV SGD CDS 421115 422446 . - . ID=YER130C;Name=YER130C;Alias=COM2 -chrV SGD CDS 423591 424311 . + . ID=YER131W;Name=YER131W;Alias=RPS26B -chrV SGD CDS 425188 430449 . - . ID=YER132C;Name=YER132C;Alias=PMD1 -chrV SGD CDS 432495 433958 . + . ID=YER133W;Name=YER133W;Alias=GLC7 -chrV SGD CDS 437267 437803 . - . ID=YER134C;Name=YER134C;Alias= -chrV SGD CDS 439616 440971 . + . ID=YER136W;Name=YER136W;Alias=GDI1 -chrV SGD CDS 441373 441819 . - . ID=YER137C;Name=YER137C;Alias= -chrV SGD CDS 449474 449578 . + . ID=YER138W-A;Name=YER138W-A;Alias= -chrV SGD CDS 450563 451243 . - . ID=YER139C;Name=YER139C;Alias=RTR1 -chrV SGD CDS 451565 453235 . + . ID=YER140W;Name=YER140W;Alias=EMP65 -chrV SGD CDS 453459 454919 . + . ID=YER141W;Name=YER141W;Alias=COX15 -chrV SGD CDS 455146 456036 . - . ID=YER142C;Name=YER142C;Alias=MAG1 -chrV SGD CDS 456319 457605 . + . ID=YER143W;Name=YER143W;Alias=DDI1 -chrV SGD CDS 457806 460223 . - . ID=YER144C;Name=YER144C;Alias=UBP5 -chrV SGD CDS 460526 461740 . - . ID=YER145C;Name=YER145C;Alias=FTR1 -chrV SGD CDS 462585 462866 . + . ID=YER146W;Name=YER146W;Alias=LSM5 -chrV SGD CDS 462968 464842 . - . ID=YER147C;Name=YER147C;Alias=SCC4 -chrV SGD CDS 465303 466025 . + . ID=YER148W;Name=YER148W;Alias=SPT15 -chrV SGD CDS 466208 467470 . - . ID=YER149C;Name=YER149C;Alias=PEA2 -chrV SGD CDS 468370 468816 . + . ID=YER150W;Name=YER150W;Alias=SPI1 -chrV SGD CDS 469686 472424 . - . ID=YER151C;Name=YER151C;Alias=UBP3 -chrV SGD CDS 472657 473988 . - . ID=YER152C;Name=YER152C;Alias= -chrV SGD CDS 474041 474805 . - . ID=YER153C;Name=YER153C;Alias=PET122 -chrV SGD CDS 475020 476228 . + . ID=YER154W;Name=YER154W;Alias=OXA1 -chrV SGD CDS 476345 482848 . - . ID=YER155C;Name=YER155C;Alias=BEM2 -chrV SGD CDS 483325 484341 . - . ID=YER156C;Name=YER156C;Alias= -chrV SGD CDS 484788 487193 . + . ID=YER157W;Name=YER157W;Alias=COG3 -chrV SGD CDS 488857 490578 . - . ID=YER158C;Name=YER158C;Alias= -chrV SGD CDS 491530 491958 . - . ID=YER159C;Name=YER159C;Alias=BUR6 -chrV SGD CDS 499347 500348 . - . ID=YER161C;Name=YER161C;Alias=SPT2 -chrV SGD CDS 500630 502894 . - . ID=YER162C;Name=YER162C;Alias=RAD4 -chrV SGD CDS 503084 503782 . - . ID=YER163C;Name=YER163C;Alias=GCG1 -chrV SGD CDS 505392 509798 . + . ID=YER164W;Name=YER164W;Alias=CHD1 -chrV SGD CDS 510373 512106 . + . ID=YER165W;Name=YER165W;Alias=PAB1 -chrV SGD CDS 512744 517459 . + . ID=YER166W;Name=YER166W;Alias=DNF1 -chrV SGD CDS 518216 520771 . + . ID=YER167W;Name=YER167W;Alias=BCK2 -chrV SGD CDS 521029 522669 . - . ID=YER168C;Name=YER168C;Alias=CCA1 -chrV SGD CDS 523369 525759 . + . ID=YER169W;Name=YER169W;Alias=RPH1 -chrV SGD CDS 525974 526651 . + . ID=YER170W;Name=YER170W;Alias=ADK2 -chrV SGD CDS 527082 529418 . + . ID=YER171W;Name=YER171W;Alias=RAD3 -chrV SGD CDS 529530 536021 . - . ID=YER172C;Name=YER172C;Alias=BRR2 -chrV SGD CDS 536300 538279 . + . ID=YER173W;Name=YER173W;Alias=RAD24 -chrV SGD CDS 538434 539168 . - . ID=YER174C;Name=YER174C;Alias=GRX4 -chrV SGD CDS 539464 540363 . - . ID=YER175C;Name=YER175C;Alias=TMT1 -chrV SGD CDS 540650 540814 . + . ID=YER175W-A;Name=YER175W-A;Alias= -chrV SGD CDS 541690 545055 . + . ID=YER176W;Name=YER176W;Alias=ECM32 -chrV SGD CDS 545611 546414 . + . ID=YER177W;Name=YER177W;Alias=BMH1 -chrV SGD CDS 546817 548079 . + . ID=YER178W;Name=YER178W;Alias=PDA1 -chrV SGD CDS 548421 549517 . + . ID=YER179W;Name=YER179W;Alias=DMC1 -chrV SGD CDS 549724 550527 . - . ID=YER180C;Name=YER180C;Alias=ISC10 -chrV SGD CDS 550865 551122 . - . ID=YER180C-A;Name=YER180C-A;Alias=SLO1 -chrV SGD CDS 552525 553259 . + . ID=YER182W;Name=YER182W;Alias=FMP10 -chrV SGD CDS 553334 553969 . - . ID=YER183C;Name=YER183C;Alias=FAU1 -chrV SGD CDS 556296 558680 . - . ID=YER184C;Name=YER184C;Alias=TOG1 -chrV SGD CDS 559454 560365 . + . ID=YER185W;Name=YER185W;Alias=PUG1 -chrV SGD CDS 561705 562625 . - . ID=YER186C;Name=YER186C;Alias= -chrV SGD CDS 566230 566655 . + . ID=YER187W;Name=YER187W;Alias= -chrV SGD CDS 569608 569907 . - . ID=YER188C-A;Name=YER188C-A;Alias= -chrV SGD CDS 571155 571523 . + . ID=YER189W;Name=YER189W;Alias= -chrV SGD CDS 571480 576525 . + . ID=YER190W;Name=YER190W;Alias=YRF1-2 -chrV SGD CDS 575680 576162 . - . ID=YER190C-B;Name=YER190C-B;Alias= -chrVI SGD CDS 53 535 . + . ID=YFL068W;Name=YFL068W;Alias= -chrVI SGD CDS 836 1363 . + . ID=YFL067W;Name=YFL067W;Alias= -chrVI SGD CDS 1437 2615 . - . ID=YFL066C;Name=YFL066C;Alias= -chrVI SGD CDS 3030 3338 . - . ID=YFL065C;Name=YFL065C;Alias= -chrVI SGD CDS 3322 3846 . - . ID=YFL064C;Name=YFL064C;Alias= -chrVI SGD CDS 6426 7565 . + . ID=YFL062W;Name=YFL062W;Alias=COS4 -chrVI SGD CDS 9545 10222 . + . ID=YFL061W;Name=YFL061W;Alias=DDI2 -chrVI SGD CDS 10301 10969 . - . ID=YFL060C;Name=YFL060C;Alias=SNO3 -chrVI SGD CDS 11363 12259 . + . ID=YFL059W;Name=YFL059W;Alias=SNZ3 -chrVI SGD CDS 12929 13951 . + . ID=YFL058W;Name=YFL058W;Alias=THI5 -chrVI SGD CDS 17004 18680 . + . ID=YFL055W;Name=YFL055W;Alias=AGP3 -chrVI SGD CDS 20847 22787 . - . ID=YFL054C;Name=YFL054C;Alias=AQY3 -chrVI SGD CDS 23423 25198 . + . ID=YFL053W;Name=YFL053W;Alias=DAK2 -chrVI SGD CDS 28232 29629 . + . ID=YFL052W;Name=YFL052W;Alias=ZNF1 -chrVI SGD CDS 30058 30540 . - . ID=YFL051C;Name=YFL051C;Alias= -chrVI SGD CDS 33272 35848 . - . ID=YFL050C;Name=YFL050C;Alias=ALR2 -chrVI SGD CDS 36803 38674 . + . ID=YFL049W;Name=YFL049W;Alias=SWP82 -chrVI SGD CDS 38843 40180 . - . ID=YFL048C;Name=YFL048C;Alias=EMP47 -chrVI SGD CDS 40421 42565 . + . ID=YFL047W;Name=YFL047W;Alias=RGD2 -chrVI SGD CDS 42815 43438 . + . ID=YFL046W;Name=YFL046W;Alias=FMP32 -chrVI SGD CDS 43628 44392 . - . ID=YFL045C;Name=YFL045C;Alias=SEC53 -chrVI SGD CDS 44655 45560 . - . ID=YFL044C;Name=YFL044C;Alias=OTU1 -chrVI SGD CDS 45720 47744 . - . ID=YFL042C;Name=YFL042C;Alias=LAM5 -chrVI SGD CDS 48734 48925 . + . ID=YFL041W-A;Name=YFL041W-A;Alias= -chrVI SGD CDS 49139 51007 . + . ID=YFL041W;Name=YFL041W;Alias=FET5 -chrVI SGD CDS 51350 52972 . + . ID=YFL040W;Name=YFL040W;Alias= -chrVI SGD CDS 53260 54696 . - . ID=YFL039C;Name=YFL039C;Alias=ACT1 -chrVI SGD CDS 55366 55986 . - . ID=YFL038C;Name=YFL038C;Alias=YPT1 -chrVI SGD CDS 56336 57709 . + . ID=YFL037W;Name=YFL037W;Alias=TUB2 -chrVI SGD CDS 58782 62837 . + . ID=YFL036W;Name=YFL036W;Alias=RPO41 -chrVI SGD CDS 63016 63993 . - . ID=YFL034C-B;Name=YFL034C-B;Alias=MOB2 -chrVI SGD CDS 64243 64932 . - . ID=YFL034C-A;Name=YFL034C-A;Alias=RPL22B -chrVI SGD CDS 65477 68698 . + . ID=YFL034W;Name=YFL034W;Alias=MIL1 -chrVI SGD CDS 69115 74427 . - . ID=YFL033C;Name=YFL033C;Alias=RIM15 -chrVI SGD CDS 75179 76147 . + . ID=YFL031W;Name=YFL031W;Alias=HAC1 -chrVI SGD CDS 76831 77988 . + . ID=YFL030W;Name=YFL030W;Alias=AGX1 -chrVI SGD CDS 78055 79161 . - . ID=YFL029C;Name=YFL029C;Alias=CAK1 -chrVI SGD CDS 79344 80213 . - . ID=YFL028C;Name=YFL028C;Alias=CAF16 -chrVI SGD CDS 80419 81912 . - . ID=YFL027C;Name=YFL027C;Alias=GYP8 -chrVI SGD CDS 82580 83875 . + . ID=YFL026W;Name=YFL026W;Alias=STE2 -chrVI SGD CDS 84145 87234 . - . ID=YFL025C;Name=YFL025C;Alias=BST1 -chrVI SGD CDS 87847 90345 . - . ID=YFL024C;Name=YFL024C;Alias=EPL1 -chrVI SGD CDS 90986 93376 . + . ID=YFL023W;Name=YFL023W;Alias=BUD27 -chrVI SGD CDS 93499 95010 . - . ID=YFL022C;Name=YFL022C;Alias=FRS2 -chrVI SGD CDS 95966 97498 . + . ID=YFL021W;Name=YFL021W;Alias=GAT1 -chrVI SGD CDS 99231 99599 . - . ID=YFL020C;Name=YFL020C;Alias=PAU5 -chrVI SGD CDS 101628 103127 . - . ID=YFL018C;Name=YFL018C;Alias=LPD1 -chrVI SGD CDS 103699 103932 . + . ID=YFL017W-A;Name=YFL017W-A;Alias=SMX2 -chrVI SGD CDS 103983 104462 . - . ID=YFL017C;Name=YFL017C;Alias=GNA1 -chrVI SGD CDS 104701 106236 . - . ID=YFL016C;Name=YFL016C;Alias=MDJ1 -chrVI SGD CDS 107256 107585 . + . ID=YFL014W;Name=YFL014W;Alias=HSP12 -chrVI SGD CDS 107852 109930 . - . ID=YFL013C;Name=YFL013C;Alias=IES1 -chrVI SGD CDS 110647 111093 . + . ID=YFL012W;Name=YFL012W;Alias= -chrVI SGD CDS 112345 113985 . + . ID=YFL011W;Name=YFL011W;Alias=HXT10 -chrVI SGD CDS 114990 115274 . + . ID=YFL010W-A;Name=YFL010W-A;Alias=AUA1 -chrVI SGD CDS 115108 115743 . - . ID=YFL010C;Name=YFL010C;Alias=WWM1 -chrVI SGD CDS 116145 118484 . + . ID=YFL009W;Name=YFL009W;Alias=CDC4 -chrVI SGD CDS 119429 123106 . + . ID=YFL008W;Name=YFL008W;Alias=SMC1 -chrVI SGD CDS 123479 129910 . + . ID=YFL007W;Name=YFL007W;Alias=BLM10 -chrVI SGD CDS 130334 130981 . + . ID=YFL005W;Name=YFL005W;Alias=SEC4 -chrVI SGD CDS 131810 134296 . + . ID=YFL004W;Name=YFL004W;Alias=VTC2 -chrVI SGD CDS 134521 137157 . - . ID=YFL003C;Name=YFL003C;Alias=MSH4 -chrVI SGD CDS 145114 146934 . - . ID=YFL002C;Name=YFL002C;Alias=SPB4 -chrVI SGD CDS 147131 148459 . + . ID=YFL001W;Name=YFL001W;Alias=DEG1 -chrVI SGD CDS 149110 149724 . + . ID=YFR001W;Name=YFR001W;Alias=LOC1 -chrVI SGD CDS 150016 152535 . + . ID=YFR002W;Name=YFR002W;Alias=NIC96 -chrVI SGD CDS 152657 153124 . - . ID=YFR003C;Name=YFR003C;Alias=YPI1 -chrVI SGD CDS 153393 154313 . + . ID=YFR004W;Name=YFR004W;Alias=RPN11 -chrVI SGD CDS 154527 155873 . - . ID=YFR005C;Name=YFR005C;Alias=SAD1 -chrVI SGD CDS 156145 157752 . + . ID=YFR006W;Name=YFR006W;Alias= -chrVI SGD CDS 159299 160360 . + . ID=YFR007W;Name=YFR007W;Alias=YFH7 -chrVI SGD CDS 160535 161200 . + . ID=YFR008W;Name=YFR008W;Alias=FAR7 -chrVI SGD CDS 162488 164746 . + . ID=YFR009W;Name=YFR009W;Alias=GCN20 -chrVI SGD CDS 165067 166566 . + . ID=YFR010W;Name=YFR010W;Alias=UBP6 -chrVI SGD CDS 166746 167258 . - . ID=YFR011C;Name=YFR011C;Alias=MIC19 -chrVI SGD CDS 167888 168496 . + . ID=YFR012W;Name=YFR012W;Alias=DCV1 -chrVI SGD CDS 169224 169310 . + . ID=YFR012W-A;Name=YFR012W-A;Alias= -chrVI SGD CDS 169922 172285 . + . ID=YFR013W;Name=YFR013W;Alias=IOC3 -chrVI SGD CDS 172537 173877 . - . ID=YFR014C;Name=YFR014C;Alias=CMK1 -chrVI SGD CDS 174265 176391 . - . ID=YFR015C;Name=YFR015C;Alias=GSY1 -chrVI SGD CDS 177042 180743 . - . ID=YFR016C;Name=YFR016C;Alias= -chrVI SGD CDS 182274 182861 . - . ID=YFR017C;Name=YFR017C;Alias=IGD1 -chrVI SGD CDS 183131 184222 . - . ID=YFR018C;Name=YFR018C;Alias= -chrVI SGD CDS 184502 191338 . + . ID=YFR019W;Name=YFR019W;Alias=FAB1 -chrVI SGD CDS 192737 193435 . + . ID=YFR020W;Name=YFR020W;Alias=CSS2 -chrVI SGD CDS 194812 196314 . + . ID=YFR021W;Name=YFR021W;Alias=ATG18 -chrVI SGD CDS 196833 199034 . + . ID=YFR022W;Name=YFR022W;Alias=ROG3 -chrVI SGD CDS 199874 201709 . + . ID=YFR023W;Name=YFR023W;Alias=PES4 -chrVI SGD CDS 201960 203433 . - . ID=YFR024C-A;Name=YFR024C-A;Alias=LSB3 -chrVI SGD CDS 203743 204750 . - . ID=YFR025C;Name=YFR025C;Alias=HIS2 -chrVI SGD CDS 205748 206257 . - . ID=YFR026C;Name=YFR026C;Alias=ULI1 -chrVI SGD CDS 207452 208297 . + . ID=YFR027W;Name=YFR027W;Alias=ECO1 -chrVI SGD CDS 208413 210068 . - . ID=YFR028C;Name=YFR028C;Alias=CDC14 -chrVI SGD CDS 210937 212973 . + . ID=YFR029W;Name=YFR029W;Alias=PTR3 -chrVI SGD CDS 213312 216419 . + . ID=YFR030W;Name=YFR030W;Alias=MET10 -chrVI SGD CDS 216594 220106 . - . ID=YFR031C;Name=YFR031C;Alias=SMC2 -chrVI SGD CDS 220507 221418 . - . ID=YFR031C-A;Name=YFR031C-A;Alias=RPL2A -chrVI SGD CDS 222090 222959 . - . ID=YFR032C;Name=YFR032C;Alias=RRT5 -chrVI SGD CDS 223258 223771 . - . ID=YFR032C-A;Name=YFR032C-A;Alias=RPL29 -chrVI SGD CDS 223710 223973 . - . ID=YFR032C-B;Name=YFR032C-B;Alias= -chrVI SGD CDS 224326 224769 . - . ID=YFR033C;Name=YFR033C;Alias=QCR6 -chrVI SGD CDS 225020 225958 . - . ID=YFR034C;Name=YFR034C;Alias=PHO4 -chrVI SGD CDS 226121 226465 . - . ID=YFR035C;Name=YFR035C;Alias= -chrVI SGD CDS 226963 227337 . + . ID=YFR036W;Name=YFR036W;Alias=CDC26 -chrVI SGD CDS 227513 229186 . - . ID=YFR037C;Name=YFR037C;Alias=RSC8 -chrVI SGD CDS 229380 231941 . + . ID=YFR038W;Name=YFR038W;Alias=IRC5 -chrVI SGD CDS 232012 233544 . - . ID=YFR039C;Name=YFR039C;Alias=OSW7 -chrVI SGD CDS 234242 237250 . + . ID=YFR040W;Name=YFR040W;Alias=SAP155 -chrVI SGD CDS 237368 238255 . - . ID=YFR041C;Name=YFR041C;Alias=ERJ5 -chrVI SGD CDS 238458 239060 . + . ID=YFR042W;Name=YFR042W;Alias=KEG1 -chrVI SGD CDS 239114 239827 . - . ID=YFR043C;Name=YFR043C;Alias=IRC6 -chrVI SGD CDS 239992 241437 . - . ID=YFR044C;Name=YFR044C;Alias=DUG1 -chrVI SGD CDS 241998 242999 . + . ID=YFR045W;Name=YFR045W;Alias= -chrVI SGD CDS 243074 244159 . - . ID=YFR046C;Name=YFR046C;Alias=CNN1 -chrVI SGD CDS 244279 245166 . - . ID=YFR047C;Name=YFR047C;Alias=BNA6 -chrVI SGD CDS 246146 248134 . + . ID=YFR048W;Name=YFR048W;Alias=RMD8 -chrVI SGD CDS 248523 248894 . + . ID=YFR049W;Name=YFR049W;Alias=YMR31 -chrVI SGD CDS 249066 249866 . - . ID=YFR050C;Name=YFR050C;Alias=PRE4 -chrVI SGD CDS 250163 251803 . - . ID=YFR051C;Name=YFR051C;Alias=RET2 -chrVI SGD CDS 252505 253329 . + . ID=YFR052W;Name=YFR052W;Alias=RPN12 -chrVI SGD CDS 253592 255049 . - . ID=YFR053C;Name=YFR053C;Alias=HXK1 -chrVI SGD CDS 264204 265226 . + . ID=YFR055W;Name=YFR055W;Alias=IRC7 -chrVI SGD CDS 269061 269516 . + . ID=YFR057W;Name=YFR057W;Alias= -chrVII SGD CDS 2790 3932 . + . ID=YGL263W;Name=YGL263W;Alias=COS12 -chrVII SGD CDS 5312 5839 . + . ID=YGL262W;Name=YGL262W;Alias= -chrVII SGD CDS 6290 6652 . - . ID=YGL261C;Name=YGL261C;Alias=PAU11 -chrVII SGD CDS 6860 7090 . + . ID=YGL260W;Name=YGL260W;Alias= -chrVII SGD CDS 8470 8967 . + . ID=YGL259W;Name=YGL259W;Alias=YPS5 -chrVII SGD CDS 9162 9395 . + . ID=YGL258W-A;Name=YGL258W-A;Alias= -chrVII SGD CDS 11110 11730 . + . ID=YGL258W;Name=YGL258W;Alias=VEL1 -chrVII SGD CDS 12481 14157 . - . ID=YGL257C;Name=YGL257C;Alias=MNT2 -chrVII SGD CDS 15159 16307 . + . ID=YGL256W;Name=YGL256W;Alias=ADH4 -chrVII SGD CDS 20978 22108 . + . ID=YGL255W;Name=YGL255W;Alias=ZRT1 -chrVII SGD CDS 22304 23203 . + . ID=YGL254W;Name=YGL254W;Alias=FZF1 -chrVII SGD CDS 23935 25395 . + . ID=YGL253W;Name=YGL253W;Alias=HXK2 -chrVII SGD CDS 25718 27484 . - . ID=YGL252C;Name=YGL252C;Alias=RTG2 -chrVII SGD CDS 27921 31636 . - . ID=YGL251C;Name=YGL251C;Alias=HFM1 -chrVII SGD CDS 31910 32635 . + . ID=YGL250W;Name=YGL250W;Alias=RMR1 -chrVII SGD CDS 33098 35212 . + . ID=YGL249W;Name=YGL249W;Alias=ZIP2 -chrVII SGD CDS 35653 36762 . + . ID=YGL248W;Name=YGL248W;Alias=PDE1 -chrVII SGD CDS 36933 37526 . + . ID=YGL247W;Name=YGL247W;Alias=BRR6 -chrVII SGD CDS 37617 38780 . - . ID=YGL246C;Name=YGL246C;Alias=RAI1 -chrVII SGD CDS 39023 41149 . + . ID=YGL245W;Name=YGL245W;Alias=GUS1 -chrVII SGD CDS 41498 43174 . + . ID=YGL244W;Name=YGL244W;Alias=RTF1 -chrVII SGD CDS 43307 44509 . + . ID=YGL243W;Name=YGL243W;Alias=TAD1 -chrVII SGD CDS 44652 45197 . - . ID=YGL242C;Name=YGL242C;Alias= -chrVII SGD CDS 45445 48459 . + . ID=YGL241W;Name=YGL241W;Alias=KAP114 -chrVII SGD CDS 48613 49365 . + . ID=YGL240W;Name=YGL240W;Alias=DOC1 -chrVII SGD CDS 49552 52434 . + . ID=YGL238W;Name=YGL238W;Alias=CSE1 -chrVII SGD CDS 52731 53528 . - . ID=YGL237C;Name=YGL237C;Alias=HAP2 -chrVII SGD CDS 53787 55796 . - . ID=YGL236C;Name=YGL236C;Alias=MTO1 -chrVII SGD CDS 55279 55815 . + . ID=YGL235W;Name=YGL235W;Alias= -chrVII SGD CDS 56482 58890 . + . ID=YGL234W;Name=YGL234W;Alias=ADE5%2C7 -chrVII SGD CDS 59122 61854 . + . ID=YGL233W;Name=YGL233W;Alias=SEC15 -chrVII SGD CDS 62075 63002 . + . ID=YGL232W;Name=YGL232W;Alias=TAN1 -chrVII SGD CDS 63048 63620 . - . ID=YGL231C;Name=YGL231C;Alias=EMC4 -chrVII SGD CDS 63772 64215 . - . ID=YGL230C;Name=YGL230C;Alias= -chrVII SGD CDS 64503 66959 . - . ID=YGL229C;Name=YGL229C;Alias=SAP4 -chrVII SGD CDS 67598 69331 . + . ID=YGL228W;Name=YGL228W;Alias=SHE10 -chrVII SGD CDS 69671 72547 . + . ID=YGL227W;Name=YGL227W;Alias=VID30 -chrVII SGD CDS 72749 73158 . - . ID=YGL226C-A;Name=YGL226C-A;Alias=OST5 -chrVII SGD CDS 73340 73711 . + . ID=YGL226W;Name=YGL226W;Alias=MTC3 -chrVII SGD CDS 76894 77907 . + . ID=YGL225W;Name=YGL225W;Alias=VRG4 -chrVII SGD CDS 78015 78857 . - . ID=YGL224C;Name=YGL224C;Alias=SDT1 -chrVII SGD CDS 79112 80365 . - . ID=YGL223C;Name=YGL223C;Alias=COG1 -chrVII SGD CDS 80659 81186 . - . ID=YGL222C;Name=YGL222C;Alias=EDC1 -chrVII SGD CDS 81426 82292 . - . ID=YGL221C;Name=YGL221C;Alias=NIF3 -chrVII SGD CDS 82374 82736 . + . ID=YGL220W;Name=YGL220W;Alias=BOL2 -chrVII SGD CDS 82878 84257 . - . ID=YGL219C;Name=YGL219C;Alias=MDM34 -chrVII SGD CDS 84885 87302 . + . ID=YGL216W;Name=YGL216W;Alias=KIP3 -chrVII SGD CDS 87981 89339 . + . ID=YGL215W;Name=YGL215W;Alias=CLG1 -chrVII SGD CDS 90054 91247 . - . ID=YGL213C;Name=YGL213C;Alias=SKI8 -chrVII SGD CDS 91432 92382 . + . ID=YGL212W;Name=YGL212W;Alias=VAM7 -chrVII SGD CDS 92512 93591 . + . ID=YGL211W;Name=YGL211W;Alias=NCS6 -chrVII SGD CDS 93792 94460 . + . ID=YGL210W;Name=YGL210W;Alias=YPT32 -chrVII SGD CDS 95858 97006 . + . ID=YGL209W;Name=YGL209W;Alias=MIG2 -chrVII SGD CDS 97338 98585 . + . ID=YGL208W;Name=YGL208W;Alias=SIP2 -chrVII SGD CDS 98969 102076 . + . ID=YGL207W;Name=YGL207W;Alias=SPT16 -chrVII SGD CDS 102543 107504 . - . ID=YGL206C;Name=YGL206C;Alias=CHC1 -chrVII SGD CDS 108158 110404 . + . ID=YGL205W;Name=YGL205W;Alias=POX1 -chrVII SGD CDS 111700 112005 . - . ID=YGL204C;Name=YGL204C;Alias= -chrVII SGD CDS 112475 114664 . - . ID=YGL203C;Name=YGL203C;Alias=KEX1 -chrVII SGD CDS 116059 117561 . + . ID=YGL202W;Name=YGL202W;Alias=ARO8 -chrVII SGD CDS 117854 120907 . - . ID=YGL201C;Name=YGL201C;Alias=MCM6 -chrVII SGD CDS 122694 123305 . - . ID=YGL200C;Name=YGL200C;Alias=EMP24 -chrVII SGD CDS 123591 124298 . + . ID=YGL198W;Name=YGL198W;Alias=YIP4 -chrVII SGD CDS 124698 129161 . + . ID=YGL197W;Name=YGL197W;Alias=MDS3 -chrVII SGD CDS 129883 131169 . + . ID=YGL196W;Name=YGL196W;Alias=DSD1 -chrVII SGD CDS 131525 139543 . + . ID=YGL195W;Name=YGL195W;Alias=GCN1 -chrVII SGD CDS 139719 139961 . - . ID=YGL194C-A;Name=YGL194C-A;Alias= -chrVII SGD CDS 140368 141726 . - . ID=YGL194C;Name=YGL194C;Alias=HOS2 -chrVII SGD CDS 141916 142227 . - . ID=YGL193C;Name=YGL193C;Alias= -chrVII SGD CDS 142246 144048 . + . ID=YGL192W;Name=YGL192W;Alias=IME4 -chrVII SGD CDS 144808 145197 . + . ID=YGL191W;Name=YGL191W;Alias=COX13 -chrVII SGD CDS 145809 147389 . - . ID=YGL190C;Name=YGL190C;Alias=CDC55 -chrVII SGD CDS 148229 148966 . - . ID=YGL189C;Name=YGL189C;Alias=RPS26A -chrVII SGD CDS 148824 148964 . - . ID=YGL188C-A;Name=YGL188C-A;Alias= -chrVII SGD CDS 149704 150525 . - . ID=YGL187C;Name=YGL187C;Alias=COX4 -chrVII SGD CDS 151037 152776 . - . ID=YGL186C;Name=YGL186C;Alias=TPN1 -chrVII SGD CDS 153167 154306 . - . ID=YGL185C;Name=YGL185C;Alias= -chrVII SGD CDS 154615 156012 . - . ID=YGL184C;Name=YGL184C;Alias=STR3 -chrVII SGD CDS 156543 157285 . - . ID=YGL183C;Name=YGL183C;Alias=MND1 -chrVII SGD CDS 157906 159096 . + . ID=YGL181W;Name=YGL181W;Alias=GTS1 -chrVII SGD CDS 160065 162758 . + . ID=YGL180W;Name=YGL180W;Alias=ATG1 -chrVII SGD CDS 163409 165091 . - . ID=YGL179C;Name=YGL179C;Alias=TOS3 -chrVII SGD CDS 167352 170571 . + . ID=YGL178W;Name=YGL178W;Alias=MPT5 -chrVII SGD CDS 171415 173079 . - . ID=YGL176C;Name=YGL176C;Alias= -chrVII SGD CDS 173285 174322 . - . ID=YGL175C;Name=YGL175C;Alias=SAE2 -chrVII SGD CDS 174545 175345 . + . ID=YGL174W;Name=YGL174W;Alias=BUD13 -chrVII SGD CDS 175527 180113 . - . ID=YGL173C;Name=YGL173C;Alias=XRN1 -chrVII SGD CDS 180700 182118 . + . ID=YGL172W;Name=YGL172W;Alias=NUP49 -chrVII SGD CDS 182390 184084 . + . ID=YGL171W;Name=YGL171W;Alias=ROK1 -chrVII SGD CDS 184153 185394 . - . ID=YGL170C;Name=YGL170C;Alias=SPO74 -chrVII SGD CDS 186059 187339 . + . ID=YGL169W;Name=YGL169W;Alias=SUA5 -chrVII SGD CDS 187464 187796 . + . ID=YGL168W;Name=YGL168W;Alias=HUR1 -chrVII SGD CDS 187616 190468 . - . ID=YGL167C;Name=YGL167C;Alias=PMR1 -chrVII SGD CDS 191129 191806 . + . ID=YGL166W;Name=YGL166W;Alias=CUP2 -chrVII SGD CDS 191978 193300 . - . ID=YGL164C;Name=YGL164C;Alias=YRB30 -chrVII SGD CDS 193707 196403 . - . ID=YGL163C;Name=YGL163C;Alias=RAD54 -chrVII SGD CDS 198138 199037 . + . ID=YGL162W;Name=YGL162W;Alias=SUT1 -chrVII SGD CDS 199210 200142 . - . ID=YGL161C;Name=YGL161C;Alias=YIP5 -chrVII SGD CDS 200561 202273 . + . ID=YGL160W;Name=YGL160W;Alias=AIM14 -chrVII SGD CDS 202721 203833 . + . ID=YGL159W;Name=YGL159W;Alias= -chrVII SGD CDS 207033 208571 . + . ID=YGL158W;Name=YGL158W;Alias=RCK1 -chrVII SGD CDS 209006 210049 . + . ID=YGL157W;Name=YGL157W;Alias=ARI1 -chrVII SGD CDS 210416 213667 . + . ID=YGL156W;Name=YGL156W;Alias=AMS1 -chrVII SGD CDS 214081 215211 . + . ID=YGL155W;Name=YGL155W;Alias=CDC43 -chrVII SGD CDS 215278 216096 . - . ID=YGL154C;Name=YGL154C;Alias=LYS5 -chrVII SGD CDS 216273 217298 . + . ID=YGL153W;Name=YGL153W;Alias=PEX14 -chrVII SGD CDS 217524 220922 . + . ID=YGL151W;Name=YGL151W;Alias=NUT1 -chrVII SGD CDS 221104 225573 . - . ID=YGL150C;Name=YGL150C;Alias=INO80 -chrVII SGD CDS 226399 227529 . + . ID=YGL148W;Name=YGL148W;Alias=ARO2 -chrVII SGD CDS 227754 228329 . - . ID=YGL147C;Name=YGL147C;Alias=RPL9A -chrVII SGD CDS 228751 229686 . - . ID=YGL146C;Name=YGL146C;Alias=RRT6 -chrVII SGD CDS 230243 232348 . + . ID=YGL145W;Name=YGL145W;Alias=TIP20 -chrVII SGD CDS 232450 234507 . - . ID=YGL144C;Name=YGL144C;Alias=ROG1 -chrVII SGD CDS 234717 235958 . - . ID=YGL143C;Name=YGL143C;Alias=MRF1 -chrVII SGD CDS 236269 238119 . - . ID=YGL142C;Name=YGL142C;Alias=GPI10 -chrVII SGD CDS 238353 241085 . + . ID=YGL141W;Name=YGL141W;Alias=HUL5 -chrVII SGD CDS 241353 245012 . - . ID=YGL140C;Name=YGL140C;Alias= -chrVII SGD CDS 245716 248124 . + . ID=YGL139W;Name=YGL139W;Alias=FLC3 -chrVII SGD CDS 248494 249531 . - . ID=YGL138C;Name=YGL138C;Alias= -chrVII SGD CDS 249869 252738 . + . ID=YGL137W;Name=YGL137W;Alias=SEC27 -chrVII SGD CDS 252897 253859 . - . ID=YGL136C;Name=YGL136C;Alias=MRM2 -chrVII SGD CDS 254641 255294 . + . ID=YGL135W;Name=YGL135W;Alias=RPL1B -chrVII SGD CDS 255663 256964 . + . ID=YGL134W;Name=YGL134W;Alias=PCL10 -chrVII SGD CDS 257707 261501 . + . ID=YGL133W;Name=YGL133W;Alias=ITC1 -chrVII SGD CDS 261648 265859 . - . ID=YGL131C;Name=YGL131C;Alias=SNT2 -chrVII SGD CDS 266145 267524 . + . ID=YGL130W;Name=YGL130W;Alias=CEG1 -chrVII SGD CDS 267723 269075 . - . ID=YGL129C;Name=YGL129C;Alias=RSM23 -chrVII SGD CDS 269293 270144 . - . ID=YGL128C;Name=YGL128C;Alias=CWC23 -chrVII SGD CDS 270392 270775 . - . ID=YGL127C;Name=YGL127C;Alias=SOH1 -chrVII SGD CDS 270997 272139 . + . ID=YGL126W;Name=YGL126W;Alias=SCS3 -chrVII SGD CDS 272520 274322 . + . ID=YGL125W;Name=YGL125W;Alias=MET13 -chrVII SGD CDS 274780 276714 . - . ID=YGL124C;Name=YGL124C;Alias=MON1 -chrVII SGD CDS 277617 278381 . + . ID=YGL123W;Name=YGL123W;Alias=RPS2 -chrVII SGD CDS 278946 280523 . - . ID=YGL122C;Name=YGL122C;Alias=NAB2 -chrVII SGD CDS 280777 281157 . - . ID=YGL121C;Name=YGL121C;Alias=GPG1 -chrVII SGD CDS 281634 283937 . - . ID=YGL120C;Name=YGL120C;Alias=PRP43 -chrVII SGD CDS 284442 285947 . + . ID=YGL119W;Name=YGL119W;Alias=COQ8 -chrVII SGD CDS 288512 289309 . + . ID=YGL117W;Name=YGL117W;Alias= -chrVII SGD CDS 289809 291641 . + . ID=YGL116W;Name=YGL116W;Alias=CDC20 -chrVII SGD CDS 292033 293001 . + . ID=YGL115W;Name=YGL115W;Alias=SNF4 -chrVII SGD CDS 293460 295637 . + . ID=YGL114W;Name=YGL114W;Alias= -chrVII SGD CDS 295932 297938 . + . ID=YGL113W;Name=YGL113W;Alias=SLD3 -chrVII SGD CDS 298178 299728 . - . ID=YGL112C;Name=YGL112C;Alias=TAF6 -chrVII SGD CDS 299978 301369 . + . ID=YGL111W;Name=YGL111W;Alias=NSA1 -chrVII SGD CDS 301537 303411 . - . ID=YGL110C;Name=YGL110C;Alias=CUE3 -chrVII SGD CDS 303649 304071 . - . ID=YGL108C;Name=YGL108C;Alias= -chrVII SGD CDS 304333 306273 . - . ID=YGL107C;Name=YGL107C;Alias=RMD9 -chrVII SGD CDS 306560 307009 . + . ID=YGL106W;Name=YGL106W;Alias=MLC1 -chrVII SGD CDS 307437 308567 . + . ID=YGL105W;Name=YGL105W;Alias=ARC1 -chrVII SGD CDS 308713 310173 . - . ID=YGL104C;Name=YGL104C;Alias=VPS73 -chrVII SGD CDS 310967 311927 . + . ID=YGL103W;Name=YGL103W;Alias=RPL28 -chrVII SGD CDS 312193 312840 . + . ID=YGL101W;Name=YGL101W;Alias= -chrVII SGD CDS 313234 314283 . + . ID=YGL100W;Name=YGL100W;Alias=SEH1 -chrVII SGD CDS 314631 316553 . + . ID=YGL099W;Name=YGL099W;Alias=LSG1 -chrVII SGD CDS 317342 318079 . + . ID=YGL098W;Name=YGL098W;Alias=USE1 -chrVII SGD CDS 321782 323230 . + . ID=YGL097W;Name=YGL097W;Alias=SRM1 -chrVII SGD CDS 325331 326161 . + . ID=YGL096W;Name=YGL096W;Alias=TOS8 -chrVII SGD CDS 328874 330607 . - . ID=YGL095C;Name=YGL095C;Alias=VPS45 -chrVII SGD CDS 331118 334465 . - . ID=YGL094C;Name=YGL094C;Alias=PAN2 -chrVII SGD CDS 334886 337639 . + . ID=YGL093W;Name=YGL093W;Alias=SPC105 -chrVII SGD CDS 337906 341859 . + . ID=YGL092W;Name=YGL092W;Alias=NUP145 -chrVII SGD CDS 342056 343042 . - . ID=YGL091C;Name=YGL091C;Alias=NBP35 -chrVII SGD CDS 343319 344584 . + . ID=YGL090W;Name=YGL090W;Alias=LIF1 -chrVII SGD CDS 344791 345153 . - . ID=YGL089C;Name=YGL089C;Alias=MF%28ALPHA%292 -chrVII SGD CDS 346406 346904 . - . ID=YGL087C;Name=YGL087C;Alias=MMS2 -chrVII SGD CDS 347119 349368 . + . ID=YGL086W;Name=YGL086W;Alias=MAD1 -chrVII SGD CDS 349616 350440 . + . ID=YGL085W;Name=YGL085W;Alias=LCL3 -chrVII SGD CDS 350616 352298 . - . ID=YGL084C;Name=YGL084C;Alias=GUP1 -chrVII SGD CDS 353058 355472 . + . ID=YGL083W;Name=YGL083W;Alias=SCY1 -chrVII SGD CDS 355827 356972 . + . ID=YGL082W;Name=YGL082W;Alias= -chrVII SGD CDS 357377 358339 . + . ID=YGL081W;Name=YGL081W;Alias= -chrVII SGD CDS 358636 359028 . + . ID=YGL080W;Name=YGL080W;Alias=MPC1 -chrVII SGD CDS 359444 360100 . + . ID=YGL079W;Name=YGL079W;Alias=KXD1 -chrVII SGD CDS 360288 361859 . - . ID=YGL078C;Name=YGL078C;Alias=DBP3 -chrVII SGD CDS 362225 363916 . - . ID=YGL077C;Name=YGL077C;Alias=HNM1 -chrVII SGD CDS 364335 365996 . - . ID=YGL076C;Name=YGL076C;Alias=RPL7A -chrVII SGD CDS 366925 368088 . - . ID=YGL075C;Name=YGL075C;Alias=MPS2 -chrVII SGD CDS 368753 371254 . + . ID=YGL073W;Name=YGL073W;Alias=HSF1 -chrVII SGD CDS 372012 374084 . + . ID=YGL071W;Name=YGL071W;Alias=AFT1 -chrVII SGD CDS 374459 374827 . - . ID=YGL070C;Name=YGL070C;Alias=RPB9 -chrVII SGD CDS 375087 375671 . + . ID=YGL068W;Name=YGL068W;Alias=MNP1 -chrVII SGD CDS 376101 377255 . + . ID=YGL067W;Name=YGL067W;Alias=NPY1 -chrVII SGD CDS 377609 379582 . + . ID=YGL066W;Name=YGL066W;Alias=SGF73 -chrVII SGD CDS 379760 381271 . - . ID=YGL065C;Name=YGL065C;Alias=ALG2 -chrVII SGD CDS 381523 383208 . - . ID=YGL064C;Name=YGL064C;Alias=MRH4 -chrVII SGD CDS 383654 384766 . + . ID=YGL063W;Name=YGL063W;Alias=PUS2 -chrVII SGD CDS 385196 388732 . + . ID=YGL062W;Name=YGL062W;Alias=PYC1 -chrVII SGD CDS 388968 389711 . - . ID=YGL061C;Name=YGL061C;Alias=DUO1 -chrVII SGD CDS 390065 391990 . + . ID=YGL060W;Name=YGL060W;Alias=YBP2 -chrVII SGD CDS 392223 393698 . + . ID=YGL059W;Name=YGL059W;Alias=PKP2 -chrVII SGD CDS 393986 394504 . + . ID=YGL058W;Name=YGL058W;Alias=RAD6 -chrVII SGD CDS 394966 395829 . - . ID=YGL057C;Name=YGL057C;Alias=GEP7 -chrVII SGD CDS 396035 397618 . - . ID=YGL056C;Name=YGL056C;Alias=SDS23 -chrVII SGD CDS 398628 400160 . + . ID=YGL055W;Name=YGL055W;Alias=OLE1 -chrVII SGD CDS 400871 401287 . - . ID=YGL054C;Name=YGL054C;Alias=ERV14 -chrVII SGD CDS 402589 403302 . + . ID=YGL053W;Name=YGL053W;Alias=PRM8 -chrVII SGD CDS 403687 404391 . + . ID=YGL051W;Name=YGL051W;Alias=MST27 -chrVII SGD CDS 405776 406597 . + . ID=YGL050W;Name=YGL050W;Alias=TYW3 -chrVII SGD CDS 406860 409604 . - . ID=YGL049C;Name=YGL049C;Alias=TIF4632 -chrVII SGD CDS 410069 411286 . - . ID=YGL048C;Name=YGL048C;Alias=RPT6 -chrVII SGD CDS 411552 412160 . + . ID=YGL047W;Name=YGL047W;Alias=ALG13 -chrVII SGD CDS 414102 415730 . + . ID=YGL045W;Name=YGL045W;Alias=RIM8 -chrVII SGD CDS 416146 417036 . - . ID=YGL044C;Name=YGL044C;Alias=RNA15 -chrVII SGD CDS 417483 418412 . + . ID=YGL043W;Name=YGL043W;Alias=DST1 -chrVII SGD CDS 418704 418886 . - . ID=YGL041C-B;Name=YGL041C-B;Alias= -chrVII SGD CDS 418825 419289 . + . ID=YGL041W-A;Name=YGL041W-A;Alias= -chrVII SGD CDS 419527 420555 . - . ID=YGL040C;Name=YGL040C;Alias=HEM2 -chrVII SGD CDS 423961 425007 . + . ID=YGL039W;Name=YGL039W;Alias= -chrVII SGD CDS 425362 426804 . - . ID=YGL038C;Name=YGL038C;Alias=OCH1 -chrVII SGD CDS 427297 427947 . - . ID=YGL037C;Name=YGL037C;Alias=PNC1 -chrVII SGD CDS 428601 431330 . + . ID=YGL036W;Name=YGL036W;Alias= -chrVII SGD CDS 431548 433062 . - . ID=YGL035C;Name=YGL035C;Alias=MIG1 -chrVII SGD CDS 435625 436401 . + . ID=YGL033W;Name=YGL033W;Alias=HOP2 -chrVII SGD CDS 436570 436833 . - . ID=YGL032C;Name=YGL032C;Alias=AGA2 -chrVII SGD CDS 437467 438397 . - . ID=YGL031C;Name=YGL031C;Alias=RPL24A -chrVII SGD CDS 439091 439638 . + . ID=YGL030W;Name=YGL030W;Alias=RPL30 -chrVII SGD CDS 440063 440425 . + . ID=YGL029W;Name=YGL029W;Alias=CGR1 -chrVII SGD CDS 441281 442909 . - . ID=YGL028C;Name=YGL028C;Alias=SCW11 -chrVII SGD CDS 443642 446143 . - . ID=YGL027C;Name=YGL027C;Alias=CWH41 -chrVII SGD CDS 446412 448535 . - . ID=YGL026C;Name=YGL026C;Alias=TRP5 -chrVII SGD CDS 448764 449957 . - . ID=YGL025C;Name=YGL025C;Alias=PGD1 -chrVII SGD CDS 450197 452104 . - . ID=YGL023C;Name=YGL023C;Alias=PIB2 -chrVII SGD CDS 452404 454560 . + . ID=YGL022W;Name=YGL022W;Alias=STT3 -chrVII SGD CDS 454785 457067 . + . ID=YGL021W;Name=YGL021W;Alias=ALK1 -chrVII SGD CDS 457163 457870 . - . ID=YGL020C;Name=YGL020C;Alias=GET1 -chrVII SGD CDS 458156 458992 . + . ID=YGL019W;Name=YGL019W;Alias=CKB1 -chrVII SGD CDS 459110 459664 . - . ID=YGL018C;Name=YGL018C;Alias=JAC1 -chrVII SGD CDS 459854 461365 . + . ID=YGL017W;Name=YGL017W;Alias=ATE1 -chrVII SGD CDS 461666 464911 . + . ID=YGL016W;Name=YGL016W;Alias=KAP122 -chrVII SGD CDS 465043 465435 . - . ID=YGL015C;Name=YGL015C;Alias= -chrVII SGD CDS 466141 468807 . + . ID=YGL014W;Name=YGL014W;Alias=PUF4 -chrVII SGD CDS 469092 472298 . - . ID=YGL013C;Name=YGL013C;Alias=PDR1 -chrVII SGD CDS 472855 474276 . + . ID=YGL012W;Name=YGL012W;Alias=ERG4 -chrVII SGD CDS 474489 475247 . - . ID=YGL011C;Name=YGL011C;Alias=SCL1 -chrVII SGD CDS 475545 476069 . + . ID=YGL010W;Name=YGL010W;Alias=MPO1 -chrVII SGD CDS 476313 478652 . - . ID=YGL009C;Name=YGL009C;Alias=LEU1 -chrVII SGD CDS 479910 482666 . - . ID=YGL008C;Name=YGL008C;Alias=PMA1 -chrVII SGD CDS 482941 483027 . - . ID=YGL007C-A;Name=YGL007C-A;Alias= -chrVII SGD CDS 485423 485533 . + . ID=YGL006W-A;Name=YGL006W-A;Alias= -chrVII SGD CDS 485921 489442 . + . ID=YGL006W;Name=YGL006W;Alias=PMC1 -chrVII SGD CDS 489708 490547 . - . ID=YGL005C;Name=YGL005C;Alias=COG7 -chrVII SGD CDS 490703 491956 . - . ID=YGL004C;Name=YGL004C;Alias=RPN14 -chrVII SGD CDS 492474 494174 . - . ID=YGL003C;Name=YGL003C;Alias=CDH1 -chrVII SGD CDS 494517 495167 . + . ID=YGL002W;Name=YGL002W;Alias=ERP6 -chrVII SGD CDS 495453 496502 . - . ID=YGL001C;Name=YGL001C;Alias=ERG26 -chrVII SGD CDS 497133 498034 . - . ID=YGR001C;Name=YGR001C;Alias=EFM5 -chrVII SGD CDS 498476 499906 . - . ID=YGR002C;Name=YGR002C;Alias=SWC4 -chrVII SGD CDS 500132 502366 . + . ID=YGR003W;Name=YGR003W;Alias=CUL3 -chrVII SGD CDS 502938 504326 . + . ID=YGR004W;Name=YGR004W;Alias=PEX31 -chrVII SGD CDS 504657 505859 . - . ID=YGR005C;Name=YGR005C;Alias=TFG2 -chrVII SGD CDS 506070 506825 . + . ID=YGR006W;Name=YGR006W;Alias=PRP18 -chrVII SGD CDS 506969 507940 . + . ID=YGR007W;Name=YGR007W;Alias=ECT1 -chrVII SGD CDS 508110 508364 . - . ID=YGR008C;Name=YGR008C;Alias=STF2 -chrVII SGD CDS 509047 511002 . - . ID=YGR009C;Name=YGR009C;Alias=SEC9 -chrVII SGD CDS 511545 512732 . + . ID=YGR010W;Name=YGR010W;Alias=NMA2 -chrVII SGD CDS 513159 514340 . + . ID=YGR012W;Name=YGR012W;Alias=MCY1 -chrVII SGD CDS 514554 516416 . + . ID=YGR013W;Name=YGR013W;Alias=SNU71 -chrVII SGD CDS 516943 520863 . + . ID=YGR014W;Name=YGR014W;Alias=MSB2 -chrVII SGD CDS 521090 522076 . - . ID=YGR015C;Name=YGR015C;Alias= -chrVII SGD CDS 522261 522833 . + . ID=YGR016W;Name=YGR016W;Alias= -chrVII SGD CDS 523787 524680 . + . ID=YGR017W;Name=YGR017W;Alias= -chrVII SGD CDS 524365 524694 . - . ID=YGR018C;Name=YGR018C;Alias= -chrVII SGD CDS 525229 526644 . + . ID=YGR019W;Name=YGR019W;Alias=UGA1 -chrVII SGD CDS 526973 527329 . - . ID=YGR020C;Name=YGR020C;Alias=VMA7 -chrVII SGD CDS 527632 528504 . + . ID=YGR021W;Name=YGR021W;Alias= -chrVII SGD CDS 529264 530919 . + . ID=YGR023W;Name=YGR023W;Alias=MTL1 -chrVII SGD CDS 531883 532596 . - . ID=YGR024C;Name=YGR024C;Alias=THG1 -chrVII SGD CDS 532985 533821 . + . ID=YGR026W;Name=YGR026W;Alias= -chrVII SGD CDS 534132 534785 . - . ID=YGR027C;Name=YGR027C;Alias=RPS25A -chrVII SGD CDS 542203 543291 . + . ID=YGR028W;Name=YGR028W;Alias=MSP1 -chrVII SGD CDS 543553 544205 . + . ID=YGR029W;Name=YGR029W;Alias=ERV1 -chrVII SGD CDS 545681 546157 . - . ID=YGR030C;Name=YGR030C;Alias=POP6 -chrVII SGD CDS 546441 547469 . + . ID=YGR031W;Name=YGR031W;Alias=IMO32 -chrVII SGD CDS 546809 547300 . - . ID=YGR031C-A;Name=YGR031C-A;Alias=NAG1 -chrVII SGD CDS 548264 553951 . + . ID=YGR032W;Name=YGR032W;Alias=GSC2 -chrVII SGD CDS 554248 554967 . - . ID=YGR033C;Name=YGR033C;Alias=TIM21 -chrVII SGD CDS 555812 556672 . + . ID=YGR034W;Name=YGR034W;Alias=RPL26B -chrVII SGD CDS 557072 557422 . - . ID=YGR035C;Name=YGR035C;Alias= -chrVII SGD CDS 557565 557786 . + . ID=YGR035W-A;Name=YGR035W-A;Alias= -chrVII SGD CDS 558149 558868 . - . ID=YGR036C;Name=YGR036C;Alias=CAX4 -chrVII SGD CDS 559731 559994 . - . ID=YGR037C;Name=YGR037C;Alias=ACB1 -chrVII SGD CDS 560682 561350 . + . ID=YGR038W;Name=YGR038W;Alias=ORM1 -chrVII SGD CDS 575398 576504 . + . ID=YGR040W;Name=YGR040W;Alias=KSS1 -chrVII SGD CDS 577487 579130 . + . ID=YGR041W;Name=YGR041W;Alias=BUD9 -chrVII SGD CDS 579476 580291 . + . ID=YGR042W;Name=YGR042W;Alias=MTE1 -chrVII SGD CDS 580435 581436 . - . ID=YGR043C;Name=YGR043C;Alias=NQM1 -chrVII SGD CDS 582990 583892 . - . ID=YGR044C;Name=YGR044C;Alias=RME1 -chrVII SGD CDS 584895 586052 . + . ID=YGR046W;Name=YGR046W;Alias=TAM41 -chrVII SGD CDS 586392 589469 . - . ID=YGR047C;Name=YGR047C;Alias=TFC4 -chrVII SGD CDS 589826 590911 . + . ID=YGR048W;Name=YGR048W;Alias=UFD1 -chrVII SGD CDS 591314 591877 . + . ID=YGR049W;Name=YGR049W;Alias=SCM4 -chrVII SGD CDS 592086 592442 . - . ID=YGR050C;Name=YGR050C;Alias= -chrVII SGD CDS 593596 594705 . + . ID=YGR052W;Name=YGR052W;Alias=FMP48 -chrVII SGD CDS 594986 595837 . - . ID=YGR053C;Name=YGR053C;Alias= -chrVII SGD CDS 596693 598621 . + . ID=YGR054W;Name=YGR054W;Alias= -chrVII SGD CDS 599417 601141 . + . ID=YGR055W;Name=YGR055W;Alias=MUP1 -chrVII SGD CDS 601661 604447 . + . ID=YGR056W;Name=YGR056W;Alias=RSC1 -chrVII SGD CDS 604773 605501 . - . ID=YGR057C;Name=YGR057C;Alias=LST7 -chrVII SGD CDS 606136 607143 . + . ID=YGR058W;Name=YGR058W;Alias=PEF1 -chrVII SGD CDS 607563 609101 . + . ID=YGR059W;Name=YGR059W;Alias=SPR3 -chrVII SGD CDS 610564 611493 . + . ID=YGR060W;Name=YGR060W;Alias=ERG25 -chrVII SGD CDS 611889 615965 . - . ID=YGR061C;Name=YGR061C;Alias=ADE6 -chrVII SGD CDS 616328 617278 . - . ID=YGR062C;Name=YGR062C;Alias=COX18 -chrVII SGD CDS 617516 617824 . - . ID=YGR063C;Name=YGR063C;Alias=SPT4 -chrVII SGD CDS 618077 619858 . - . ID=YGR065C;Name=YGR065C;Alias=VHT1 -chrVII SGD CDS 620921 621799 . - . ID=YGR066C;Name=YGR066C;Alias= -chrVII SGD CDS 622372 624786 . - . ID=YGR067C;Name=YGR067C;Alias= -chrVII SGD CDS 625324 627084 . - . ID=YGR068C;Name=YGR068C;Alias=ART5 -chrVII SGD CDS 627806 631273 . + . ID=YGR070W;Name=YGR070W;Alias=ROM1 -chrVII SGD CDS 631481 634063 . - . ID=YGR071C;Name=YGR071C;Alias=ENV11 -chrVII SGD CDS 634304 635467 . + . ID=YGR072W;Name=YGR072W;Alias=UPF3 -chrVII SGD CDS 635712 636152 . + . ID=YGR074W;Name=YGR074W;Alias=SMD1 -chrVII SGD CDS 636147 636875 . - . ID=YGR075C;Name=YGR075C;Alias=PRP38 -chrVII SGD CDS 637104 637577 . - . ID=YGR076C;Name=YGR076C;Alias=MRPL25 -chrVII SGD CDS 637744 639513 . - . ID=YGR077C;Name=YGR077C;Alias=PEX8 -chrVII SGD CDS 639772 640371 . - . ID=YGR078C;Name=YGR078C;Alias=PAC10 -chrVII SGD CDS 640720 641832 . + . ID=YGR079W;Name=YGR079W;Alias= -chrVII SGD CDS 642010 643008 . + . ID=YGR080W;Name=YGR080W;Alias=TWF1 -chrVII SGD CDS 643148 643780 . - . ID=YGR081C;Name=YGR081C;Alias=SLX9 -chrVII SGD CDS 644044 644595 . + . ID=YGR082W;Name=YGR082W;Alias=TOM20 -chrVII SGD CDS 644860 646815 . - . ID=YGR083C;Name=YGR083C;Alias=GCD2 -chrVII SGD CDS 647123 648142 . - . ID=YGR084C;Name=YGR084C;Alias=MRP13 -chrVII SGD CDS 648383 648907 . - . ID=YGR085C;Name=YGR085C;Alias=RPL11B -chrVII SGD CDS 649598 650617 . - . ID=YGR086C;Name=YGR086C;Alias=PIL1 -chrVII SGD CDS 651290 652981 . - . ID=YGR087C;Name=YGR087C;Alias=PDC6 -chrVII SGD CDS 654634 656322 . + . ID=YGR088W;Name=YGR088W;Alias=CTT1 -chrVII SGD CDS 656960 659770 . + . ID=YGR089W;Name=YGR089W;Alias=NNF2 -chrVII SGD CDS 662358 666071 . + . ID=YGR090W;Name=YGR090W;Alias=UTP22 -chrVII SGD CDS 666341 667825 . + . ID=YGR091W;Name=YGR091W;Alias=PRP31 -chrVII SGD CDS 668189 669907 . + . ID=YGR092W;Name=YGR092W;Alias=DBF2 -chrVII SGD CDS 670388 671911 . + . ID=YGR093W;Name=YGR093W;Alias=DRN1 -chrVII SGD CDS 672186 675500 . + . ID=YGR094W;Name=YGR094W;Alias=VAS1 -chrVII SGD CDS 675671 676342 . - . ID=YGR095C;Name=YGR095C;Alias=RRP46 -chrVII SGD CDS 676621 677565 . + . ID=YGR096W;Name=YGR096W;Alias=TPC1 -chrVII SGD CDS 678695 682135 . + . ID=YGR097W;Name=YGR097W;Alias=ASK10 -chrVII SGD CDS 682566 687458 . - . ID=YGR098C;Name=YGR098C;Alias=ESP1 -chrVII SGD CDS 687899 689965 . + . ID=YGR099W;Name=YGR099W;Alias=TEL2 -chrVII SGD CDS 690245 693097 . + . ID=YGR100W;Name=YGR100W;Alias=MDR1 -chrVII SGD CDS 693363 694403 . + . ID=YGR101W;Name=YGR101W;Alias=PCP1 -chrVII SGD CDS 694584 695135 . - . ID=YGR102C;Name=YGR102C;Alias=GTF1 -chrVII SGD CDS 695417 697234 . + . ID=YGR103W;Name=YGR103W;Alias=NOP7 -chrVII SGD CDS 697445 698368 . - . ID=YGR104C;Name=YGR104C;Alias=SRB5 -chrVII SGD CDS 698599 698832 . + . ID=YGR105W;Name=YGR105W;Alias=VMA21 -chrVII SGD CDS 698989 699786 . - . ID=YGR106C;Name=YGR106C;Alias=VOA1 -chrVII SGD CDS 703636 705051 . + . ID=YGR108W;Name=YGR108W;Alias=CLB1 -chrVII SGD CDS 705359 706501 . - . ID=YGR109C;Name=YGR109C;Alias=CLB6 -chrVII SGD CDS 713709 715046 . + . ID=YGR110W;Name=YGR110W;Alias=CLD1 -chrVII SGD CDS 715828 717030 . + . ID=YGR111W;Name=YGR111W;Alias= -chrVII SGD CDS 717358 718527 . + . ID=YGR112W;Name=YGR112W;Alias=SHY1 -chrVII SGD CDS 718893 719924 . + . ID=YGR113W;Name=YGR113W;Alias=DAM1 -chrVII SGD CDS 720409 724764 . + . ID=YGR116W;Name=YGR116W;Alias=SPT6 -chrVII SGD CDS 725049 726479 . - . ID=YGR117C;Name=YGR117C;Alias= -chrVII SGD CDS 726974 727730 . + . ID=YGR118W;Name=YGR118W;Alias=RPS23A -chrVII SGD CDS 728046 729671 . - . ID=YGR119C;Name=YGR119C;Alias=NUP57 -chrVII SGD CDS 730033 730821 . - . ID=YGR120C;Name=YGR120C;Alias=COG2 -chrVII SGD CDS 731449 732927 . - . ID=YGR121C;Name=YGR121C;Alias=MEP1 -chrVII SGD CDS 733412 733627 . + . ID=YGR121W-A;Name=YGR121W-A;Alias= -chrVII SGD CDS 733935 735143 . + . ID=YGR122W;Name=YGR122W;Alias= -chrVII SGD CDS 736662 738203 . - . ID=YGR123C;Name=YGR123C;Alias=PPT1 -chrVII SGD CDS 739944 741662 . + . ID=YGR124W;Name=YGR124W;Alias=ASN2 -chrVII SGD CDS 742325 745435 . + . ID=YGR125W;Name=YGR125W;Alias= -chrVII SGD CDS 745835 746527 . + . ID=YGR126W;Name=YGR126W;Alias= -chrVII SGD CDS 746798 747736 . + . ID=YGR127W;Name=YGR127W;Alias= -chrVII SGD CDS 747950 750091 . - . ID=YGR128C;Name=YGR128C;Alias=UTP8 -chrVII SGD CDS 750400 751047 . + . ID=YGR129W;Name=YGR129W;Alias=SYF2 -chrVII SGD CDS 751394 753844 . - . ID=YGR130C;Name=YGR130C;Alias= -chrVII SGD CDS 754726 755250 . + . ID=YGR131W;Name=YGR131W;Alias=FHN1 -chrVII SGD CDS 755589 756452 . - . ID=YGR132C;Name=YGR132C;Alias=PHB1 -chrVII SGD CDS 756896 757447 . + . ID=YGR133W;Name=YGR133W;Alias=PEX4 -chrVII SGD CDS 757770 761138 . + . ID=YGR134W;Name=YGR134W;Alias=CAF130 -chrVII SGD CDS 761392 762168 . + . ID=YGR135W;Name=YGR135W;Alias=PRE9 -chrVII SGD CDS 762428 763153 . + . ID=YGR136W;Name=YGR136W;Alias=LSB1 -chrVII SGD CDS 763762 765606 . - . ID=YGR138C;Name=YGR138C;Alias=TPO2 -chrVII SGD CDS 767429 770299 . + . ID=YGR140W;Name=YGR140W;Alias=CBF2 -chrVII SGD CDS 770569 771972 . + . ID=YGR141W;Name=YGR141W;Alias=VPS62 -chrVII SGD CDS 772454 773686 . + . ID=YGR142W;Name=YGR142W;Alias=BTN2 -chrVII SGD CDS 775193 777508 . + . ID=YGR143W;Name=YGR143W;Alias=SKN1 -chrVII SGD CDS 780399 781379 . + . ID=YGR144W;Name=YGR144W;Alias=THI4 -chrVII SGD CDS 781767 783890 . + . ID=YGR145W;Name=YGR145W;Alias=ENP2 -chrVII SGD CDS 784223 784858 . - . ID=YGR146C;Name=YGR146C;Alias=ECL1 -chrVII SGD CDS 785276 785437 . - . ID=YGR146C-A;Name=YGR146C-A;Alias= -chrVII SGD CDS 786054 786920 . - . ID=YGR147C;Name=YGR147C;Alias=NAT2 -chrVII SGD CDS 787312 788178 . - . ID=YGR148C;Name=YGR148C;Alias=RPL24B -chrVII SGD CDS 789031 790329 . + . ID=YGR149W;Name=YGR149W;Alias=GPC1 -chrVII SGD CDS 790459 793053 . - . ID=YGR150C;Name=YGR150C;Alias=CCM1 -chrVII SGD CDS 794674 795492 . - . ID=YGR152C;Name=YGR152C;Alias=RSR1 -chrVII SGD CDS 796092 796745 . + . ID=YGR153W;Name=YGR153W;Alias= -chrVII SGD CDS 796798 797868 . - . ID=YGR154C;Name=YGR154C;Alias=GTO1 -chrVII SGD CDS 798543 800066 . + . ID=YGR155W;Name=YGR155W;Alias=CYS4 -chrVII SGD CDS 800546 801823 . + . ID=YGR156W;Name=YGR156W;Alias=PTI1 -chrVII SGD CDS 802440 805049 . + . ID=YGR157W;Name=YGR157W;Alias=CHO2 -chrVII SGD CDS 805269 806021 . - . ID=YGR158C;Name=YGR158C;Alias=MTR3 -chrVII SGD CDS 806412 807656 . - . ID=YGR159C;Name=YGR159C;Alias=NSR1 -chrVII SGD CDS 808629 809420 . - . ID=YGR161C;Name=YGR161C;Alias=RTS3 -chrVII SGD CDS 810227 810505 . + . ID=YGR161W-C;Name=YGR161W-C;Alias= -chrVII SGD CDS 824059 826917 . + . ID=YGR162W;Name=YGR162W;Alias=TIF4631 -chrVII SGD CDS 827552 828577 . + . ID=YGR163W;Name=YGR163W;Alias=GTR2 -chrVII SGD CDS 829116 830153 . + . ID=YGR165W;Name=YGR165W;Alias=MRPS35 -chrVII SGD CDS 830515 832197 . + . ID=YGR166W;Name=YGR166W;Alias=TRS65 -chrVII SGD CDS 832456 833157 . + . ID=YGR167W;Name=YGR167W;Alias=CLC1 -chrVII SGD CDS 833352 834482 . - . ID=YGR168C;Name=YGR168C;Alias= -chrVII SGD CDS 834689 835903 . - . ID=YGR169C;Name=YGR169C;Alias=PUS6 -chrVII SGD CDS 836387 836665 . - . ID=YGR169C-A;Name=YGR169C-A;Alias=LSO2 -chrVII SGD CDS 837142 840558 . + . ID=YGR170W;Name=YGR170W;Alias=PSD2 -chrVII SGD CDS 840824 842551 . - . ID=YGR171C;Name=YGR171C;Alias=MSM1 -chrVII SGD CDS 842845 843591 . - . ID=YGR172C;Name=YGR172C;Alias=YIP1 -chrVII SGD CDS 843854 844960 . + . ID=YGR173W;Name=YGR173W;Alias=RBG2 -chrVII SGD CDS 845893 846405 . - . ID=YGR174C;Name=YGR174C;Alias=CBP4 -chrVII SGD CDS 846655 846741 . + . ID=YGR174W-A;Name=YGR174W-A;Alias= -chrVII SGD CDS 846933 848423 . - . ID=YGR175C;Name=YGR175C;Alias=ERG1 -chrVII SGD CDS 848829 850436 . - . ID=YGR177C;Name=YGR177C;Alias=ATF2 -chrVII SGD CDS 851047 853215 . - . ID=YGR178C;Name=YGR178C;Alias=PBP1 -chrVII SGD CDS 853675 854895 . - . ID=YGR179C;Name=YGR179C;Alias=OKP1 -chrVII SGD CDS 855264 856301 . - . ID=YGR180C;Name=YGR180C;Alias=RNR4 -chrVII SGD CDS 858287 858604 . + . ID=YGR181W;Name=YGR181W;Alias=TIM13 -chrVII SGD CDS 859063 859476 . - . ID=YGR183C;Name=YGR183C;Alias=QCR9 -chrVII SGD CDS 859901 865753 . - . ID=YGR184C;Name=YGR184C;Alias=UBR1 -chrVII SGD CDS 866336 867520 . - . ID=YGR185C;Name=YGR185C;Alias=TYS1 -chrVII SGD CDS 867774 869981 . + . ID=YGR186W;Name=YGR186W;Alias=TFG1 -chrVII SGD CDS 870232 871416 . - . ID=YGR187C;Name=YGR187C;Alias=HGH1 -chrVII SGD CDS 872044 875109 . - . ID=YGR188C;Name=YGR188C;Alias=BUB1 -chrVII SGD CDS 876669 878192 . - . ID=YGR189C;Name=YGR189C;Alias=CRH1 -chrVII SGD CDS 880420 882231 . + . ID=YGR191W;Name=YGR191W;Alias=HIP1 -chrVII SGD CDS 882812 883810 . - . ID=YGR192C;Name=YGR192C;Alias=TDH3 -chrVII SGD CDS 884509 885741 . - . ID=YGR193C;Name=YGR193C;Alias=PDX1 -chrVII SGD CDS 886073 887875 . - . ID=YGR194C;Name=YGR194C;Alias=XKS1 -chrVII SGD CDS 888882 889622 . + . ID=YGR195W;Name=YGR195W;Alias=SKI6 -chrVII SGD CDS 889733 892186 . - . ID=YGR196C;Name=YGR196C;Alias=FYV8 -chrVII SGD CDS 892497 894140 . - . ID=YGR197C;Name=YGR197C;Alias=SNG1 -chrVII SGD CDS 894693 897146 . + . ID=YGR198W;Name=YGR198W;Alias=YPP1 -chrVII SGD CDS 897502 899781 . + . ID=YGR199W;Name=YGR199W;Alias=PMT6 -chrVII SGD CDS 899904 902270 . - . ID=YGR200C;Name=YGR200C;Alias=ELP2 -chrVII SGD CDS 902520 903197 . - . ID=YGR201C;Name=YGR201C;Alias= -chrVII SGD CDS 903474 904748 . - . ID=YGR202C;Name=YGR202C;Alias=PCT1 -chrVII SGD CDS 905237 905683 . + . ID=YGR203W;Name=YGR203W;Alias=YCH1 -chrVII SGD CDS 905934 908774 . + . ID=YGR204W;Name=YGR204W;Alias=ADE3 -chrVII SGD CDS 909061 909174 . - . ID=YGR204C-A;Name=YGR204C-A;Alias= -chrVII SGD CDS 909213 910085 . + . ID=YGR205W;Name=YGR205W;Alias=TDA10 -chrVII SGD CDS 910432 910737 . + . ID=YGR206W;Name=YGR206W;Alias=MVB12 -chrVII SGD CDS 910843 911628 . - . ID=YGR207C;Name=YGR207C;Alias=CIR1 -chrVII SGD CDS 911883 912812 . + . ID=YGR208W;Name=YGR208W;Alias=SER2 -chrVII SGD CDS 912913 913227 . - . ID=YGR209C;Name=YGR209C;Alias=TRX2 -chrVII SGD CDS 913503 914738 . - . ID=YGR210C;Name=YGR210C;Alias= -chrVII SGD CDS 915241 916701 . + . ID=YGR211W;Name=YGR211W;Alias=ZPR1 -chrVII SGD CDS 917040 918446 . + . ID=YGR212W;Name=YGR212W;Alias=SLI1 -chrVII SGD CDS 918512 919465 . - . ID=YGR213C;Name=YGR213C;Alias=RTA1 -chrVII SGD CDS 920575 921788 . + . ID=YGR214W;Name=YGR214W;Alias=RPS0A -chrVII SGD CDS 922175 922507 . + . ID=YGR215W;Name=YGR215W;Alias=RSM27 -chrVII SGD CDS 922633 924462 . - . ID=YGR216C;Name=YGR216C;Alias=GPI1 -chrVII SGD CDS 924696 930815 . + . ID=YGR217W;Name=YGR217W;Alias=CCH1 -chrVII SGD CDS 932541 935795 . + . ID=YGR218W;Name=YGR218W;Alias=CRM1 -chrVII SGD CDS 936074 936883 . - . ID=YGR220C;Name=YGR220C;Alias=MRPL9 -chrVII SGD CDS 937124 938992 . - . ID=YGR221C;Name=YGR221C;Alias=TOS2 -chrVII SGD CDS 939923 940804 . + . ID=YGR222W;Name=YGR222W;Alias=PET54 -chrVII SGD CDS 940869 942215 . - . ID=YGR223C;Name=YGR223C;Alias=HSV2 -chrVII SGD CDS 942806 944647 . + . ID=YGR224W;Name=YGR224W;Alias=AZR1 -chrVII SGD CDS 945145 947019 . + . ID=YGR225W;Name=YGR225W;Alias=AMA1 -chrVII SGD CDS 947420 948997 . + . ID=YGR227W;Name=YGR227W;Alias=DIE2 -chrVII SGD CDS 949382 950899 . - . ID=YGR229C;Name=YGR229C;Alias=SMI1 -chrVII SGD CDS 951894 952307 . + . ID=YGR230W;Name=YGR230W;Alias=BNS1 -chrVII SGD CDS 952548 953480 . - . ID=YGR231C;Name=YGR231C;Alias=PHB2 -chrVII SGD CDS 953960 954646 . + . ID=YGR232W;Name=YGR232W;Alias=NAS6 -chrVII SGD CDS 954674 958210 . - . ID=YGR233C;Name=YGR233C;Alias=PHO81 -chrVII SGD CDS 959904 961103 . + . ID=YGR234W;Name=YGR234W;Alias=YHB1 -chrVII SGD CDS 961360 962061 . - . ID=YGR235C;Name=YGR235C;Alias=MIC26 -chrVII SGD CDS 962530 962817 . - . ID=YGR236C;Name=YGR236C;Alias=SPG1 -chrVII SGD CDS 963298 965655 . - . ID=YGR237C;Name=YGR237C;Alias= -chrVII SGD CDS 966039 968687 . - . ID=YGR238C;Name=YGR238C;Alias=KEL2 -chrVII SGD CDS 969187 970053 . - . ID=YGR239C;Name=YGR239C;Alias=PEX21 -chrVII SGD CDS 970771 973734 . - . ID=YGR240C;Name=YGR240C;Alias=PFK1 -chrVII SGD CDS 974577 974777 . - . ID=YGR240C-A;Name=YGR240C-A;Alias= -chrVII SGD CDS 974875 976581 . - . ID=YGR241C;Name=YGR241C;Alias=YAP1802 -chrVII SGD CDS 977336 977776 . + . ID=YGR243W;Name=YGR243W;Alias=MPC3 -chrVII SGD CDS 978036 979319 . - . ID=YGR244C;Name=YGR244C;Alias=LSC2 -chrVII SGD CDS 979765 982068 . - . ID=YGR245C;Name=YGR245C;Alias=SDA1 -chrVII SGD CDS 982482 984272 . - . ID=YGR246C;Name=YGR246C;Alias=BRF1 -chrVII SGD CDS 984966 985685 . + . ID=YGR247W;Name=YGR247W;Alias=CPD1 -chrVII SGD CDS 985972 986739 . + . ID=YGR248W;Name=YGR248W;Alias=SOL4 -chrVII SGD CDS 988049 989419 . + . ID=YGR249W;Name=YGR249W;Alias=MGA1 -chrVII SGD CDS 991176 993521 . - . ID=YGR250C;Name=YGR250C;Alias=RIE1 -chrVII SGD CDS 995639 996229 . + . ID=YGR251W;Name=YGR251W;Alias=NOP19 -chrVII SGD CDS 996869 998188 . + . ID=YGR252W;Name=YGR252W;Alias=GCN5 -chrVII SGD CDS 998358 999140 . - . ID=YGR253C;Name=YGR253C;Alias=PUP2 -chrVII SGD CDS 1000927 1002240 . + . ID=YGR254W;Name=YGR254W;Alias=ENO1 -chrVII SGD CDS 1002523 1003962 . - . ID=YGR255C;Name=YGR255C;Alias=COQ6 -chrVII SGD CDS 1004624 1006102 . + . ID=YGR256W;Name=YGR256W;Alias=GND2 -chrVII SGD CDS 1006205 1007305 . - . ID=YGR257C;Name=YGR257C;Alias=MTM1 -chrVII SGD CDS 1007671 1010766 . - . ID=YGR258C;Name=YGR258C;Alias=RAD2 -chrVII SGD CDS 1012485 1014089 . + . ID=YGR260W;Name=YGR260W;Alias=TNA1 -chrVII SGD CDS 1014321 1016750 . - . ID=YGR261C;Name=YGR261C;Alias=APL6 -chrVII SGD CDS 1016974 1017759 . - . ID=YGR262C;Name=YGR262C;Alias=BUD32 -chrVII SGD CDS 1017967 1019241 . - . ID=YGR263C;Name=YGR263C;Alias=SAY1 -chrVII SGD CDS 1019598 1021853 . - . ID=YGR264C;Name=YGR264C;Alias=MES1 -chrVII SGD CDS 1022656 1024761 . + . ID=YGR266W;Name=YGR266W;Alias= -chrVII SGD CDS 1025004 1025735 . - . ID=YGR267C;Name=YGR267C;Alias=FOL2 -chrVII SGD CDS 1026057 1026653 . - . ID=YGR268C;Name=YGR268C;Alias=HUA1 -chrVII SGD CDS 1027370 1031509 . + . ID=YGR270W;Name=YGR270W;Alias=YTA7 -chrVII SGD CDS 1031791 1037694 . + . ID=YGR271W;Name=YGR271W;Alias=SLH1 -chrVII SGD CDS 1037800 1038501 . - . ID=YGR271C-A;Name=YGR271C-A;Alias=EFG1 -chrVII SGD CDS 1038715 1039239 . - . ID=YGR273C;Name=YGR273C;Alias= -chrVII SGD CDS 1039895 1043095 . - . ID=YGR274C;Name=YGR274C;Alias=TAF1 -chrVII SGD CDS 1043276 1043749 . + . ID=YGR275W;Name=YGR275W;Alias=RTT102 -chrVII SGD CDS 1043819 1045480 . - . ID=YGR276C;Name=YGR276C;Alias=RNH70 -chrVII SGD CDS 1045644 1046561 . - . ID=YGR277C;Name=YGR277C;Alias=CAB4 -chrVII SGD CDS 1046731 1048464 . + . ID=YGR278W;Name=YGR278W;Alias=CWC22 -chrVII SGD CDS 1048798 1049958 . - . ID=YGR279C;Name=YGR279C;Alias=SCW4 -chrVII SGD CDS 1050910 1051725 . - . ID=YGR280C;Name=YGR280C;Alias=PXR1 -chrVII SGD CDS 1052824 1057257 . + . ID=YGR281W;Name=YGR281W;Alias=YOR1 -chrVII SGD CDS 1057783 1058724 . - . ID=YGR282C;Name=YGR282C;Alias=BGL2 -chrVII SGD CDS 1059015 1060040 . - . ID=YGR283C;Name=YGR283C;Alias= -chrVII SGD CDS 1060658 1061590 . - . ID=YGR284C;Name=YGR284C;Alias=ERV29 -chrVII SGD CDS 1061852 1063153 . - . ID=YGR285C;Name=YGR285C;Alias=ZUO1 -chrVII SGD CDS 1063813 1064940 . - . ID=YGR286C;Name=YGR286C;Alias=BIO2 -chrVII SGD CDS 1067222 1068991 . - . ID=YGR287C;Name=YGR287C;Alias=IMA1 -chrVII SGD CDS 1070293 1071714 . + . ID=YGR288W;Name=YGR288W;Alias=MAL13 -chrVII SGD CDS 1073963 1075813 . - . ID=YGR289C;Name=YGR289C;Alias=MAL11 -chrVII SGD CDS 1076599 1078353 . + . ID=YGR292W;Name=YGR292W;Alias=MAL12 -chrVII SGD CDS 1080306 1080668 . + . ID=YGR294W;Name=YGR294W;Alias=PAU12 -chrVII SGD CDS 1081584 1082729 . - . ID=YGR295C;Name=YGR295C;Alias=COS6 -chrVII SGD CDS 1084864 1090591 . + . ID=YGR296W;Name=YGR296W;Alias=YRF1-3 -chrVIII SGD CDS 445 3311 . - . ID=YHL050C;Name=YHL050C;Alias= -chrVIII SGD CDS 3726 4541 . - . ID=YHL049C;Name=YHL049C;Alias= -chrVIII SGD CDS 5663 5797 . - . ID=YHL048C-A;Name=YHL048C-A;Alias= -chrVIII SGD CDS 6401 7546 . + . ID=YHL048W;Name=YHL048W;Alias=COS8 -chrVIII SGD CDS 8351 10213 . - . ID=YHL047C;Name=YHL047C;Alias=ARN2 -chrVIII SGD CDS 11923 12285 . - . ID=YHL046C;Name=YHL046C;Alias=PAU13 -chrVIII SGD CDS 13565 14272 . + . ID=YHL044W;Name=YHL044W;Alias= -chrVIII SGD CDS 14901 15413 . + . ID=YHL043W;Name=YHL043W;Alias=ECM34 -chrVIII SGD CDS 15667 16119 . + . ID=YHL042W;Name=YHL042W;Alias= -chrVIII SGD CDS 19088 20971 . - . ID=YHL040C;Name=YHL040C;Alias=ARN1 -chrVIII SGD CDS 21783 23540 . + . ID=YHL039W;Name=YHL039W;Alias=EFM1 -chrVIII SGD CDS 23617 25509 . - . ID=YHL038C;Name=YHL038C;Alias=CBP2 -chrVIII SGD CDS 26241 27881 . + . ID=YHL036W;Name=YHL036W;Alias=MUP3 -chrVIII SGD CDS 27978 32756 . - . ID=YHL035C;Name=YHL035C;Alias=VMR1 -chrVIII SGD CDS 33193 34077 . - . ID=YHL034C;Name=YHL034C;Alias=SBP1 -chrVIII SGD CDS 35255 36025 . - . ID=YHL033C;Name=YHL033C;Alias=RPL8A -chrVIII SGD CDS 36379 38508 . - . ID=YHL032C;Name=YHL032C;Alias=GUT1 -chrVIII SGD CDS 38815 39486 . - . ID=YHL031C;Name=YHL031C;Alias=GOS1 -chrVIII SGD CDS 40084 45690 . + . ID=YHL030W;Name=YHL030W;Alias=ECM29 -chrVIII SGD CDS 45929 47968 . - . ID=YHL029C;Name=YHL029C;Alias=OCA5 -chrVIII SGD CDS 48763 50580 . + . ID=YHL028W;Name=YHL028W;Alias=WSC4 -chrVIII SGD CDS 51111 52988 . + . ID=YHL027W;Name=YHL027W;Alias=RIM101 -chrVIII SGD CDS 53219 54166 . - . ID=YHL026C;Name=YHL026C;Alias= -chrVIII SGD CDS 54851 55849 . + . ID=YHL025W;Name=YHL025W;Alias=SNF6 -chrVIII SGD CDS 56649 58790 . + . ID=YHL024W;Name=YHL024W;Alias=RIM4 -chrVIII SGD CDS 59123 62563 . - . ID=YHL023C;Name=YHL023C;Alias=NPR3 -chrVIII SGD CDS 62961 64157 . - . ID=YHL022C;Name=YHL022C;Alias=SPO11 -chrVIII SGD CDS 64462 65859 . - . ID=YHL021C;Name=YHL021C;Alias=AIM17 -chrVIII SGD CDS 66242 67456 . - . ID=YHL020C;Name=YHL020C;Alias=OPI1 -chrVIII SGD CDS 67731 69548 . - . ID=YHL019C;Name=YHL019C;Alias=APM2 -chrVIII SGD CDS 69708 70070 . + . ID=YHL018W;Name=YHL018W;Alias= -chrVIII SGD CDS 70276 71874 . + . ID=YHL017W;Name=YHL017W;Alias= -chrVIII SGD CDS 72037 74244 . - . ID=YHL016C;Name=YHL016C;Alias=DUR3 -chrVIII SGD CDS 74699 74782 . + . ID=YHL015W-A;Name=YHL015W-A;Alias= -chrVIII SGD CDS 75412 75777 . + . ID=YHL015W;Name=YHL015W;Alias=RPS20 -chrVIII SGD CDS 76097 77314 . - . ID=YHL014C;Name=YHL014C;Alias=YLF2 -chrVIII SGD CDS 77430 78353 . - . ID=YHL013C;Name=YHL013C;Alias=OTU2 -chrVIII SGD CDS 78936 80417 . + . ID=YHL012W;Name=YHL012W;Alias= -chrVIII SGD CDS 80654 81616 . - . ID=YHL011C;Name=YHL011C;Alias=PRS3 -chrVIII SGD CDS 81964 83721 . - . ID=YHL010C;Name=YHL010C;Alias=ETP1 -chrVIII SGD CDS 84068 85060 . - . ID=YHL009C;Name=YHL009C;Alias=YAP3 -chrVIII SGD CDS 92627 94510 . - . ID=YHL008C;Name=YHL008C;Alias= -chrVIII SGD CDS 95118 97937 . - . ID=YHL007C;Name=YHL007C;Alias=STE20 -chrVIII SGD CDS 98343 98795 . - . ID=YHL006C;Name=YHL006C;Alias=SHU1 -chrVIII SGD CDS 99219 100403 . + . ID=YHL004W;Name=YHL004W;Alias=MRP4 -chrVIII SGD CDS 100648 101883 . - . ID=YHL003C;Name=YHL003C;Alias=LAG1 -chrVIII SGD CDS 102612 103970 . + . ID=YHL002W;Name=YHL002W;Alias=HSE1 -chrVIII SGD CDS 104277 105091 . + . ID=YHL001W;Name=YHL001W;Alias=RPL14B -chrVIII SGD CDS 106055 107368 . + . ID=YHR001W;Name=YHR001W;Alias=OSH7 -chrVIII SGD CDS 107826 108122 . + . ID=YHR001W-A;Name=YHR001W-A;Alias=QCR10 -chrVIII SGD CDS 108812 109885 . + . ID=YHR002W;Name=YHR002W;Alias=LEU5 -chrVIII SGD CDS 110028 111317 . - . ID=YHR003C;Name=YHR003C;Alias=TCD1 -chrVIII SGD CDS 111754 113094 . - . ID=YHR004C;Name=YHR004C;Alias=NEM1 -chrVIII SGD CDS 113499 114917 . - . ID=YHR005C;Name=YHR005C;Alias=GPA1 -chrVIII SGD CDS 115620 115901 . - . ID=YHR005C-A;Name=YHR005C-A;Alias=TIM10 -chrVIII SGD CDS 117814 119439 . + . ID=YHR006W;Name=YHR006W;Alias=STP2 -chrVIII SGD CDS 120091 121683 . - . ID=YHR007C;Name=YHR007C;Alias=ERG11 -chrVIII SGD CDS 122550 122765 . - . ID=YHR007C-A;Name=YHR007C-A;Alias= -chrVIII SGD CDS 122889 123590 . - . ID=YHR008C;Name=YHR008C;Alias=SOD2 -chrVIII SGD CDS 124109 125680 . - . ID=YHR009C;Name=YHR009C;Alias=TDA3 -chrVIII SGD CDS 126521 127492 . + . ID=YHR010W;Name=YHR010W;Alias=RPL27A -chrVIII SGD CDS 127780 129120 . + . ID=YHR011W;Name=YHR011W;Alias=DIA4 -chrVIII SGD CDS 129481 130448 . + . ID=YHR012W;Name=YHR012W;Alias=VPS29 -chrVIII SGD CDS 130730 131446 . - . ID=YHR013C;Name=YHR013C;Alias=ARD1 -chrVIII SGD CDS 132047 132922 . + . ID=YHR014W;Name=YHR014W;Alias=SPO13 -chrVIII SGD CDS 134554 136533 . + . ID=YHR015W;Name=YHR015W;Alias=MIP6 -chrVIII SGD CDS 136881 138455 . - . ID=YHR016C;Name=YHR016C;Alias=YSC84 -chrVIII SGD CDS 138694 139851 . + . ID=YHR017W;Name=YHR017W;Alias=YSC83 -chrVIII SGD CDS 140011 141402 . - . ID=YHR018C;Name=YHR018C;Alias=ARG4 -chrVIII SGD CDS 141894 143558 . - . ID=YHR019C;Name=YHR019C;Alias=DED81 -chrVIII SGD CDS 143996 146062 . + . ID=YHR020W;Name=YHR020W;Alias= -chrVIII SGD CDS 147871 148669 . - . ID=YHR021C;Name=YHR021C;Alias=RPS27B -chrVIII SGD CDS 149225 149680 . + . ID=YHR021W-A;Name=YHR021W-A;Alias=ECM12 -chrVIII SGD CDS 149575 150345 . - . ID=YHR022C;Name=YHR022C;Alias= -chrVIII SGD CDS 151217 151306 . - . ID=YHR022C-A;Name=YHR022C-A;Alias= -chrVIII SGD CDS 151666 157452 . + . ID=YHR023W;Name=YHR023W;Alias=MYO1 -chrVIII SGD CDS 157744 159192 . - . ID=YHR024C;Name=YHR024C;Alias=MAS2 -chrVIII SGD CDS 159438 160511 . + . ID=YHR025W;Name=YHR025W;Alias=THR1 -chrVIII SGD CDS 160844 161485 . + . ID=YHR026W;Name=YHR026W;Alias=VMA16 -chrVIII SGD CDS 161730 164711 . - . ID=YHR027C;Name=YHR027C;Alias=RPN1 -chrVIII SGD CDS 164978 167434 . - . ID=YHR028C;Name=YHR028C;Alias=DAP2 -chrVIII SGD CDS 167677 168561 . - . ID=YHR029C;Name=YHR029C;Alias=YHI9 -chrVIII SGD CDS 168890 170344 . - . ID=YHR030C;Name=YHR030C;Alias=SLT2 -chrVIII SGD CDS 170799 172970 . - . ID=YHR031C;Name=YHR031C;Alias=RRM3 -chrVIII SGD CDS 173344 175089 . + . ID=YHR032W;Name=YHR032W;Alias=ERC1 -chrVIII SGD CDS 175548 176819 . + . ID=YHR033W;Name=YHR033W;Alias= -chrVIII SGD CDS 176965 177999 . - . ID=YHR034C;Name=YHR034C;Alias=PIH1 -chrVIII SGD CDS 178219 180111 . + . ID=YHR035W;Name=YHR035W;Alias=NEL1 -chrVIII SGD CDS 180345 181760 . + . ID=YHR036W;Name=YHR036W;Alias=BRL1 -chrVIII SGD CDS 181977 183704 . + . ID=YHR037W;Name=YHR037W;Alias=PUT2 -chrVIII SGD CDS 184066 184758 . + . ID=YHR038W;Name=YHR038W;Alias=RRF1 -chrVIII SGD CDS 184875 186809 . - . ID=YHR039C;Name=YHR039C;Alias=MSC7 -chrVIII SGD CDS 187173 187679 . - . ID=YHR039C-A;Name=YHR039C-A;Alias=VMA10 -chrVIII SGD CDS 187924 189024 . + . ID=YHR040W;Name=YHR040W;Alias=BCD1 -chrVIII SGD CDS 189131 189864 . - . ID=YHR041C;Name=YHR041C;Alias=SRB2 -chrVIII SGD CDS 190543 192618 . + . ID=YHR042W;Name=YHR042W;Alias=NCP1 -chrVIII SGD CDS 192805 193545 . - . ID=YHR043C;Name=YHR043C;Alias=DOG2 -chrVIII SGD CDS 194068 194808 . - . ID=YHR044C;Name=YHR044C;Alias=DOG1 -chrVIII SGD CDS 195551 197233 . + . ID=YHR045W;Name=YHR045W;Alias= -chrVIII SGD CDS 197398 198285 . - . ID=YHR046C;Name=YHR046C;Alias=INM1 -chrVIII SGD CDS 198740 201310 . - . ID=YHR047C;Name=YHR047C;Alias=AAP1 -chrVIII SGD CDS 204607 206151 . + . ID=YHR048W;Name=YHR048W;Alias=YHK8 -chrVIII SGD CDS 206462 207193 . + . ID=YHR049W;Name=YHR049W;Alias=FSH1 -chrVIII SGD CDS 207654 209303 . + . ID=YHR050W;Name=YHR050W;Alias=SMF2 -chrVIII SGD CDS 209475 209645 . + . ID=YHR050W-A;Name=YHR050W-A;Alias= -chrVIII SGD CDS 209705 210151 . + . ID=YHR051W;Name=YHR051W;Alias=COX6 -chrVIII SGD CDS 210848 211978 . + . ID=YHR052W;Name=YHR052W;Alias=CIC1 -chrVIII SGD CDS 212535 212720 . - . ID=YHR053C;Name=YHR053C;Alias=CUP1-1 -chrVIII SGD CDS 213185 214249 . - . ID=YHR054C;Name=YHR054C;Alias= -chrVIII SGD CDS 214533 214718 . - . ID=YHR055C;Name=YHR055C;Alias=CUP1-2 -chrVIII SGD CDS 215183 217834 . - . ID=YHR056C;Name=YHR056C;Alias=RSC30 -chrVIII SGD CDS 218226 218843 . - . ID=YHR057C;Name=YHR057C;Alias=CPR2 -chrVIII SGD CDS 218997 219884 . - . ID=YHR058C;Name=YHR058C;Alias=MED6 -chrVIII SGD CDS 220108 220500 . + . ID=YHR059W;Name=YHR059W;Alias=FYV4 -chrVIII SGD CDS 220725 221270 . + . ID=YHR060W;Name=YHR060W;Alias=VMA22 -chrVIII SGD CDS 221534 222478 . - . ID=YHR061C;Name=YHR061C;Alias=GIC1 -chrVIII SGD CDS 222877 223758 . - . ID=YHR062C;Name=YHR062C;Alias=RPP1 -chrVIII SGD CDS 224030 225169 . - . ID=YHR063C;Name=YHR063C;Alias=PAN5 -chrVIII SGD CDS 225525 227141 . - . ID=YHR064C;Name=YHR064C;Alias=SSZ1 -chrVIII SGD CDS 227532 229037 . - . ID=YHR065C;Name=YHR065C;Alias=RRP3 -chrVIII SGD CDS 229335 230696 . + . ID=YHR066W;Name=YHR066W;Alias=SSF1 -chrVIII SGD CDS 230970 231812 . + . ID=YHR067W;Name=YHR067W;Alias=HTD2 -chrVIII SGD CDS 232133 233296 . + . ID=YHR068W;Name=YHR068W;Alias=DYS1 -chrVIII SGD CDS 233579 234658 . - . ID=YHR069C;Name=YHR069C;Alias=RRP4 -chrVIII SGD CDS 234881 236380 . + . ID=YHR070W;Name=YHR070W;Alias=TRM5 -chrVIII SGD CDS 237004 237693 . + . ID=YHR071W;Name=YHR071W;Alias=PCL5 -chrVIII SGD CDS 239098 241293 . + . ID=YHR072W;Name=YHR072W;Alias=ERG7 -chrVIII SGD CDS 241664 241840 . + . ID=YHR072W-A;Name=YHR072W-A;Alias=NOP10 -chrVIII SGD CDS 242582 245572 . + . ID=YHR073W;Name=YHR073W;Alias=OSH3 -chrVIII SGD CDS 246193 248337 . + . ID=YHR074W;Name=YHR074W;Alias=QNS1 -chrVIII SGD CDS 248439 249641 . - . ID=YHR075C;Name=YHR075C;Alias=PPE1 -chrVIII SGD CDS 251101 252225 . + . ID=YHR076W;Name=YHR076W;Alias=PTC7 -chrVIII SGD CDS 252374 255756 . - . ID=YHR077C;Name=YHR077C;Alias=NMD2 -chrVIII SGD CDS 256360 258018 . + . ID=YHR078W;Name=YHR078W;Alias= -chrVIII SGD CDS 258244 261591 . - . ID=YHR079C;Name=YHR079C;Alias=IRE1 -chrVIII SGD CDS 262192 262553 . - . ID=YHR079C-A;Name=YHR079C-A;Alias=SAE3 -chrVIII SGD CDS 262801 266838 . - . ID=YHR080C;Name=YHR080C;Alias=LAM4 -chrVIII SGD CDS 267538 268092 . + . ID=YHR081W;Name=YHR081W;Alias=LRP1 -chrVIII SGD CDS 268459 271548 . - . ID=YHR082C;Name=YHR082C;Alias=KSP1 -chrVIII SGD CDS 272627 273616 . + . ID=YHR083W;Name=YHR083W;Alias=SAM35 -chrVIII SGD CDS 274174 276240 . + . ID=YHR084W;Name=YHR084W;Alias=STE12 -chrVIII SGD CDS 276764 277768 . + . ID=YHR085W;Name=YHR085W;Alias=IPI1 -chrVIII SGD CDS 278153 279724 . + . ID=YHR086W;Name=YHR086W;Alias=NAM8 -chrVIII SGD CDS 280231 280392 . + . ID=YHR086W-A;Name=YHR086W-A;Alias= -chrVIII SGD CDS 280820 281155 . + . ID=YHR087W;Name=YHR087W;Alias=RTC3 -chrVIII SGD CDS 281495 282382 . + . ID=YHR088W;Name=YHR088W;Alias=RPF1 -chrVIII SGD CDS 282681 283298 . - . ID=YHR089C;Name=YHR089C;Alias=GAR1 -chrVIII SGD CDS 283777 284625 . - . ID=YHR090C;Name=YHR090C;Alias=YNG2 -chrVIII SGD CDS 284839 286770 . - . ID=YHR091C;Name=YHR091C;Alias=MSR1 -chrVIII SGD CDS 287081 288811 . - . ID=YHR092C;Name=YHR092C;Alias=HXT4 -chrVIII SGD CDS 290913 292625 . - . ID=YHR094C;Name=YHR094C;Alias=HXT1 -chrVIII SGD CDS 294669 296447 . - . ID=YHR096C;Name=YHR096C;Alias=HXT5 -chrVIII SGD CDS 297385 298609 . - . ID=YHR097C;Name=YHR097C;Alias= -chrVIII SGD CDS 299145 301934 . - . ID=YHR098C;Name=YHR098C;Alias=SFB3 -chrVIII SGD CDS 302761 313995 . + . ID=YHR099W;Name=YHR099W;Alias=TRA1 -chrVIII SGD CDS 314116 314673 . - . ID=YHR100C;Name=YHR100C;Alias=GEP4 -chrVIII SGD CDS 314874 315968 . - . ID=YHR101C;Name=YHR101C;Alias=BIG1 -chrVIII SGD CDS 316572 319814 . + . ID=YHR102W;Name=YHR102W;Alias=KIC1 -chrVIII SGD CDS 320414 322972 . + . ID=YHR103W;Name=YHR103W;Alias=SBE22 -chrVIII SGD CDS 323409 324392 . + . ID=YHR104W;Name=YHR104W;Alias=GRE3 -chrVIII SGD CDS 324766 325410 . + . ID=YHR105W;Name=YHR105W;Alias=YPT35 -chrVIII SGD CDS 325598 326626 . + . ID=YHR106W;Name=YHR106W;Alias=TRR2 -chrVIII SGD CDS 326813 328036 . - . ID=YHR107C;Name=YHR107C;Alias=CDC12 -chrVIII SGD CDS 328303 330060 . + . ID=YHR108W;Name=YHR108W;Alias=GGA2 -chrVIII SGD CDS 330310 332067 . + . ID=YHR109W;Name=YHR109W;Alias=CTM1 -chrVIII SGD CDS 332282 332920 . + . ID=YHR110W;Name=YHR110W;Alias=ERP5 -chrVIII SGD CDS 333072 334394 . + . ID=YHR111W;Name=YHR111W;Alias=UBA4 -chrVIII SGD CDS 334527 335663 . - . ID=YHR112C;Name=YHR112C;Alias= -chrVIII SGD CDS 336337 337809 . + . ID=YHR113W;Name=YHR113W;Alias=APE4 -chrVIII SGD CDS 338083 339984 . + . ID=YHR114W;Name=YHR114W;Alias=BZZ1 -chrVIII SGD CDS 340109 341359 . - . ID=YHR115C;Name=YHR115C;Alias=DMA1 -chrVIII SGD CDS 341665 342120 . + . ID=YHR116W;Name=YHR116W;Alias=COX23 -chrVIII SGD CDS 342349 344268 . + . ID=YHR117W;Name=YHR117W;Alias=TOM71 -chrVIII SGD CDS 344321 345628 . - . ID=YHR118C;Name=YHR118C;Alias=ORC6 -chrVIII SGD CDS 346043 349285 . + . ID=YHR119W;Name=YHR119W;Alias=SET1 -chrVIII SGD CDS 349574 352453 . + . ID=YHR120W;Name=YHR120W;Alias=MSH1 -chrVIII SGD CDS 352756 353319 . + . ID=YHR121W;Name=YHR121W;Alias=LSM12 -chrVIII SGD CDS 353625 354320 . + . ID=YHR122W;Name=YHR122W;Alias=CIA2 -chrVIII SGD CDS 354815 356081 . + . ID=YHR123W;Name=YHR123W;Alias=EPT1 -chrVIII SGD CDS 356561 358444 . + . ID=YHR124W;Name=YHR124W;Alias=NDT80 -chrVIII SGD CDS 359702 360181 . - . ID=YHR126C;Name=YHR126C;Alias=ANS1 -chrVIII SGD CDS 360913 361644 . + . ID=YHR127W;Name=YHR127W;Alias= -chrVIII SGD CDS 362115 362765 . + . ID=YHR128W;Name=YHR128W;Alias=FUR1 -chrVIII SGD CDS 362999 364153 . - . ID=YHR129C;Name=YHR129C;Alias=ARP1 -chrVIII SGD CDS 365340 367892 . - . ID=YHR131C;Name=YHR131C;Alias= -chrVIII SGD CDS 368502 369794 . - . ID=YHR132C;Name=YHR132C;Alias=ECM14 -chrVIII SGD CDS 370054 370449 . + . ID=YHR132W-A;Name=YHR132W-A;Alias=IGO2 -chrVIII SGD CDS 370722 371597 . - . ID=YHR133C;Name=YHR133C;Alias=NSG1 -chrVIII SGD CDS 371749 372558 . + . ID=YHR134W;Name=YHR134W;Alias=WSS1 -chrVIII SGD CDS 372694 374310 . - . ID=YHR135C;Name=YHR135C;Alias=YCK1 -chrVIII SGD CDS 374654 375100 . - . ID=YHR136C;Name=YHR136C;Alias=SPL2 -chrVIII SGD CDS 375709 377250 . + . ID=YHR137W;Name=YHR137W;Alias=ARO9 -chrVIII SGD CDS 377355 377699 . - . ID=YHR138C;Name=YHR138C;Alias= -chrVIII SGD CDS 378219 379199 . - . ID=YHR139C;Name=YHR139C;Alias=SPS100 -chrVIII SGD CDS 380572 381291 . + . ID=YHR140W;Name=YHR140W;Alias= -chrVIII SGD CDS 381990 382751 . - . ID=YHR141C;Name=YHR141C;Alias=RPL42B -chrVIII SGD CDS 383538 384488 . + . ID=YHR142W;Name=YHR142W;Alias=CHS7 -chrVIII SGD CDS 385510 386487 . + . ID=YHR143W;Name=YHR143W;Alias=DSE2 -chrVIII SGD CDS 387233 387445 . + . ID=YHR143W-A;Name=YHR143W-A;Alias=RPC10 -chrVIII SGD CDS 387788 388726 . - . ID=YHR144C;Name=YHR144C;Alias=DCD1 -chrVIII SGD CDS 390300 391697 . + . ID=YHR146W;Name=YHR146W;Alias=CRP1 -chrVIII SGD CDS 392639 393283 . - . ID=YHR147C;Name=YHR147C;Alias=MRPL6 -chrVIII SGD CDS 393534 394085 . + . ID=YHR148W;Name=YHR148W;Alias=IMP3 -chrVIII SGD CDS 394455 396659 . - . ID=YHR149C;Name=YHR149C;Alias=SKG6 -chrVIII SGD CDS 397251 398990 . + . ID=YHR150W;Name=YHR150W;Alias=PEX28 -chrVIII SGD CDS 399268 400848 . - . ID=YHR151C;Name=YHR151C;Alias=MTC6 -chrVIII SGD CDS 401434 401955 . + . ID=YHR152W;Name=YHR152W;Alias=SPO12 -chrVIII SGD CDS 402086 402682 . - . ID=YHR153C;Name=YHR153C;Alias=SPO16 -chrVIII SGD CDS 402966 406178 . + . ID=YHR154W;Name=YHR154W;Alias=RTT107 -chrVIII SGD CDS 407103 410789 . + . ID=YHR155W;Name=YHR155W;Alias=LAM1 -chrVIII SGD CDS 411384 412406 . - . ID=YHR156C;Name=YHR156C;Alias=LIN1 -chrVIII SGD CDS 412907 413455 . + . ID=YHR157W;Name=YHR157W;Alias=REC104 -chrVIII SGD CDS 413685 417179 . - . ID=YHR158C;Name=YHR158C;Alias=KEL1 -chrVIII SGD CDS 417549 419063 . + . ID=YHR159W;Name=YHR159W;Alias=TDA11 -chrVIII SGD CDS 419221 420072 . - . ID=YHR160C;Name=YHR160C;Alias=PEX18 -chrVIII SGD CDS 420373 422286 . - . ID=YHR161C;Name=YHR161C;Alias=YAP1801 -chrVIII SGD CDS 423072 423461 . + . ID=YHR162W;Name=YHR162W;Alias=MPC2 -chrVIII SGD CDS 423724 424473 . + . ID=YHR163W;Name=YHR163W;Alias=SOL3 -chrVIII SGD CDS 424610 429178 . - . ID=YHR164C;Name=YHR164C;Alias=DNA2 -chrVIII SGD CDS 429707 436948 . - . ID=YHR165C;Name=YHR165C;Alias=PRP8 -chrVIII SGD CDS 437170 439050 . - . ID=YHR166C;Name=YHR166C;Alias=CDC23 -chrVIII SGD CDS 439342 440127 . + . ID=YHR167W;Name=YHR167W;Alias=THP2 -chrVIII SGD CDS 440377 441933 . + . ID=YHR168W;Name=YHR168W;Alias=MTG2 -chrVIII SGD CDS 442181 443476 . + . ID=YHR169W;Name=YHR169W;Alias=DBP8 -chrVIII SGD CDS 443828 445384 . + . ID=YHR170W;Name=YHR170W;Alias=NMD3 -chrVIII SGD CDS 445713 447605 . + . ID=YHR171W;Name=YHR171W;Alias=ATG7 -chrVIII SGD CDS 448335 450806 . + . ID=YHR172W;Name=YHR172W;Alias=SPC97 -chrVIII SGD CDS 450815 451153 . - . ID=YHR173C;Name=YHR173C;Alias= -chrVIII SGD CDS 451327 452640 . + . ID=YHR174W;Name=YHR174W;Alias=ENO2 -chrVIII SGD CDS 452872 453441 . + . ID=YHR175W;Name=YHR175W;Alias=CTR2 -chrVIII SGD CDS 453558 453707 . + . ID=YHR175W-A;Name=YHR175W-A;Alias= -chrVIII SGD CDS 454229 455527 . + . ID=YHR176W;Name=YHR176W;Alias=FMO1 -chrVIII SGD CDS 456591 457952 . + . ID=YHR177W;Name=YHR177W;Alias= -chrVIII SGD CDS 459299 461530 . + . ID=YHR178W;Name=YHR178W;Alias=STB5 -chrVIII SGD CDS 462502 463704 . + . ID=YHR179W;Name=YHR179W;Alias=OYE2 -chrVIII SGD CDS 467228 467914 . + . ID=YHR181W;Name=YHR181W;Alias=SVP26 -chrVIII SGD CDS 468219 470576 . + . ID=YHR182W;Name=YHR182W;Alias= -chrVIII SGD CDS 470960 472429 . + . ID=YHR183W;Name=YHR183W;Alias=GND1 -chrVIII SGD CDS 472744 474459 . + . ID=YHR184W;Name=YHR184W;Alias=SSP1 -chrVIII SGD CDS 474627 475340 . - . ID=YHR185C;Name=YHR185C;Alias=PFS1 -chrVIII SGD CDS 475999 480672 . - . ID=YHR186C;Name=YHR186C;Alias=KOG1 -chrVIII SGD CDS 480990 481919 . + . ID=YHR187W;Name=YHR187W;Alias=IKI1 -chrVIII SGD CDS 482005 483837 . - . ID=YHR188C;Name=YHR188C;Alias=GPI16 -chrVIII SGD CDS 484028 484600 . + . ID=YHR189W;Name=YHR189W;Alias=PTH1 -chrVIII SGD CDS 484845 486179 . + . ID=YHR190W;Name=YHR190W;Alias=ERG9 -chrVIII SGD CDS 486230 486631 . - . ID=YHR191C;Name=YHR191C;Alias=CTF8 -chrVIII SGD CDS 486826 487662 . + . ID=YHR192W;Name=YHR192W;Alias=LNP1 -chrVIII SGD CDS 487712 488236 . - . ID=YHR193C;Name=YHR193C;Alias=EGD2 -chrVIII SGD CDS 488657 490396 . + . ID=YHR194W;Name=YHR194W;Alias=MDM31 -chrVIII SGD CDS 490747 491712 . + . ID=YHR195W;Name=YHR195W;Alias=NVJ1 -chrVIII SGD CDS 491931 493658 . + . ID=YHR196W;Name=YHR196W;Alias=UTP9 -chrVIII SGD CDS 493896 496187 . + . ID=YHR197W;Name=YHR197W;Alias=RIX1 -chrVIII SGD CDS 496315 497280 . - . ID=YHR198C;Name=YHR198C;Alias=AIM18 -chrVIII SGD CDS 497490 498422 . - . ID=YHR199C;Name=YHR199C;Alias=AIM46 -chrVIII SGD CDS 498571 498859 . - . ID=YHR199C-A;Name=YHR199C-A;Alias=NBL1 -chrVIII SGD CDS 499079 499885 . + . ID=YHR200W;Name=YHR200W;Alias=RPN10 -chrVIII SGD CDS 499950 501143 . - . ID=YHR201C;Name=YHR201C;Alias=PPX1 -chrVIII SGD CDS 502388 504196 . + . ID=YHR202W;Name=YHR202W;Alias= -chrVIII SGD CDS 504476 505530 . - . ID=YHR203C;Name=YHR203C;Alias=RPS4B -chrVIII SGD CDS 506319 508709 . + . ID=YHR204W;Name=YHR204W;Alias=MNL1 -chrVIII SGD CDS 509363 511837 . + . ID=YHR205W;Name=YHR205W;Alias=SCH9 -chrVIII SGD CDS 512732 514600 . + . ID=YHR206W;Name=YHR206W;Alias=SKN7 -chrVIII SGD CDS 514905 516485 . - . ID=YHR207C;Name=YHR207C;Alias=SET5 -chrVIII SGD CDS 517532 518713 . + . ID=YHR208W;Name=YHR208W;Alias=BAT1 -chrVIII SGD CDS 519437 520312 . + . ID=YHR209W;Name=YHR209W;Alias=CRG1 -chrVIII SGD CDS 520712 521737 . - . ID=YHR210C;Name=YHR210C;Alias= -chrVIII SGD CDS 525392 528619 . + . ID=YHR211W;Name=YHR211W;Alias=FLO5 -chrVIII SGD CDS 538742 538945 . + . ID=YHR212W-A;Name=YHR212W-A;Alias= -chrVIII SGD CDS 539151 539747 . + . ID=YHR213W;Name=YHR213W;Alias= -chrVIII SGD CDS 540549 540782 . + . ID=YHR213W-A;Name=YHR213W-A;Alias= -chrVIII SGD CDS 540800 541099 . + . ID=YHR213W-B;Name=YHR213W-B;Alias= -chrVIII SGD CDS 541651 542262 . + . ID=YHR214W;Name=YHR214W;Alias= -chrVIII SGD CDS 550648 550941 . - . ID=YHR214C-D;Name=YHR214C-D;Alias= -chrVIII SGD CDS 551200 551499 . - . ID=YHR214C-E;Name=YHR214C-E;Alias= -chrVIII SGD CDS 552099 553502 . + . ID=YHR215W;Name=YHR215W;Alias=PHO12 -chrVIII SGD CDS 554396 555967 . + . ID=YHR216W;Name=YHR216W;Alias=IMD2 -chrVIII SGD CDS 558014 559924 . + . ID=YHR218W;Name=YHR218W;Alias= -chrVIII SGD CDS 560173 562047 . + . ID=YHR219W;Name=YHR219W;Alias= -chrIX SGD CDS 483 6147 . - . ID=YIL177C;Name=YIL177C;Alias= -chrIX SGD CDS 8793 9155 . - . ID=YIL176C;Name=YIL176C;Alias=PAU14 -chrIX SGD CDS 11492 16141 . + . ID=YIL173W;Name=YIL173W;Alias=VTH1 -chrIX SGD CDS 16784 18553 . - . ID=YIL172C;Name=YIL172C;Alias=IMA3 -chrIX SGD CDS 23119 26106 . - . ID=YIL169C;Name=YIL169C;Alias=CSS1 -chrIX SGD CDS 30938 32566 . - . ID=YIL166C;Name=YIL166C;Alias= -chrIX SGD CDS 33718 34077 . - . ID=YIL165C;Name=YIL165C;Alias= -chrIX SGD CDS 34087 34686 . - . ID=YIL164C;Name=YIL164C;Alias=NIT1 -chrIX SGD CDS 36899 37252 . - . ID=YIL163C;Name=YIL163C;Alias= -chrIX SGD CDS 37385 38983 . + . ID=YIL162W;Name=YIL162W;Alias=SUC2 -chrIX SGD CDS 39433 40140 . + . ID=YIL161W;Name=YIL161W;Alias= -chrIX SGD CDS 40191 41444 . - . ID=YIL160C;Name=YIL160C;Alias=POT1 -chrIX SGD CDS 41825 45952 . + . ID=YIL159W;Name=YIL159W;Alias=BNR1 -chrIX SGD CDS 46201 46815 . + . ID=YIL158W;Name=YIL158W;Alias=AIM20 -chrIX SGD CDS 46949 47542 . - . ID=YIL157C;Name=YIL157C;Alias=COA1 -chrIX SGD CDS 47690 47973 . + . ID=YIL156W-B;Name=YIL156W-B;Alias= -chrIX SGD CDS 48091 51306 . + . ID=YIL156W;Name=YIL156W;Alias=UBP7 -chrIX SGD CDS 51759 53708 . - . ID=YIL155C;Name=YIL155C;Alias=GUT2 -chrIX SGD CDS 53981 55021 . - . ID=YIL154C;Name=YIL154C;Alias=IMP2%27 -chrIX SGD CDS 55198 56379 . + . ID=YIL153W;Name=YIL153W;Alias=RRD1 -chrIX SGD CDS 56545 57252 . + . ID=YIL152W;Name=YIL152W;Alias= -chrIX SGD CDS 57338 60694 . - . ID=YIL151C;Name=YIL151C;Alias=ESL1 -chrIX SGD CDS 61013 62728 . - . ID=YIL150C;Name=YIL150C;Alias=MCM10 -chrIX SGD CDS 63028 68067 . - . ID=YIL149C;Name=YIL149C;Alias=MLP2 -chrIX SGD CDS 68708 69528 . + . ID=YIL148W;Name=YIL148W;Alias=RPL40A -chrIX SGD CDS 69791 73453 . - . ID=YIL147C;Name=YIL147C;Alias=SLN1 -chrIX SGD CDS 74184 75773 . - . ID=YIL146C;Name=YIL146C;Alias=ATG32 -chrIX SGD CDS 76354 77283 . - . ID=YIL145C;Name=YIL145C;Alias=PAN6 -chrIX SGD CDS 78074 80149 . + . ID=YIL144W;Name=YIL144W;Alias=NDC80 -chrIX SGD CDS 80510 83041 . - . ID=YIL143C;Name=YIL143C;Alias=SSL2 -chrIX SGD CDS 83302 84885 . + . ID=YIL142W;Name=YIL142W;Alias=CCT2 -chrIX SGD CDS 85366 87837 . + . ID=YIL140W;Name=YIL140W;Alias=AXL2 -chrIX SGD CDS 87979 88716 . - . ID=YIL139C;Name=YIL139C;Alias=REV7 -chrIX SGD CDS 89230 89715 . - . ID=YIL138C;Name=YIL138C;Alias=TPM2 -chrIX SGD CDS 89948 92788 . - . ID=YIL137C;Name=YIL137C;Alias=TMA108 -chrIX SGD CDS 93619 94800 . + . ID=YIL136W;Name=YIL136W;Alias=OM45 -chrIX SGD CDS 95065 96375 . - . ID=YIL135C;Name=YIL135C;Alias=VHS2 -chrIX SGD CDS 96522 96725 . - . ID=YIL134C-A;Name=YIL134C-A;Alias= -chrIX SGD CDS 97395 98330 . + . ID=YIL134W;Name=YIL134W;Alias=FLX1 -chrIX SGD CDS 98527 99416 . - . ID=YIL133C;Name=YIL133C;Alias=RPL16A -chrIX SGD CDS 99860 100501 . - . ID=YIL132C;Name=YIL132C;Alias=CSM2 -chrIX SGD CDS 100781 102235 . - . ID=YIL131C;Name=YIL131C;Alias=FKH1 -chrIX SGD CDS 102782 105676 . + . ID=YIL130W;Name=YIL130W;Alias=ASG1 -chrIX SGD CDS 106107 113237 . - . ID=YIL129C;Name=YIL129C;Alias=TAO3 -chrIX SGD CDS 113806 116904 . + . ID=YIL128W;Name=YIL128W;Alias=MET18 -chrIX SGD CDS 117024 117644 . - . ID=YIL127C;Name=YIL127C;Alias=RRT14 -chrIX SGD CDS 117992 122071 . + . ID=YIL126W;Name=YIL126W;Alias=STH1 -chrIX SGD CDS 122689 125733 . + . ID=YIL125W;Name=YIL125W;Alias=KGD1 -chrIX SGD CDS 126204 127097 . + . ID=YIL124W;Name=YIL124W;Alias=AYR1 -chrIX SGD CDS 127662 129581 . + . ID=YIL123W;Name=YIL123W;Alias=SIM1 -chrIX SGD CDS 130610 131665 . + . ID=YIL122W;Name=YIL122W;Alias=POG1 -chrIX SGD CDS 132244 133872 . + . ID=YIL121W;Name=YIL121W;Alias=QDR2 -chrIX SGD CDS 134417 136108 . + . ID=YIL120W;Name=YIL120W;Alias=QDR1 -chrIX SGD CDS 136654 137877 . - . ID=YIL119C;Name=YIL119C;Alias=RPI1 -chrIX SGD CDS 139752 140447 . + . ID=YIL118W;Name=YIL118W;Alias=RHO3 -chrIX SGD CDS 140613 141569 . - . ID=YIL117C;Name=YIL117C;Alias=PRM5 -chrIX SGD CDS 142928 144085 . + . ID=YIL116W;Name=YIL116W;Alias=HIS5 -chrIX SGD CDS 144327 148709 . - . ID=YIL115C;Name=YIL115C;Alias=NUP159 -chrIX SGD CDS 149143 149988 . - . ID=YIL114C;Name=YIL114C;Alias=POR2 -chrIX SGD CDS 150559 151188 . + . ID=YIL113W;Name=YIL113W;Alias=SDP1 -chrIX SGD CDS 151595 154846 . + . ID=YIL112W;Name=YIL112W;Alias=HOS4 -chrIX SGD CDS 155222 155765 . + . ID=YIL111W;Name=YIL111W;Alias=COX5B -chrIX SGD CDS 156045 157178 . + . ID=YIL110W;Name=YIL110W;Alias=HPM1 -chrIX SGD CDS 157385 160165 . - . ID=YIL109C;Name=YIL109C;Alias=SEC24 -chrIX SGD CDS 160887 162977 . + . ID=YIL108W;Name=YIL108W;Alias= -chrIX SGD CDS 163278 165761 . - . ID=YIL107C;Name=YIL107C;Alias=PFK26 -chrIX SGD CDS 166415 167444 . + . ID=YIL106W;Name=YIL106W;Alias=MOB1 -chrIX SGD CDS 167581 169641 . - . ID=YIL105C;Name=YIL105C;Alias=SLM1 -chrIX SGD CDS 167664 167804 . + . ID=YIL105W-A;Name=YIL105W-A;Alias= -chrIX SGD CDS 169982 171505 . - . ID=YIL104C;Name=YIL104C;Alias=SHQ1 -chrIX SGD CDS 171751 173028 . + . ID=YIL103W;Name=YIL103W;Alias=DPH1 -chrIX SGD CDS 173365 173592 . - . ID=YIL102C-A;Name=YIL102C-A;Alias= -chrIX SGD CDS 174582 174887 . - . ID=YIL102C;Name=YIL102C;Alias= -chrIX SGD CDS 175307 177250 . - . ID=YIL101C;Name=YIL101C;Alias=XBP1 -chrIX SGD CDS 178004 179653 . + . ID=YIL099W;Name=YIL099W;Alias=SGA1 -chrIX SGD CDS 179772 180239 . - . ID=YIL098C;Name=YIL098C;Alias=FMC1 -chrIX SGD CDS 180427 181977 . + . ID=YIL097W;Name=YIL097W;Alias=FYV10 -chrIX SGD CDS 182117 183127 . - . ID=YIL096C;Name=YIL096C;Alias=BMT5 -chrIX SGD CDS 183937 186369 . + . ID=YIL095W;Name=YIL095W;Alias=PRK1 -chrIX SGD CDS 186517 187632 . - . ID=YIL094C;Name=YIL094C;Alias=LYS12 -chrIX SGD CDS 187990 188784 . - . ID=YIL093C;Name=YIL093C;Alias=RSM25 -chrIX SGD CDS 189066 190967 . + . ID=YIL092W;Name=YIL092W;Alias= -chrIX SGD CDS 191030 193195 . - . ID=YIL091C;Name=YIL091C;Alias=UTP25 -chrIX SGD CDS 193595 195070 . + . ID=YIL090W;Name=YIL090W;Alias=ICE2 -chrIX SGD CDS 195599 196216 . + . ID=YIL089W;Name=YIL089W;Alias= -chrIX SGD CDS 197931 199403 . - . ID=YIL088C;Name=YIL088C;Alias=AVT7 -chrIX SGD CDS 199646 200119 . - . ID=YIL087C;Name=YIL087C;Alias=AIM19 -chrIX SGD CDS 200490 202043 . - . ID=YIL085C;Name=YIL085C;Alias=KTR7 -chrIX SGD CDS 202276 203259 . - . ID=YIL084C;Name=YIL084C;Alias=SDS3 -chrIX SGD CDS 203556 204653 . - . ID=YIL083C;Name=YIL083C;Alias=CAB2 -chrIX SGD CDS 210923 212005 . - . ID=YIL079C;Name=YIL079C;Alias=AIR1 -chrIX SGD CDS 212499 214703 . + . ID=YIL078W;Name=YIL078W;Alias=THS1 -chrIX SGD CDS 214991 215953 . - . ID=YIL077C;Name=YIL077C;Alias= -chrIX SGD CDS 216658 217548 . + . ID=YIL076W;Name=YIL076W;Alias=SEC28 -chrIX SGD CDS 217863 220700 . - . ID=YIL075C;Name=YIL075C;Alias=RPN2 -chrIX SGD CDS 221081 222490 . - . ID=YIL074C;Name=YIL074C;Alias=SER33 -chrIX SGD CDS 222937 225954 . - . ID=YIL073C;Name=YIL073C;Alias=SPO22 -chrIX SGD CDS 226602 228419 . + . ID=YIL072W;Name=YIL072W;Alias=HOP1 -chrIX SGD CDS 228660 229994 . - . ID=YIL071C;Name=YIL071C;Alias=PCI8 -chrIX SGD CDS 230272 231072 . - . ID=YIL070C;Name=YIL070C;Alias=MAM33 -chrIX SGD CDS 231553 232369 . - . ID=YIL069C;Name=YIL069C;Alias=RPS24B -chrIX SGD CDS 233057 235474 . - . ID=YIL068C;Name=YIL068C;Alias=SEC6 -chrIX SGD CDS 235724 237760 . - . ID=YIL067C;Name=YIL067C;Alias= -chrIX SGD CDS 238099 240708 . - . ID=YIL066C;Name=YIL066C;Alias=RNR3 -chrIX SGD CDS 241308 241775 . - . ID=YIL065C;Name=YIL065C;Alias=FIS1 -chrIX SGD CDS 241943 242716 . + . ID=YIL064W;Name=YIL064W;Alias=EFM4 -chrIX SGD CDS 242761 243744 . - . ID=YIL063C;Name=YIL063C;Alias=YRB2 -chrIX SGD CDS 243998 244462 . - . ID=YIL062C;Name=YIL062C;Alias=ARC15 -chrIX SGD CDS 244657 245559 . - . ID=YIL061C;Name=YIL061C;Alias=SNP1 -chrIX SGD CDS 246392 246826 . + . ID=YIL060W;Name=YIL060W;Alias= -chrIX SGD CDS 247902 248396 . - . ID=YIL057C;Name=YIL057C;Alias=RGI2 -chrIX SGD CDS 249991 251913 . + . ID=YIL056W;Name=YIL056W;Alias=VHR1 -chrIX SGD CDS 252042 253925 . - . ID=YIL055C;Name=YIL055C;Alias= -chrIX SGD CDS 254543 254860 . + . ID=YIL054W;Name=YIL054W;Alias= -chrIX SGD CDS 255115 255867 . + . ID=YIL053W;Name=YIL053W;Alias=GPP1 -chrIX SGD CDS 256226 257063 . - . ID=YIL052C;Name=YIL052C;Alias=RPL34B -chrIX SGD CDS 257843 258280 . - . ID=YIL051C;Name=YIL051C;Alias=MMF1 -chrIX SGD CDS 258913 259770 . + . ID=YIL050W;Name=YIL050W;Alias=PCL7 -chrIX SGD CDS 260158 260919 . + . ID=YIL049W;Name=YIL049W;Alias=DFG10 -chrIX SGD CDS 261437 264892 . + . ID=YIL048W;Name=YIL048W;Alias=NEO1 -chrIX SGD CDS 265115 267823 . - . ID=YIL047C;Name=YIL047C;Alias=SYG1 -chrIX SGD CDS 268309 268473 . + . ID=YIL046W-A;Name=YIL046W-A;Alias= -chrIX SGD CDS 268651 270573 . + . ID=YIL046W;Name=YIL046W;Alias=MET30 -chrIX SGD CDS 271161 272777 . + . ID=YIL045W;Name=YIL045W;Alias=PIG2 -chrIX SGD CDS 272950 273846 . - . ID=YIL044C;Name=YIL044C;Alias=AGE2 -chrIX SGD CDS 274072 274926 . - . ID=YIL043C;Name=YIL043C;Alias=CBR1 -chrIX SGD CDS 275108 276292 . - . ID=YIL042C;Name=YIL042C;Alias=PKP1 -chrIX SGD CDS 276525 277505 . + . ID=YIL041W;Name=YIL041W;Alias=GVP36 -chrIX SGD CDS 277723 278139 . + . ID=YIL040W;Name=YIL040W;Alias=APQ12 -chrIX SGD CDS 278426 279847 . + . ID=YIL039W;Name=YIL039W;Alias=TED1 -chrIX SGD CDS 280142 282652 . - . ID=YIL038C;Name=YIL038C;Alias=NOT3 -chrIX SGD CDS 283029 284999 . - . ID=YIL037C;Name=YIL037C;Alias=PRM2 -chrIX SGD CDS 285666 287429 . + . ID=YIL036W;Name=YIL036W;Alias=CST6 -chrIX SGD CDS 287790 288908 . - . ID=YIL035C;Name=YIL035C;Alias=CKA1 -chrIX SGD CDS 289226 290089 . - . ID=YIL034C;Name=YIL034C;Alias=CAP2 -chrIX SGD CDS 290419 291669 . - . ID=YIL033C;Name=YIL033C;Alias=BCY1 -chrIX SGD CDS 292633 295737 . + . ID=YIL031W;Name=YIL031W;Alias=ULP2 -chrIX SGD CDS 296050 300009 . - . ID=YIL030C;Name=YIL030C;Alias=SSM4 -chrIX SGD CDS 300829 301257 . - . ID=YIL029C;Name=YIL029C;Alias= -chrIX SGD CDS 303679 304104 . - . ID=YIL027C;Name=YIL027C;Alias=EMC5 -chrIX SGD CDS 304477 307929 . - . ID=YIL026C;Name=YIL026C;Alias=IRR1 -chrIX SGD CDS 308602 309171 . - . ID=YIL024C;Name=YIL024C;Alias= -chrIX SGD CDS 309386 310426 . - . ID=YIL023C;Name=YIL023C;Alias=YKE4 -chrIX SGD CDS 311165 312460 . + . ID=YIL022W;Name=YIL022W;Alias=TIM44 -chrIX SGD CDS 312905 313861 . + . ID=YIL021W;Name=YIL021W;Alias=RPB3 -chrIX SGD CDS 314035 314820 . - . ID=YIL020C;Name=YIL020C;Alias=HIS6 -chrIX SGD CDS 315093 316133 . + . ID=YIL019W;Name=YIL019W;Alias=FAF1 -chrIX SGD CDS 316768 317932 . + . ID=YIL018W;Name=YIL018W;Alias=RPL2B -chrIX SGD CDS 318200 320965 . - . ID=YIL017C;Name=YIL017C;Alias=VID28 -chrIX SGD CDS 321454 321933 . + . ID=YIL016W;Name=YIL016W;Alias=SNL1 -chrIX SGD CDS 322342 324105 . + . ID=YIL015W;Name=YIL015W;Alias=BAR1 -chrIX SGD CDS 325212 325526 . - . ID=YIL014C-A;Name=YIL014C-A;Alias= -chrIX SGD CDS 326103 327995 . + . ID=YIL014W;Name=YIL014W;Alias=MNT3 -chrIX SGD CDS 328207 332442 . - . ID=YIL013C;Name=YIL013C;Alias=PDR11 -chrIX SGD CDS 333727 334536 . + . ID=YIL011W;Name=YIL011W;Alias=TIR3 -chrIX SGD CDS 334882 335529 . + . ID=YIL010W;Name=YIL010W;Alias=DOT5 -chrIX SGD CDS 335666 336212 . - . ID=YIL009C-A;Name=YIL009C-A;Alias=EST3 -chrIX SGD CDS 339344 341428 . + . ID=YIL009W;Name=YIL009W;Alias=FAA3 -chrIX SGD CDS 342536 342835 . + . ID=YIL008W;Name=YIL008W;Alias=URM1 -chrIX SGD CDS 342994 343656 . - . ID=YIL007C;Name=YIL007C;Alias=NAS2 -chrIX SGD CDS 344062 345183 . + . ID=YIL006W;Name=YIL006W;Alias=YIA6 -chrIX SGD CDS 345692 347797 . + . ID=YIL005W;Name=YIL005W;Alias=EPS1 -chrIX SGD CDS 347946 348505 . - . ID=YIL004C;Name=YIL004C;Alias=BET1 -chrIX SGD CDS 349122 350003 . + . ID=YIL003W;Name=YIL003W;Alias=CFD1 -chrIX SGD CDS 350301 350510 . + . ID=YIL002W-A;Name=YIL002W-A;Alias= -chrIX SGD CDS 350591 353431 . - . ID=YIL002C;Name=YIL002C;Alias=INP51 -chrIX SGD CDS 353940 355481 . + . ID=YIL001W;Name=YIL001W;Alias= -chrIX SGD CDS 356143 356895 . - . ID=YIR001C;Name=YIR001C;Alias=SGN1 -chrIX SGD CDS 357415 360396 . - . ID=YIR002C;Name=YIR002C;Alias=MPH1 -chrIX SGD CDS 360885 362924 . + . ID=YIR003W;Name=YIR003W;Alias=AIM21 -chrIX SGD CDS 363221 364519 . + . ID=YIR004W;Name=YIR004W;Alias=DJP1 -chrIX SGD CDS 364889 365335 . + . ID=YIR005W;Name=YIR005W;Alias=IST3 -chrIX SGD CDS 365466 369908 . - . ID=YIR006C;Name=YIR006C;Alias=PAN1 -chrIX SGD CDS 370704 372998 . + . ID=YIR007W;Name=YIR007W;Alias=EGH1 -chrIX SGD CDS 373077 374306 . - . ID=YIR008C;Name=YIR008C;Alias=PRI1 -chrIX SGD CDS 374525 374860 . + . ID=YIR009W;Name=YIR009W;Alias=MSL1 -chrIX SGD CDS 375431 377161 . + . ID=YIR010W;Name=YIR010W;Alias=DSN1 -chrIX SGD CDS 377287 378246 . - . ID=YIR011C;Name=YIR011C;Alias=STS1 -chrIX SGD CDS 378486 379781 . + . ID=YIR012W;Name=YIR012W;Alias=SQT1 -chrIX SGD CDS 380019 380384 . - . ID=YIR013C;Name=YIR013C;Alias=GAT4 -chrIX SGD CDS 381086 381814 . + . ID=YIR014W;Name=YIR014W;Alias= -chrIX SGD CDS 381948 382382 . + . ID=YIR015W;Name=YIR015W;Alias=RPR2 -chrIX SGD CDS 382628 383425 . + . ID=YIR016W;Name=YIR016W;Alias= -chrIX SGD CDS 383556 384119 . - . ID=YIR017C;Name=YIR017C;Alias=MET28 -chrIX SGD CDS 384609 385346 . + . ID=YIR018W;Name=YIR018W;Alias=YAP5 -chrIX SGD CDS 385564 385701 . - . ID=YIR018C-A;Name=YIR018C-A;Alias= -chrIX SGD CDS 389572 393675 . - . ID=YIR019C;Name=YIR019C;Alias=FLO11 -chrIX SGD CDS 394255 394557 . - . ID=YIR020C;Name=YIR020C;Alias= -chrIX SGD CDS 397294 398385 . + . ID=YIR021W;Name=YIR021W;Alias=MRS1 -chrIX SGD CDS 398514 398726 . + . ID=YIR021W-A;Name=YIR021W-A;Alias= -chrIX SGD CDS 398733 399236 . + . ID=YIR022W;Name=YIR022W;Alias=SEC11 -chrIX SGD CDS 399777 402689 . + . ID=YIR023W;Name=YIR023W;Alias=DAL81 -chrIX SGD CDS 402841 403491 . - . ID=YIR024C;Name=YIR024C;Alias=INA22 -chrIX SGD CDS 403659 404765 . + . ID=YIR025W;Name=YIR025W;Alias=MND2 -chrIX SGD CDS 404873 405967 . - . ID=YIR026C;Name=YIR026C;Alias=YVH1 -chrIX SGD CDS 406260 407642 . - . ID=YIR027C;Name=YIR027C;Alias=DAL1 -chrIX SGD CDS 408468 410375 . + . ID=YIR028W;Name=YIR028W;Alias=DAL4 -chrIX SGD CDS 410807 411838 . + . ID=YIR029W;Name=YIR029W;Alias=DAL2 -chrIX SGD CDS 412036 412770 . - . ID=YIR030C;Name=YIR030C;Alias=DCG1 -chrIX SGD CDS 413015 414679 . - . ID=YIR031C;Name=YIR031C;Alias=DAL7 -chrIX SGD CDS 415030 415617 . - . ID=YIR032C;Name=YIR032C;Alias=DAL3 -chrIX SGD CDS 416124 419465 . + . ID=YIR033W;Name=YIR033W;Alias=MGA2 -chrIX SGD CDS 419615 420736 . - . ID=YIR034C;Name=YIR034C;Alias=LYS1 -chrIX SGD CDS 421026 421790 . - . ID=YIR035C;Name=YIR035C;Alias= -chrIX SGD CDS 422074 422865 . - . ID=YIR036C;Name=YIR036C;Alias=IRC24 -chrIX SGD CDS 423128 423619 . + . ID=YIR037W;Name=YIR037W;Alias=HYR1 -chrIX SGD CDS 423809 424513 . - . ID=YIR038C;Name=YIR038C;Alias=GTT1 -chrIX SGD CDS 430498 432111 . - . ID=YIR039C;Name=YIR039C;Alias=YPS6 -chrIX SGD CDS 433929 434303 . + . ID=YIR041W;Name=YIR041W;Alias=PAU15 -chrIX SGD CDS 435273 435983 . - . ID=YIR042C;Name=YIR042C;Alias= -chrX SGD CDS 466 6130 . - . ID=YJL225C;Name=YJL225C;Alias= -chrX SGD CDS 8776 9138 . - . ID=YJL223C;Name=YJL223C;Alias=PAU1 -chrX SGD CDS 11475 16124 . + . ID=YJL222W;Name=YJL222W;Alias=VTH2 -chrX SGD CDS 16767 18536 . - . ID=YJL221C;Name=YJL221C;Alias=IMA4 -chrX SGD CDS 19497 21200 . + . ID=YJL219W;Name=YJL219W;Alias=HXT9 -chrX SGD CDS 21973 22563 . + . ID=YJL218W;Name=YJL218W;Alias= -chrX SGD CDS 23133 23729 . + . ID=YJL217W;Name=YJL217W;Alias=REE1 -chrX SGD CDS 24341 26086 . - . ID=YJL216C;Name=YJL216C;Alias=IMA5 -chrX SGD CDS 26887 28596 . + . ID=YJL214W;Name=YJL214W;Alias=HXT8 -chrX SGD CDS 32163 33158 . + . ID=YJL213W;Name=YJL213W;Alias= -chrX SGD CDS 33850 36249 . - . ID=YJL212C;Name=YJL212C;Alias=OPT1 -chrX SGD CDS 36919 37734 . + . ID=YJL210W;Name=YJL210W;Alias=PEX2 -chrX SGD CDS 38005 39969 . + . ID=YJL209W;Name=YJL209W;Alias=CBP1 -chrX SGD CDS 40194 41183 . - . ID=YJL208C;Name=YJL208C;Alias=NUC1 -chrX SGD CDS 41389 47433 . - . ID=YJL207C;Name=YJL207C;Alias=LAA1 -chrX SGD CDS 47659 49935 . - . ID=YJL206C;Name=YJL206C;Alias= -chrX SGD CDS 50139 50443 . - . ID=YJL205C;Name=YJL205C;Alias=NCE101 -chrX SGD CDS 50629 53151 . - . ID=YJL204C;Name=YJL204C;Alias=RCY1 -chrX SGD CDS 53341 54183 . + . ID=YJL203W;Name=YJL203W;Alias=PRP21 -chrX SGD CDS 54379 56178 . + . ID=YJL201W;Name=YJL201W;Alias=ECM25 -chrX SGD CDS 56444 58813 . - . ID=YJL200C;Name=YJL200C;Alias=ACO2 -chrX SGD CDS 60844 63489 . + . ID=YJL198W;Name=YJL198W;Alias=PHO90 -chrX SGD CDS 63805 67569 . + . ID=YJL197W;Name=YJL197W;Alias=UBP12 -chrX SGD CDS 67850 68782 . - . ID=YJL196C;Name=YJL196C;Alias=ELO1 -chrX SGD CDS 69338 70879 . + . ID=YJL194W;Name=YJL194W;Alias=CDC6 -chrX SGD CDS 71366 72574 . + . ID=YJL193W;Name=YJL193W;Alias= -chrX SGD CDS 72710 73414 . - . ID=YJL192C;Name=YJL192C;Alias=SOP4 -chrX SGD CDS 73787 74611 . + . ID=YJL191W;Name=YJL191W;Alias=RPS14B -chrX SGD CDS 74910 75302 . - . ID=YJL190C;Name=YJL190C;Alias=RPS22A -chrX SGD CDS 75933 76474 . + . ID=YJL189W;Name=YJL189W;Alias=RPL39 -chrX SGD CDS 76803 79262 . - . ID=YJL187C;Name=YJL187C;Alias=SWE1 -chrX SGD CDS 80155 81915 . + . ID=YJL186W;Name=YJL186W;Alias=MNN5 -chrX SGD CDS 82095 82976 . - . ID=YJL185C;Name=YJL185C;Alias=ATG36 -chrX SGD CDS 83448 83819 . + . ID=YJL184W;Name=YJL184W;Alias=GON7 -chrX SGD CDS 84068 85336 . + . ID=YJL183W;Name=YJL183W;Alias=MNN11 -chrX SGD CDS 85660 87495 . + . ID=YJL181W;Name=YJL181W;Alias=RBH1 -chrX SGD CDS 87583 88560 . - . ID=YJL180C;Name=YJL180C;Alias=ATP12 -chrX SGD CDS 88787 89116 . + . ID=YJL179W;Name=YJL179W;Alias=PFD1 -chrX SGD CDS 89282 90097 . - . ID=YJL178C;Name=YJL178C;Alias=ATG27 -chrX SGD CDS 90786 91657 . + . ID=YJL177W;Name=YJL177W;Alias=RPL17B -chrX SGD CDS 92053 94530 . - . ID=YJL176C;Name=YJL176C;Alias=SWI3 -chrX SGD CDS 95092 95922 . + . ID=YJL174W;Name=YJL174W;Alias=KRE9 -chrX SGD CDS 96161 96529 . - . ID=YJL173C;Name=YJL173C;Alias=RFA3 -chrX SGD CDS 97737 99467 . + . ID=YJL172W;Name=YJL172W;Alias=CPS1 -chrX SGD CDS 99704 100894 . - . ID=YJL171C;Name=YJL171C;Alias=TOH1 -chrX SGD CDS 101150 101779 . - . ID=YJL170C;Name=YJL170C;Alias=ASG7 -chrX SGD CDS 102227 104428 . - . ID=YJL168C;Name=YJL168C;Alias=SET2 -chrX SGD CDS 105014 106072 . + . ID=YJL167W;Name=YJL167W;Alias=ERG20 -chrX SGD CDS 106434 106718 . + . ID=YJL166W;Name=YJL166W;Alias=QCR8 -chrX SGD CDS 106894 109461 . - . ID=YJL165C;Name=YJL165C;Alias=HAL5 -chrX SGD CDS 109966 111159 . - . ID=YJL164C;Name=YJL164C;Alias=TPK1 -chrX SGD CDS 111666 113333 . - . ID=YJL163C;Name=YJL163C;Alias= -chrX SGD CDS 113878 115629 . - . ID=YJL162C;Name=YJL162C;Alias=JJJ2 -chrX SGD CDS 117245 117787 . + . ID=YJL161W;Name=YJL161W;Alias=FMP33 -chrX SGD CDS 117962 118825 . - . ID=YJL160C;Name=YJL160C;Alias=PIR5 -chrX SGD CDS 120449 121690 . + . ID=YJL159W;Name=YJL159W;Alias=HSP150 -chrX SGD CDS 122265 122948 . - . ID=YJL158C;Name=YJL158C;Alias=CIS3 -chrX SGD CDS 123836 126328 . - . ID=YJL157C;Name=YJL157C;Alias=FAR1 -chrX SGD CDS 126853 128952 . - . ID=YJL156C;Name=YJL156C;Alias=SSY5 -chrX SGD CDS 129285 130643 . - . ID=YJL155C;Name=YJL155C;Alias=FBP26 -chrX SGD CDS 131101 133935 . - . ID=YJL154C;Name=YJL154C;Alias=VPS35 -chrX SGD CDS 134332 135933 . - . ID=YJL153C;Name=YJL153C;Alias=INO1 -chrX SGD CDS 136372 136773 . - . ID=YJL151C;Name=YJL151C;Alias=SNA3 -chrX SGD CDS 137379 139370 . + . ID=YJL149W;Name=YJL149W;Alias=DAS1 -chrX SGD CDS 140437 141138 . + . ID=YJL148W;Name=YJL148W;Alias=RPA34 -chrX SGD CDS 141419 142567 . - . ID=YJL147C;Name=YJL147C;Alias=MRX5 -chrX SGD CDS 143292 144701 . + . ID=YJL146W;Name=YJL146W;Alias=IDS2 -chrX SGD CDS 145160 146044 . + . ID=YJL145W;Name=YJL145W;Alias=SFH5 -chrX SGD CDS 146359 146673 . + . ID=YJL144W;Name=YJL144W;Alias= -chrX SGD CDS 147101 147577 . + . ID=YJL143W;Name=YJL143W;Alias=TIM17 -chrX SGD CDS 147967 150390 . - . ID=YJL141C;Name=YJL141C;Alias=YAK1 -chrX SGD CDS 150961 151626 . + . ID=YJL140W;Name=YJL140W;Alias=RPB4 -chrX SGD CDS 151713 152999 . - . ID=YJL139C;Name=YJL139C;Alias=YUR1 -chrX SGD CDS 153504 154691 . - . ID=YJL138C;Name=YJL138C;Alias=TIF2 -chrX SGD CDS 154985 156127 . - . ID=YJL137C;Name=YJL137C;Alias=GLG2 -chrX SGD CDS 156169 156252 . + . ID=YJL136W-A;Name=YJL136W-A;Alias= -chrX SGD CDS 156550 157273 . - . ID=YJL136C;Name=YJL136C;Alias=RPS21B -chrX SGD CDS 158188 159417 . + . ID=YJL134W;Name=YJL134W;Alias=LCB3 -chrX SGD CDS 159623 159847 . - . ID=YJL133C-A;Name=YJL133C-A;Alias= -chrX SGD CDS 160619 161563 . + . ID=YJL133W;Name=YJL133W;Alias=MRS3 -chrX SGD CDS 161914 164166 . + . ID=YJL132W;Name=YJL132W;Alias= -chrX SGD CDS 164278 165348 . - . ID=YJL131C;Name=YJL131C;Alias=AIM23 -chrX SGD CDS 165723 172752 . - . ID=YJL130C;Name=YJL130C;Alias=URA2 -chrX SGD CDS 173599 177306 . - . ID=YJL129C;Name=YJL129C;Alias=TRK1 -chrX SGD CDS 178097 180103 . - . ID=YJL128C;Name=YJL128C;Alias=PBS2 -chrX SGD CDS 181551 181709 . - . ID=YJL127C-B;Name=YJL127C-B;Alias= -chrX SGD CDS 182298 184220 . - . ID=YJL127C;Name=YJL127C;Alias=SPT10 -chrX SGD CDS 184501 185424 . + . ID=YJL126W;Name=YJL126W;Alias=NIT2 -chrX SGD CDS 185528 186679 . - . ID=YJL125C;Name=YJL125C;Alias=GCD14 -chrX SGD CDS 187126 187644 . - . ID=YJL124C;Name=YJL124C;Alias=LSM1 -chrX SGD CDS 188004 189440 . - . ID=YJL123C;Name=YJL123C;Alias=MTC1 -chrX SGD CDS 189716 190243 . + . ID=YJL122W;Name=YJL122W;Alias=ALB1 -chrX SGD CDS 190374 191090 . - . ID=YJL121C;Name=YJL121C;Alias=RPE1 -chrX SGD CDS 191639 192298 . + . ID=YJL118W;Name=YJL118W;Alias= -chrX SGD CDS 192531 193466 . + . ID=YJL117W;Name=YJL117W;Alias=PHO86 -chrX SGD CDS 193860 194873 . - . ID=YJL116C;Name=YJL116C;Alias=NCA3 -chrX SGD CDS 196287 197126 . + . ID=YJL115W;Name=YJL115W;Alias=ASF1 -chrX SGD CDS 205305 207449 . + . ID=YJL112W;Name=YJL112W;Alias=MDV1 -chrX SGD CDS 207877 209529 . + . ID=YJL111W;Name=YJL111W;Alias=CCT7 -chrX SGD CDS 209922 211577 . - . ID=YJL110C;Name=YJL110C;Alias=GZF3 -chrX SGD CDS 212000 217309 . - . ID=YJL109C;Name=YJL109C;Alias=UTP10 -chrX SGD CDS 217705 218856 . - . ID=YJL108C;Name=YJL108C;Alias=PRM10 -chrX SGD CDS 218853 220016 . - . ID=YJL107C;Name=YJL107C;Alias= -chrX SGD CDS 221390 223327 . + . ID=YJL106W;Name=YJL106W;Alias=IME2 -chrX SGD CDS 225055 226737 . + . ID=YJL105W;Name=YJL105W;Alias=SET4 -chrX SGD CDS 227327 227776 . + . ID=YJL104W;Name=YJL104W;Alias=PAM16 -chrX SGD CDS 229025 230881 . - . ID=YJL103C;Name=YJL103C;Alias=GSM1 -chrX SGD CDS 231301 233760 . + . ID=YJL102W;Name=YJL102W;Alias=MEF2 -chrX SGD CDS 234320 236356 . - . ID=YJL101C;Name=YJL101C;Alias=GSH1 -chrX SGD CDS 237263 239086 . + . ID=YJL100W;Name=YJL100W;Alias=LSB6 -chrX SGD CDS 239414 241654 . + . ID=YJL099W;Name=YJL099W;Alias=CHS6 -chrX SGD CDS 242082 245258 . + . ID=YJL098W;Name=YJL098W;Alias=SAP185 -chrX SGD CDS 245591 246244 . + . ID=YJL097W;Name=YJL097W;Alias=PHS1 -chrX SGD CDS 246490 246975 . + . ID=YJL096W;Name=YJL096W;Alias=MRPL49 -chrX SGD CDS 247255 251691 . + . ID=YJL095W;Name=YJL095W;Alias=BCK1 -chrX SGD CDS 251821 254442 . - . ID=YJL094C;Name=YJL094C;Alias=KHA1 -chrX SGD CDS 254737 256812 . - . ID=YJL093C;Name=YJL093C;Alias=TOK1 -chrX SGD CDS 257423 260947 . + . ID=YJL092W;Name=YJL092W;Alias=SRS2 -chrX SGD CDS 261080 262552 . - . ID=YJL091C;Name=YJL091C;Alias=GWT1 -chrX SGD CDS 262757 265051 . - . ID=YJL090C;Name=YJL090C;Alias=DPB11 -chrX SGD CDS 265926 268415 . + . ID=YJL089W;Name=YJL089W;Alias=SIP4 -chrX SGD CDS 268799 269815 . + . ID=YJL088W;Name=YJL088W;Alias=ARG3 -chrX SGD CDS 270002 272485 . - . ID=YJL087C;Name=YJL087C;Alias=TRL1 -chrX SGD CDS 272827 274698 . + . ID=YJL085W;Name=YJL085W;Alias=EXO70 -chrX SGD CDS 274862 278002 . - . ID=YJL084C;Name=YJL084C;Alias=ALY2 -chrX SGD CDS 278841 280655 . + . ID=YJL083W;Name=YJL083W;Alias=TAX4 -chrX SGD CDS 281185 283380 . + . ID=YJL082W;Name=YJL082W;Alias=IML2 -chrX SGD CDS 283802 285271 . - . ID=YJL081C;Name=YJL081C;Alias=ARP4 -chrX SGD CDS 285558 289226 . - . ID=YJL080C;Name=YJL080C;Alias=SCP160 -chrX SGD CDS 289875 290774 . - . ID=YJL079C;Name=YJL079C;Alias=PRY1 -chrX SGD CDS 291336 293981 . - . ID=YJL078C;Name=YJL078C;Alias=PRY3 -chrX SGD CDS 294047 294145 . + . ID=YJL077W-B;Name=YJL077W-B;Alias= -chrX SGD CDS 294666 295061 . - . ID=YJL077C;Name=YJL077C;Alias=ICS3 -chrX SGD CDS 294799 294885 . + . ID=YJL077W-A;Name=YJL077W-A;Alias= -chrX SGD CDS 295245 298814 . + . ID=YJL076W;Name=YJL076W;Alias=NET1 -chrX SGD CDS 299157 302849 . - . ID=YJL074C;Name=YJL074C;Alias=SMC3 -chrX SGD CDS 303181 305118 . + . ID=YJL073W;Name=YJL073W;Alias=JEM1 -chrX SGD CDS 305221 305862 . - . ID=YJL072C;Name=YJL072C;Alias=PSF2 -chrX SGD CDS 306132 307856 . + . ID=YJL071W;Name=YJL071W;Alias=ARG2 -chrX SGD CDS 307971 310637 . - . ID=YJL070C;Name=YJL070C;Alias= -chrX SGD CDS 310922 312706 . - . ID=YJL069C;Name=YJL069C;Alias=UTP18 -chrX SGD CDS 313016 313915 . - . ID=YJL068C;Name=YJL068C;Alias= -chrX SGD CDS 314114 314872 . - . ID=YJL066C;Name=YJL066C;Alias=MPM1 -chrX SGD CDS 315054 315557 . - . ID=YJL065C;Name=YJL065C;Alias=DLS1 -chrX SGD CDS 315759 316475 . - . ID=YJL063C;Name=YJL063C;Alias=MRPL8 -chrX SGD CDS 316723 316980 . + . ID=YJL062W-A;Name=YJL062W-A;Alias=COA3 -chrX SGD CDS 317284 319776 . + . ID=YJL062W;Name=YJL062W;Alias=LAS21 -chrX SGD CDS 320016 322157 . + . ID=YJL061W;Name=YJL061W;Alias=NUP82 -chrX SGD CDS 323386 324720 . + . ID=YJL060W;Name=YJL060W;Alias=BNA3 -chrX SGD CDS 324964 326190 . + . ID=YJL059W;Name=YJL059W;Alias=YHC3 -chrX SGD CDS 326242 327873 . - . ID=YJL058C;Name=YJL058C;Alias=BIT61 -chrX SGD CDS 328118 330121 . - . ID=YJL057C;Name=YJL057C;Alias=IKS1 -chrX SGD CDS 330431 333073 . - . ID=YJL056C;Name=YJL056C;Alias=ZAP1 -chrX SGD CDS 333357 334094 . + . ID=YJL055W;Name=YJL055W;Alias= -chrX SGD CDS 334265 335701 . + . ID=YJL054W;Name=YJL054W;Alias=TIM54 -chrX SGD CDS 335898 337037 . + . ID=YJL053W;Name=YJL053W;Alias=PEP8 -chrX SGD CDS 337884 338003 . - . ID=YJL052C-A;Name=YJL052C-A;Alias= -chrX SGD CDS 338271 339269 . + . ID=YJL052W;Name=YJL052W;Alias=TDH1 -chrX SGD CDS 339787 342255 . + . ID=YJL051W;Name=YJL051W;Alias=IRC8 -chrX SGD CDS 342522 345743 . + . ID=YJL050W;Name=YJL050W;Alias=MTR4 -chrX SGD CDS 345973 347325 . + . ID=YJL049W;Name=YJL049W;Alias=CHM7 -chrX SGD CDS 347447 348637 . - . ID=YJL048C;Name=YJL048C;Alias=UBX6 -chrX SGD CDS 349044 349178 . - . ID=YJL047C-A;Name=YJL047C-A;Alias= -chrX SGD CDS 349580 352108 . - . ID=YJL047C;Name=YJL047C;Alias=RTT101 -chrX SGD CDS 352386 353615 . + . ID=YJL046W;Name=YJL046W;Alias=AIM22 -chrX SGD CDS 356024 357928 . + . ID=YJL045W;Name=YJL045W;Alias= -chrX SGD CDS 358300 359676 . - . ID=YJL044C;Name=YJL044C;Alias=GYP6 -chrX SGD CDS 360130 360903 . + . ID=YJL043W;Name=YJL043W;Alias= -chrX SGD CDS 361249 365445 . + . ID=YJL042W;Name=YJL042W;Alias=MHP1 -chrX SGD CDS 365784 368373 . + . ID=YJL041W;Name=YJL041W;Alias=NSP1 -chrX SGD CDS 368748 373799 . - . ID=YJL039C;Name=YJL039C;Alias=NUP192 -chrX SGD CDS 375115 375774 . - . ID=YJL038C;Name=YJL038C;Alias=LOH1 -chrX SGD CDS 376662 377336 . + . ID=YJL037W;Name=YJL037W;Alias=IRC18 -chrX SGD CDS 378825 380096 . + . ID=YJL036W;Name=YJL036W;Alias=SNX4 -chrX SGD CDS 380249 381001 . - . ID=YJL035C;Name=YJL035C;Alias=TAD2 -chrX SGD CDS 381327 383375 . + . ID=YJL034W;Name=YJL034W;Alias=KAR2 -chrX SGD CDS 383837 386149 . + . ID=YJL033W;Name=YJL033W;Alias=HCA4 -chrX SGD CDS 386368 387438 . - . ID=YJL031C;Name=YJL031C;Alias=BET4 -chrX SGD CDS 387657 388247 . + . ID=YJL030W;Name=YJL030W;Alias=MAD2 -chrX SGD CDS 388385 390853 . - . ID=YJL029C;Name=YJL029C;Alias=VPS53 -chrX SGD CDS 391311 391646 . + . ID=YJL028W;Name=YJL028W;Alias= -chrX SGD CDS 391833 392249 . - . ID=YJL027C;Name=YJL027C;Alias= -chrX SGD CDS 392404 393603 . + . ID=YJL026W;Name=YJL026W;Alias=RNR2 -chrX SGD CDS 393967 395511 . + . ID=YJL025W;Name=YJL025W;Alias=RRN7 -chrX SGD CDS 395931 396592 . - . ID=YJL024C;Name=YJL024C;Alias=APS3 -chrX SGD CDS 397355 398398 . - . ID=YJL023C;Name=YJL023C;Alias=PET130 -chrX SGD CDS 398937 402410 . - . ID=YJL020C;Name=YJL020C;Alias=BBC1 -chrX SGD CDS 402897 404945 . + . ID=YJL019W;Name=YJL019W;Alias=MPS3 -chrX SGD CDS 405588 407273 . + . ID=YJL016W;Name=YJL016W;Alias=TPH3 -chrX SGD CDS 407558 409162 . + . ID=YJL014W;Name=YJL014W;Alias=CCT3 -chrX SGD CDS 409493 411040 . - . ID=YJL013C;Name=YJL013C;Alias=MAD3 -chrX SGD CDS 411234 413399 . - . ID=YJL012C;Name=YJL012C;Alias=VTC4 -chrX SGD CDS 414285 414770 . - . ID=YJL011C;Name=YJL011C;Alias=RPC17 -chrX SGD CDS 417562 419562 . - . ID=YJL010C;Name=YJL010C;Alias=NOP9 -chrX SGD CDS 419957 421663 . - . ID=YJL008C;Name=YJL008C;Alias=CCT8 -chrX SGD CDS 423138 424109 . - . ID=YJL006C;Name=YJL006C;Alias=CTK2 -chrX SGD CDS 425157 431237 . + . ID=YJL005W;Name=YJL005W;Alias=CYR1 -chrX SGD CDS 431589 432200 . - . ID=YJL004C;Name=YJL004C;Alias=SYS1 -chrX SGD CDS 432644 433000 . + . ID=YJL003W;Name=YJL003W;Alias=COX16 -chrX SGD CDS 433221 434651 . - . ID=YJL002C;Name=YJL002C;Alias=OST1 -chrX SGD CDS 435163 435926 . + . ID=YJL001W;Name=YJL001W;Alias=PRE3 -chrX SGD CDS 436802 438610 . + . ID=YJR001W;Name=YJR001W;Alias=AVT1 -chrX SGD CDS 438865 440646 . + . ID=YJR002W;Name=YJR002W;Alias=MPP10 -chrX SGD CDS 440994 442553 . - . ID=YJR003C;Name=YJR003C;Alias=MRX12 -chrX SGD CDS 442909 444861 . - . ID=YJR004C;Name=YJR004C;Alias=SAG1 -chrX SGD CDS 445923 448025 . + . ID=YJR005W;Name=YJR005W;Alias=APL1 -chrX SGD CDS 448477 448758 . - . ID=YJR005C-A;Name=YJR005C-A;Alias=LSO1 -chrX SGD CDS 449202 450665 . + . ID=YJR006W;Name=YJR006W;Alias=POL31 -chrX SGD CDS 451020 451934 . + . ID=YJR007W;Name=YJR007W;Alias=SUI2 -chrX SGD CDS 452430 453446 . + . ID=YJR008W;Name=YJR008W;Alias=MHO1 -chrX SGD CDS 453683 454681 . - . ID=YJR009C;Name=YJR009C;Alias=TDH2 -chrX SGD CDS 456239 457774 . + . ID=YJR010W;Name=YJR010W;Alias=MET3 -chrX SGD CDS 458077 458361 . - . ID=YJR010C-A;Name=YJR010C-A;Alias=SPC1 -chrX SGD CDS 458641 459426 . - . ID=YJR011C;Name=YJR011C;Alias= -chrX SGD CDS 459795 460418 . - . ID=YJR012C;Name=YJR012C;Alias= -chrX SGD CDS 460382 461593 . + . ID=YJR013W;Name=YJR013W;Alias=GPI14 -chrX SGD CDS 461829 462425 . + . ID=YJR014W;Name=YJR014W;Alias=TMA22 -chrX SGD CDS 462721 464253 . + . ID=YJR015W;Name=YJR015W;Alias= -chrX SGD CDS 464451 466208 . - . ID=YJR016C;Name=YJR016C;Alias=ILV3 -chrX SGD CDS 466521 467033 . - . ID=YJR017C;Name=YJR017C;Alias=ESS1 -chrX SGD CDS 467232 468281 . - . ID=YJR019C;Name=YJR019C;Alias=TES1 -chrX SGD CDS 468555 469579 . - . ID=YJR021C;Name=YJR021C;Alias=REC107 -chrX SGD CDS 469784 470113 . + . ID=YJR022W;Name=YJR022W;Alias=LSM8 -chrX SGD CDS 470230 470964 . - . ID=YJR024C;Name=YJR024C;Alias=MDE1 -chrX SGD CDS 471138 471671 . - . ID=YJR025C;Name=YJR025C;Alias=BNA1 -chrX SGD CDS 483959 486196 . - . ID=YJR030C;Name=YJR030C;Alias=RBH2 -chrX SGD CDS 486586 490812 . - . ID=YJR031C;Name=YJR031C;Alias=GEA1 -chrX SGD CDS 491081 492262 . + . ID=YJR032W;Name=YJR032W;Alias=CPR7 -chrX SGD CDS 492378 496451 . - . ID=YJR033C;Name=YJR033C;Alias=RAV1 -chrX SGD CDS 496683 497009 . + . ID=YJR034W;Name=YJR034W;Alias=PET191 -chrX SGD CDS 497355 500612 . + . ID=YJR035W;Name=YJR035W;Alias=RAD26 -chrX SGD CDS 500713 503391 . - . ID=YJR036C;Name=YJR036C;Alias=HUL4 -chrX SGD CDS 503936 507301 . + . ID=YJR039W;Name=YJR039W;Alias= -chrX SGD CDS 507746 510085 . + . ID=YJR040W;Name=YJR040W;Alias=GEF1 -chrX SGD CDS 510239 513763 . - . ID=YJR041C;Name=YJR041C;Alias=URB2 -chrX SGD CDS 514055 516289 . + . ID=YJR042W;Name=YJR042W;Alias=NUP85 -chrX SGD CDS 516461 517513 . - . ID=YJR043C;Name=YJR043C;Alias=POL32 -chrX SGD CDS 518763 519185 . - . ID=YJR044C;Name=YJR044C;Alias=VPS55 -chrX SGD CDS 519638 521602 . - . ID=YJR045C;Name=YJR045C;Alias=SSC1 -chrX SGD CDS 522048 523862 . + . ID=YJR046W;Name=YJR046W;Alias=TAH11 -chrX SGD CDS 524908 525381 . - . ID=YJR047C;Name=YJR047C;Alias=ANB1 -chrX SGD CDS 526335 526664 . + . ID=YJR048W;Name=YJR048W;Alias=CYC1 -chrX SGD CDS 526884 528476 . - . ID=YJR049C;Name=YJR049C;Alias=UTR1 -chrX SGD CDS 528697 529404 . + . ID=YJR050W;Name=YJR050W;Alias=ISY1 -chrX SGD CDS 529861 531366 . + . ID=YJR051W;Name=YJR051W;Alias=OSM1 -chrX SGD CDS 532062 533759 . + . ID=YJR052W;Name=YJR052W;Alias=RAD7 -chrX SGD CDS 534027 535751 . + . ID=YJR053W;Name=YJR053W;Alias=BFA1 -chrX SGD CDS 536056 537549 . + . ID=YJR054W;Name=YJR054W;Alias=KCH1 -chrX SGD CDS 538772 539266 . + . ID=YJR055W;Name=YJR055W;Alias=HIT1 -chrX SGD CDS 541792 542502 . - . ID=YJR056C;Name=YJR056C;Alias= -chrX SGD CDS 544062 544712 . + . ID=YJR057W;Name=YJR057W;Alias=CDC8 -chrX SGD CDS 544732 545175 . - . ID=YJR058C;Name=YJR058C;Alias=APS2 -chrX SGD CDS 545787 548243 . + . ID=YJR059W;Name=YJR059W;Alias=PTK2 -chrX SGD CDS 548759 549814 . + . ID=YJR060W;Name=YJR060W;Alias=CBF1 -chrX SGD CDS 550511 553318 . + . ID=YJR061W;Name=YJR061W;Alias= -chrX SGD CDS 553476 554849 . - . ID=YJR062C;Name=YJR062C;Alias=NTA1 -chrX SGD CDS 555195 555572 . + . ID=YJR063W;Name=YJR063W;Alias=RPA12 -chrX SGD CDS 555914 557602 . + . ID=YJR064W;Name=YJR064W;Alias=CCT5 -chrX SGD CDS 557809 559158 . - . ID=YJR065C;Name=YJR065C;Alias=ARP3 -chrX SGD CDS 559416 566828 . + . ID=YJR066W;Name=YJR066W;Alias=TOR1 -chrX SGD CDS 567019 567444 . - . ID=YJR067C;Name=YJR067C;Alias=YAE1 -chrX SGD CDS 567643 568704 . + . ID=YJR068W;Name=YJR068W;Alias=RFC2 -chrX SGD CDS 568806 569399 . - . ID=YJR069C;Name=YJR069C;Alias=HAM1 -chrX SGD CDS 569621 570598 . - . ID=YJR070C;Name=YJR070C;Alias=LIA1 -chrX SGD CDS 570967 572124 . - . ID=YJR072C;Name=YJR072C;Alias=NPA3 -chrX SGD CDS 572315 572935 . - . ID=YJR073C;Name=YJR073C;Alias=OPI3 -chrX SGD CDS 573095 573751 . + . ID=YJR074W;Name=YJR074W;Alias=MOG1 -chrX SGD CDS 573981 575171 . + . ID=YJR075W;Name=YJR075W;Alias=HOC1 -chrX SGD CDS 575354 576601 . - . ID=YJR076C;Name=YJR076C;Alias=CDC11 -chrX SGD CDS 577255 578190 . - . ID=YJR077C;Name=YJR077C;Alias=MIR1 -chrX SGD CDS 578860 580221 . + . ID=YJR078W;Name=YJR078W;Alias=BNA2 -chrX SGD CDS 580205 581239 . + . ID=YJR079W;Name=YJR079W;Alias= -chrX SGD CDS 580432 581616 . - . ID=YJR080C;Name=YJR080C;Alias=AIM24 -chrX SGD CDS 581914 582255 . - . ID=YJR082C;Name=YJR082C;Alias=EAF6 -chrX SGD CDS 582608 583537 . - . ID=YJR083C;Name=YJR083C;Alias=ACF4 -chrX SGD CDS 583733 585004 . + . ID=YJR084W;Name=YJR084W;Alias= -chrX SGD CDS 585120 585437 . - . ID=YJR085C;Name=YJR085C;Alias= -chrX SGD CDS 586068 586400 . + . ID=YJR086W;Name=YJR086W;Alias=STE18 -chrX SGD CDS 586495 587373 . - . ID=YJR088C;Name=YJR088C;Alias=EMC2 -chrX SGD CDS 587718 590582 . + . ID=YJR089W;Name=YJR089W;Alias=BIR1 -chrX SGD CDS 590872 594327 . - . ID=YJR090C;Name=YJR090C;Alias=GRR1 -chrX SGD CDS 595061 598336 . - . ID=YJR091C;Name=YJR091C;Alias=JSN1 -chrX SGD CDS 598735 603078 . + . ID=YJR092W;Name=YJR092W;Alias=BUD4 -chrX SGD CDS 603220 604203 . - . ID=YJR093C;Name=YJR093C;Alias=FIP1 -chrX SGD CDS 604569 605651 . - . ID=YJR094C;Name=YJR094C;Alias=IME1 -chrX SGD CDS 608305 608858 . + . ID=YJR094W-A;Name=YJR094W-A;Alias=RPL43B -chrX SGD CDS 609773 610741 . + . ID=YJR095W;Name=YJR095W;Alias=SFC1 -chrX SGD CDS 611195 612043 . + . ID=YJR096W;Name=YJR096W;Alias= -chrX SGD CDS 612413 612931 . + . ID=YJR097W;Name=YJR097W;Alias=JJJ3 -chrX SGD CDS 613186 615156 . - . ID=YJR098C;Name=YJR098C;Alias= -chrX SGD CDS 615576 616286 . + . ID=YJR099W;Name=YJR099W;Alias=YUH1 -chrX SGD CDS 616351 617334 . - . ID=YJR100C;Name=YJR100C;Alias=AIM25 -chrX SGD CDS 618234 619034 . + . ID=YJR101W;Name=YJR101W;Alias=RSM26 -chrX SGD CDS 619157 619765 . - . ID=YJR102C;Name=YJR102C;Alias=VPS25 -chrX SGD CDS 620754 622490 . + . ID=YJR103W;Name=YJR103W;Alias=URA8 -chrX SGD CDS 622550 623014 . - . ID=YJR104C;Name=YJR104C;Alias=SOD1 -chrX SGD CDS 623581 624603 . + . ID=YJR105W;Name=YJR105W;Alias=ADO1 -chrX SGD CDS 624838 627015 . + . ID=YJR106W;Name=YJR106W;Alias=ECM27 -chrX SGD CDS 627340 628326 . + . ID=YJR107W;Name=YJR107W;Alias=LIH1 -chrX SGD CDS 628712 629083 . + . ID=YJR108W;Name=YJR108W;Alias=ABM1 -chrX SGD CDS 629585 632941 . - . ID=YJR109C;Name=YJR109C;Alias=CPA2 -chrX SGD CDS 633615 635681 . + . ID=YJR110W;Name=YJR110W;Alias=YMR1 -chrX SGD CDS 635855 636706 . - . ID=YJR111C;Name=YJR111C;Alias=PXP2 -chrX SGD CDS 637030 637635 . + . ID=YJR112W;Name=YJR112W;Alias=NNF1 -chrX SGD CDS 637790 638168 . + . ID=YJR112W-A;Name=YJR112W-A;Alias= -chrX SGD CDS 638232 638975 . - . ID=YJR113C;Name=YJR113C;Alias=RSM7 -chrX SGD CDS 639942 640451 . + . ID=YJR115W;Name=YJR115W;Alias= -chrX SGD CDS 640825 641664 . + . ID=YJR116W;Name=YJR116W;Alias=TDA4 -chrX SGD CDS 642007 643368 . + . ID=YJR117W;Name=YJR117W;Alias=STE24 -chrX SGD CDS 643490 644101 . - . ID=YJR118C;Name=YJR118C;Alias=ILM1 -chrX SGD CDS 644304 646490 . - . ID=YJR119C;Name=YJR119C;Alias=JHD2 -chrX SGD CDS 647126 647476 . + . ID=YJR120W;Name=YJR120W;Alias= -chrX SGD CDS 647607 649142 . + . ID=YJR121W;Name=YJR121W;Alias=ATP2 -chrX SGD CDS 649776 651269 . + . ID=YJR122W;Name=YJR122W;Alias=IBA57 -chrX SGD CDS 651901 652578 . + . ID=YJR123W;Name=YJR123W;Alias=RPS5 -chrX SGD CDS 652892 654238 . - . ID=YJR124C;Name=YJR124C;Alias= -chrX SGD CDS 654737 655963 . - . ID=YJR125C;Name=YJR125C;Alias=ENT3 -chrX SGD CDS 656254 658689 . - . ID=YJR126C;Name=YJR126C;Alias=VPS70 -chrX SGD CDS 658917 663059 . - . ID=YJR127C;Name=YJR127C;Alias=RSF2 -chrX SGD CDS 664000 665019 . - . ID=YJR129C;Name=YJR129C;Alias=EFM3 -chrX SGD CDS 665218 667137 . - . ID=YJR130C;Name=YJR130C;Alias=STR2 -chrX SGD CDS 667644 669293 . + . ID=YJR131W;Name=YJR131W;Alias=MNS1 -chrX SGD CDS 669522 672668 . + . ID=YJR132W;Name=YJR132W;Alias=NMD5 -chrX SGD CDS 672991 673620 . + . ID=YJR133W;Name=YJR133W;Alias=XPT1 -chrX SGD CDS 673729 675852 . - . ID=YJR134C;Name=YJR134C;Alias=SGM1 -chrX SGD CDS 676059 676778 . - . ID=YJR135C;Name=YJR135C;Alias=MCM22 -chrX SGD CDS 676971 677234 . + . ID=YJR135W-A;Name=YJR135W-A;Alias=TIM8 -chrX SGD CDS 677441 678706 . - . ID=YJR136C;Name=YJR136C;Alias=TTI2 -chrX SGD CDS 678957 683285 . - . ID=YJR137C;Name=YJR137C;Alias=MET5 -chrX SGD CDS 684567 689321 . + . ID=YJR138W;Name=YJR138W;Alias=IML1 -chrX SGD CDS 689445 690524 . - . ID=YJR139C;Name=YJR139C;Alias=HOM6 -chrX SGD CDS 690750 695696 . - . ID=YJR140C;Name=YJR140C;Alias=HIR3 -chrX SGD CDS 695906 696949 . + . ID=YJR141W;Name=YJR141W;Alias=IPA1 -chrX SGD CDS 697141 698169 . + . ID=YJR142W;Name=YJR142W;Alias= -chrX SGD CDS 698326 700614 . - . ID=YJR143C;Name=YJR143C;Alias=PMT4 -chrX SGD CDS 700882 701691 . + . ID=YJR144W;Name=YJR144W;Alias=MGM101 -chrX SGD CDS 702027 703068 . - . ID=YJR145C;Name=YJR145C;Alias=RPS4A -chrX SGD CDS 703885 704238 . + . ID=YJR146W;Name=YJR146W;Alias= -chrX SGD CDS 704196 705272 . + . ID=YJR147W;Name=YJR147W;Alias=HMS2 -chrX SGD CDS 705744 706874 . + . ID=YJR148W;Name=YJR148W;Alias=BAT2 -chrX SGD CDS 707160 708374 . + . ID=YJR149W;Name=YJR149W;Alias= -chrX SGD CDS 708811 709707 . - . ID=YJR150C;Name=YJR150C;Alias=DAN1 -chrX SGD CDS 712255 715740 . - . ID=YJR151C;Name=YJR151C;Alias=DAN4 -chrX SGD CDS 717580 717630 . + . ID=YJR151W-A;Name=YJR151W-A;Alias= -chrX SGD CDS 719666 721297 . + . ID=YJR152W;Name=YJR152W;Alias=DAL5 -chrX SGD CDS 722815 723900 . + . ID=YJR153W;Name=YJR153W;Alias=PGU1 -chrX SGD CDS 725784 726824 . + . ID=YJR154W;Name=YJR154W;Alias= -chrX SGD CDS 727405 728271 . + . ID=YJR155W;Name=YJR155W;Alias=AAD10 -chrX SGD CDS 728574 729596 . - . ID=YJR156C;Name=YJR156C;Alias=THI11 -chrX SGD CDS 732440 734143 . + . ID=YJR158W;Name=YJR158W;Alias=HXT16 -chrX SGD CDS 736044 737117 . + . ID=YJR159W;Name=YJR159W;Alias=SOR1 -chrX SGD CDS 738008 739816 . - . ID=YJR160C;Name=YJR160C;Alias=MPH3 -chrX SGD CDS 742848 743999 . - . ID=YJR161C;Name=YJR161C;Alias=COS5 -chrXI SGD CDS 1810 2181 . - . ID=YKL224C;Name=YKL224C;Alias=PAU16 -chrXI SGD CDS 3503 5620 . - . ID=YKL222C;Name=YKL222C;Alias= -chrXI SGD CDS 6107 7528 . + . ID=YKL221W;Name=YKL221W;Alias=MCH2 -chrXI SGD CDS 9091 11226 . - . ID=YKL220C;Name=YKL220C;Alias=FRE2 -chrXI SGD CDS 14485 15708 . + . ID=YKL219W;Name=YKL219W;Alias=COS9 -chrXI SGD CDS 17359 18339 . - . ID=YKL218C;Name=YKL218C;Alias=SRY1 -chrXI SGD CDS 22234 24084 . + . ID=YKL217W;Name=YKL217W;Alias=JEN1 -chrXI SGD CDS 25215 26159 . + . ID=YKL216W;Name=YKL216W;Alias=URA1 -chrXI SGD CDS 26827 30687 . - . ID=YKL215C;Name=YKL215C;Alias=OXP1 -chrXI SGD CDS 31082 31693 . - . ID=YKL214C;Name=YKL214C;Alias=YRA2 -chrXI SGD CDS 31960 34107 . - . ID=YKL213C;Name=YKL213C;Alias=DOA1 -chrXI SGD CDS 34543 36414 . + . ID=YKL212W;Name=YKL212W;Alias=SAC1 -chrXI SGD CDS 36699 38153 . - . ID=YKL211C;Name=YKL211C;Alias=TRP3 -chrXI SGD CDS 39163 42237 . + . ID=YKL210W;Name=YKL210W;Alias=UBA1 -chrXI SGD CDS 42423 46295 . - . ID=YKL209C;Name=YKL209C;Alias=STE6 -chrXI SGD CDS 47157 47972 . + . ID=YKL208W;Name=YKL208W;Alias=CBT1 -chrXI SGD CDS 48194 48955 . + . ID=YKL207W;Name=YKL207W;Alias=EMC3 -chrXI SGD CDS 49006 49809 . - . ID=YKL206C;Name=YKL206C;Alias=ADD66 -chrXI SGD CDS 50051 53353 . + . ID=YKL205W;Name=YKL205W;Alias=LOS1 -chrXI SGD CDS 53704 55602 . + . ID=YKL204W;Name=YKL204W;Alias=EAP1 -chrXI SGD CDS 55935 63359 . - . ID=YKL203C;Name=YKL203C;Alias=TOR2 -chrXI SGD CDS 63930 67466 . - . ID=YKL201C;Name=YKL201C;Alias=MNN4 -chrXI SGD CDS 68232 70220 . - . ID=YKL198C;Name=YKL198C;Alias=PTK1 -chrXI SGD CDS 70734 73865 . - . ID=YKL197C;Name=YKL197C;Alias=PEX1 -chrXI SGD CDS 74932 75534 . - . ID=YKL196C;Name=YKL196C;Alias=YKT6 -chrXI SGD CDS 75821 77032 . + . ID=YKL195W;Name=YKL195W;Alias=MIA40 -chrXI SGD CDS 77258 78646 . - . ID=YKL194C;Name=YKL194C;Alias=MST1 -chrXI SGD CDS 78866 79882 . - . ID=YKL193C;Name=YKL193C;Alias=SDS22 -chrXI SGD CDS 80160 80537 . - . ID=YKL192C;Name=YKL192C;Alias=ACP1 -chrXI SGD CDS 81035 82639 . + . ID=YKL191W;Name=YKL191W;Alias=DPH2 -chrXI SGD CDS 82947 83550 . + . ID=YKL190W;Name=YKL190W;Alias=CNB1 -chrXI SGD CDS 84704 85903 . + . ID=YKL189W;Name=YKL189W;Alias=HYM1 -chrXI SGD CDS 86225 88786 . - . ID=YKL188C;Name=YKL188C;Alias=PXA2 -chrXI SGD CDS 89284 91536 . - . ID=YKL187C;Name=YKL187C;Alias=FAT3 -chrXI SGD CDS 92744 93465 . - . ID=YKL186C;Name=YKL186C;Alias=MTR2 -chrXI SGD CDS 94499 96265 . + . ID=YKL185W;Name=YKL185W;Alias=ASH1 -chrXI SGD CDS 96757 98157 . + . ID=YKL184W;Name=YKL184W;Alias=SPE1 -chrXI SGD CDS 98395 98607 . - . ID=YKL183C-A;Name=YKL183C-A;Alias= -chrXI SGD CDS 98721 99641 . + . ID=YKL183W;Name=YKL183W;Alias=LOT5 -chrXI SGD CDS 100671 106826 . + . ID=YKL182W;Name=YKL182W;Alias=FAS1 -chrXI SGD CDS 107316 108599 . + . ID=YKL181W;Name=YKL181W;Alias=PRS1 -chrXI SGD CDS 109269 110129 . + . ID=YKL180W;Name=YKL180W;Alias=RPL17A -chrXI SGD CDS 110464 112503 . - . ID=YKL179C;Name=YKL179C;Alias=COY1 -chrXI SGD CDS 113215 114627 . - . ID=YKL178C;Name=YKL178C;Alias=STE3 -chrXI SGD CDS 115500 117986 . - . ID=YKL176C;Name=YKL176C;Alias=LST4 -chrXI SGD CDS 118793 120304 . + . ID=YKL175W;Name=YKL175W;Alias=ZRT3 -chrXI SGD CDS 120380 122236 . - . ID=YKL174C;Name=YKL174C;Alias=TPO5 -chrXI SGD CDS 122517 125543 . + . ID=YKL173W;Name=YKL173W;Alias=SNU114 -chrXI SGD CDS 125759 127042 . + . ID=YKL172W;Name=YKL172W;Alias=EBP2 -chrXI SGD CDS 127475 130261 . + . ID=YKL171W;Name=YKL171W;Alias=NNK1 -chrXI SGD CDS 130634 131050 . + . ID=YKL170W;Name=YKL170W;Alias=MRPL38 -chrXI SGD CDS 131288 133462 . - . ID=YKL168C;Name=YKL168C;Alias=KKQ8 -chrXI SGD CDS 133721 134134 . - . ID=YKL167C;Name=YKL167C;Alias=MRP49 -chrXI SGD CDS 134509 135705 . - . ID=YKL166C;Name=YKL166C;Alias=TPK3 -chrXI SGD CDS 137932 140691 . - . ID=YKL165C;Name=YKL165C;Alias=MCD4 -chrXI SGD CDS 141794 142819 . - . ID=YKL164C;Name=YKL164C;Alias=PIR1 -chrXI SGD CDS 144401 145378 . + . ID=YKL163W;Name=YKL163W;Alias=PIR3 -chrXI SGD CDS 147630 148838 . - . ID=YKL162C;Name=YKL162C;Alias= -chrXI SGD CDS 149386 150687 . - . ID=YKL161C;Name=YKL161C;Alias=KDX1 -chrXI SGD CDS 153269 153706 . + . ID=YKL160W;Name=YKL160W;Alias=ELF1 -chrXI SGD CDS 153816 154451 . - . ID=YKL159C;Name=YKL159C;Alias=RCN1 -chrXI SGD CDS 154991 158232 . + . ID=YKL157W;Name=YKL157W;Alias=APE2 -chrXI SGD CDS 158613 159212 . + . ID=YKL156W;Name=YKL156W;Alias=RPS27A -chrXI SGD CDS 159456 161342 . - . ID=YKL155C;Name=YKL155C;Alias=RSM22 -chrXI SGD CDS 161601 162335 . + . ID=YKL154W;Name=YKL154W;Alias=SRP102 -chrXI SGD CDS 163642 164385 . - . ID=YKL152C;Name=YKL152C;Alias=GPM1 -chrXI SGD CDS 164917 165930 . - . ID=YKL151C;Name=YKL151C;Alias=NNR2 -chrXI SGD CDS 166400 167452 . + . ID=YKL150W;Name=YKL150W;Alias=MCR1 -chrXI SGD CDS 167612 168829 . - . ID=YKL149C;Name=YKL149C;Alias=DBR1 -chrXI SGD CDS 169207 171129 . - . ID=YKL148C;Name=YKL148C;Alias=SDH1 -chrXI SGD CDS 171783 173861 . + . ID=YKL146W;Name=YKL146W;Alias=AVT3 -chrXI SGD CDS 174213 175616 . + . ID=YKL145W;Name=YKL145W;Alias=RPT1 -chrXI SGD CDS 175843 176481 . - . ID=YKL144C;Name=YKL144C;Alias=RPC25 -chrXI SGD CDS 176781 178172 . + . ID=YKL143W;Name=YKL143W;Alias=LTV1 -chrXI SGD CDS 178515 179174 . + . ID=YKL142W;Name=YKL142W;Alias=MRP8 -chrXI SGD CDS 179667 180263 . + . ID=YKL141W;Name=YKL141W;Alias=SDH3 -chrXI SGD CDS 180779 182425 . + . ID=YKL140W;Name=YKL140W;Alias=TGL1 -chrXI SGD CDS 182958 184544 . + . ID=YKL139W;Name=YKL139W;Alias=CTK1 -chrXI SGD CDS 184803 185012 . - . ID=YKL138C-A;Name=YKL138C-A;Alias=HSK3 -chrXI SGD CDS 185286 185681 . - . ID=YKL138C;Name=YKL138C;Alias=MRPL31 -chrXI SGD CDS 185957 186292 . + . ID=YKL137W;Name=YKL137W;Alias=CMC1 -chrXI SGD CDS 186460 188640 . - . ID=YKL135C;Name=YKL135C;Alias=APL2 -chrXI SGD CDS 189124 191442 . - . ID=YKL134C;Name=YKL134C;Alias=OCT1 -chrXI SGD CDS 191679 193070 . - . ID=YKL133C;Name=YKL133C;Alias= -chrXI SGD CDS 193574 194866 . - . ID=YKL132C;Name=YKL132C;Alias=RMA1 -chrXI SGD CDS 195288 196028 . - . ID=YKL130C;Name=YKL130C;Alias=SHE2 -chrXI SGD CDS 196349 200167 . - . ID=YKL129C;Name=YKL129C;Alias=MYO3 -chrXI SGD CDS 200884 201771 . - . ID=YKL128C;Name=YKL128C;Alias=PMU1 -chrXI SGD CDS 203541 205253 . + . ID=YKL127W;Name=YKL127W;Alias=PGM1 -chrXI SGD CDS 205707 207749 . + . ID=YKL126W;Name=YKL126W;Alias=YPK1 -chrXI SGD CDS 208247 210130 . + . ID=YKL125W;Name=YKL125W;Alias=RRN3 -chrXI SGD CDS 210593 212332 . + . ID=YKL124W;Name=YKL124W;Alias=SSH4 -chrXI SGD CDS 212495 212998 . - . ID=YKL122C;Name=YKL122C;Alias=SRP21 -chrXI SGD CDS 214142 216700 . + . ID=YKL121W;Name=YKL121W;Alias=DGR2 -chrXI SGD CDS 217344 218318 . + . ID=YKL120W;Name=YKL120W;Alias=OAC1 -chrXI SGD CDS 218570 219217 . - . ID=YKL119C;Name=YKL119C;Alias=VPH2 -chrXI SGD CDS 220324 220974 . + . ID=YKL117W;Name=YKL117W;Alias=SBA1 -chrXI SGD CDS 221344 222900 . - . ID=YKL116C;Name=YKL116C;Alias=PRR1 -chrXI SGD CDS 223352 224455 . - . ID=YKL114C;Name=YKL114C;Alias=APN1 -chrXI SGD CDS 224727 225875 . - . ID=YKL113C;Name=YKL113C;Alias=RAD27 -chrXI SGD CDS 226570 228765 . + . ID=YKL112W;Name=YKL112W;Alias=ABF1 -chrXI SGD CDS 228939 229880 . - . ID=YKL110C;Name=YKL110C;Alias=KTI12 -chrXI SGD CDS 232227 233891 . + . ID=YKL109W;Name=YKL109W;Alias=HAP4 -chrXI SGD CDS 234426 235787 . + . ID=YKL108W;Name=YKL108W;Alias=SLD2 -chrXI SGD CDS 236141 237070 . + . ID=YKL107W;Name=YKL107W;Alias= -chrXI SGD CDS 237147 237266 . - . ID=YKL106C-A;Name=YKL106C-A;Alias= -chrXI SGD CDS 237536 238891 . + . ID=YKL106W;Name=YKL106W;Alias=AAT1 -chrXI SGD CDS 239185 242583 . - . ID=YKL105C;Name=YKL105C;Alias=SEG2 -chrXI SGD CDS 243220 245373 . - . ID=YKL104C;Name=YKL104C;Alias=GFA1 -chrXI SGD CDS 246138 247682 . - . ID=YKL103C;Name=YKL103C;Alias=APE1 -chrXI SGD CDS 248920 253476 . + . ID=YKL101W;Name=YKL101W;Alias=HSL1 -chrXI SGD CDS 253697 255460 . - . ID=YKL100C;Name=YKL100C;Alias=YPF1 -chrXI SGD CDS 255720 256472 . - . ID=YKL099C;Name=YKL099C;Alias=UTP11 -chrXI SGD CDS 256770 257843 . + . ID=YKL098W;Name=YKL098W;Alias=MTC2 -chrXI SGD CDS 259073 259222 . - . ID=YKL096C-B;Name=YKL096C-B;Alias= -chrXI SGD CDS 259253 259531 . + . ID=YKL096W-A;Name=YKL096W-A;Alias=CWP2 -chrXI SGD CDS 261132 261851 . + . ID=YKL096W;Name=YKL096W;Alias=CWP1 -chrXI SGD CDS 262277 263113 . + . ID=YKL095W;Name=YKL095W;Alias=YJU2 -chrXI SGD CDS 263349 264290 . + . ID=YKL094W;Name=YKL094W;Alias=YJU3 -chrXI SGD CDS 264789 265808 . + . ID=YKL093W;Name=YKL093W;Alias=MBR1 -chrXI SGD CDS 266145 269459 . - . ID=YKL092C;Name=YKL092C;Alias=BUD2 -chrXI SGD CDS 269718 270650 . - . ID=YKL091C;Name=YKL091C;Alias= -chrXI SGD CDS 271878 273209 . + . ID=YKL090W;Name=YKL090W;Alias=CUE2 -chrXI SGD CDS 273394 275043 . + . ID=YKL089W;Name=YKL089W;Alias=MIF2 -chrXI SGD CDS 275283 276998 . + . ID=YKL088W;Name=YKL088W;Alias=CAB3 -chrXI SGD CDS 277189 277863 . - . ID=YKL087C;Name=YKL087C;Alias=CYT2 -chrXI SGD CDS 278281 278664 . + . ID=YKL086W;Name=YKL086W;Alias=SRX1 -chrXI SGD CDS 279123 280127 . + . ID=YKL085W;Name=YKL085W;Alias=MDH1 -chrXI SGD CDS 280509 280859 . + . ID=YKL084W;Name=YKL084W;Alias=HOT13 -chrXI SGD CDS 281025 282329 . - . ID=YKL082C;Name=YKL082C;Alias=RRP14 -chrXI SGD CDS 282891 284455 . + . ID=YKL081W;Name=YKL081W;Alias=TEF4 -chrXI SGD CDS 285030 286208 . + . ID=YKL080W;Name=YKL080W;Alias=VMA5 -chrXI SGD CDS 286603 288573 . + . ID=YKL079W;Name=YKL079W;Alias=SMY1 -chrXI SGD CDS 288845 291052 . + . ID=YKL078W;Name=YKL078W;Alias=DHR2 -chrXI SGD CDS 291453 292631 . + . ID=YKL077W;Name=YKL077W;Alias= -chrXI SGD CDS 292956 294308 . - . ID=YKL075C;Name=YKL075C;Alias= -chrXI SGD CDS 294610 296193 . - . ID=YKL074C;Name=YKL074C;Alias=MUD2 -chrXI SGD CDS 296430 299075 . + . ID=YKL073W;Name=YKL073W;Alias=LHS1 -chrXI SGD CDS 299582 301882 . + . ID=YKL072W;Name=YKL072W;Alias=STB6 -chrXI SGD CDS 305114 305884 . + . ID=YKL071W;Name=YKL071W;Alias= -chrXI SGD CDS 306211 306720 . + . ID=YKL070W;Name=YKL070W;Alias= -chrXI SGD CDS 307285 307827 . + . ID=YKL069W;Name=YKL069W;Alias= -chrXI SGD CDS 309206 309442 . + . ID=YKL068W-A;Name=YKL068W-A;Alias= -chrXI SGD CDS 310199 313078 . + . ID=YKL068W;Name=YKL068W;Alias=NUP100 -chrXI SGD CDS 314812 315273 . + . ID=YKL067W;Name=YKL067W;Alias=YNK1 -chrXI SGD CDS 315954 316175 . + . ID=YKL065W-A;Name=YKL065W-A;Alias= -chrXI SGD CDS 316437 317057 . - . ID=YKL065C;Name=YKL065C;Alias=YET1 -chrXI SGD CDS 317764 320673 . + . ID=YKL064W;Name=YKL064W;Alias=MNR2 -chrXI SGD CDS 321015 321518 . - . ID=YKL063C;Name=YKL063C;Alias= -chrXI SGD CDS 323228 325120 . + . ID=YKL062W;Name=YKL062W;Alias=MSN4 -chrXI SGD CDS 325771 326112 . + . ID=YKL061W;Name=YKL061W;Alias=BLI1 -chrXI SGD CDS 326408 327487 . - . ID=YKL060C;Name=YKL060C;Alias=FBA1 -chrXI SGD CDS 328118 329443 . - . ID=YKL059C;Name=YKL059C;Alias=MPE1 -chrXI SGD CDS 330166 330534 . + . ID=YKL058W;Name=YKL058W;Alias=TOA2 -chrXI SGD CDS 330856 333969 . - . ID=YKL057C;Name=YKL057C;Alias=NUP120 -chrXI SGD CDS 334412 334915 . - . ID=YKL056C;Name=YKL056C;Alias=TMA19 -chrXI SGD CDS 335321 336157 . - . ID=YKL055C;Name=YKL055C;Alias=OAR1 -chrXI SGD CDS 336537 338753 . - . ID=YKL054C;Name=YKL054C;Alias=DEF1 -chrXI SGD CDS 339182 339442 . - . ID=YKL053C-A;Name=YKL053C-A;Alias=MDM35 -chrXI SGD CDS 339668 340546 . - . ID=YKL052C;Name=YKL052C;Alias=ASK1 -chrXI SGD CDS 341312 342373 . + . ID=YKL051W;Name=YKL051W;Alias=SFK1 -chrXI SGD CDS 342852 345620 . - . ID=YKL050C;Name=YKL050C;Alias= -chrXI SGD CDS 346075 346764 . - . ID=YKL049C;Name=YKL049C;Alias=CSE4 -chrXI SGD CDS 347214 349136 . - . ID=YKL048C;Name=YKL048C;Alias=ELM1 -chrXI SGD CDS 349463 351013 . + . ID=YKL047W;Name=YKL047W;Alias=ANR2 -chrXI SGD CDS 351275 352624 . - . ID=YKL046C;Name=YKL046C;Alias=DCW1 -chrXI SGD CDS 353493 355079 . + . ID=YKL045W;Name=YKL045W;Alias=PRI2 -chrXI SGD CDS 356322 356642 . + . ID=YKL044W;Name=YKL044W;Alias=MMO1 -chrXI SGD CDS 356748 357848 . + . ID=YKL043W;Name=YKL043W;Alias=PHD1 -chrXI SGD CDS 358475 359566 . + . ID=YKL042W;Name=YKL042W;Alias=SPC42 -chrXI SGD CDS 360143 360817 . + . ID=YKL041W;Name=YKL041W;Alias=VPS24 -chrXI SGD CDS 361058 361828 . - . ID=YKL040C;Name=YKL040C;Alias=NFU1 -chrXI SGD CDS 362622 364193 . + . ID=YKL039W;Name=YKL039W;Alias=PTM1 -chrXI SGD CDS 365605 369117 . + . ID=YKL038W;Name=YKL038W;Alias=RGT1 -chrXI SGD CDS 369365 369721 . + . ID=YKL037W;Name=YKL037W;Alias=AIM26 -chrXI SGD CDS 369891 371390 . + . ID=YKL035W;Name=YKL035W;Alias=UGP1 -chrXI SGD CDS 371829 374105 . + . ID=YKL034W;Name=YKL034W;Alias=TUL1 -chrXI SGD CDS 374505 375215 . + . ID=YKL033W-A;Name=YKL033W-A;Alias= -chrXI SGD CDS 375456 378572 . + . ID=YKL033W;Name=YKL033W;Alias=TTI1 -chrXI SGD CDS 380065 381858 . - . ID=YKL032C;Name=YKL032C;Alias=IXR1 -chrXI SGD CDS 382716 384725 . - . ID=YKL029C;Name=YKL029C;Alias=MAE1 -chrXI SGD CDS 385758 387206 . + . ID=YKL028W;Name=YKL028W;Alias=TFA1 -chrXI SGD CDS 387562 388905 . + . ID=YKL027W;Name=YKL027W;Alias=TCD2 -chrXI SGD CDS 389380 389883 . - . ID=YKL026C;Name=YKL026C;Alias=GPX1 -chrXI SGD CDS 390240 392279 . - . ID=YKL025C;Name=YKL025C;Alias=PAN3 -chrXI SGD CDS 392526 393140 . - . ID=YKL024C;Name=YKL024C;Alias=URA6 -chrXI SGD CDS 393146 393373 . - . ID=YKL023C-A;Name=YKL023C-A;Alias= -chrXI SGD CDS 393721 394554 . + . ID=YKL023W;Name=YKL023W;Alias= -chrXI SGD CDS 394726 397248 . - . ID=YKL022C;Name=YKL022C;Alias=CDC16 -chrXI SGD CDS 397344 398750 . - . ID=YKL021C;Name=YKL021C;Alias=MAK11 -chrXI SGD CDS 398832 402080 . - . ID=YKL020C;Name=YKL020C;Alias=SPT23 -chrXI SGD CDS 402568 403518 . + . ID=YKL019W;Name=YKL019W;Alias=RAM2 -chrXI SGD CDS 403580 403879 . - . ID=YKL018C-A;Name=YKL018C-A;Alias= -chrXI SGD CDS 404102 405091 . + . ID=YKL018W;Name=YKL018W;Alias=SWD2 -chrXI SGD CDS 405190 407241 . - . ID=YKL017C;Name=YKL017C;Alias=HCS1 -chrXI SGD CDS 407465 407989 . - . ID=YKL016C;Name=YKL016C;Alias=ATP7 -chrXI SGD CDS 408544 411483 . + . ID=YKL015W;Name=YKL015W;Alias=PUT3 -chrXI SGD CDS 411619 416913 . - . ID=YKL014C;Name=YKL014C;Alias=URB1 -chrXI SGD CDS 417508 418023 . - . ID=YKL013C;Name=YKL013C;Alias=ARC19 -chrXI SGD CDS 418310 420061 . + . ID=YKL012W;Name=YKL012W;Alias=PRP40 -chrXI SGD CDS 420155 421216 . - . ID=YKL011C;Name=YKL011C;Alias=CCE1 -chrXI SGD CDS 421424 425875 . - . ID=YKL010C;Name=YKL010C;Alias=UFD4 -chrXI SGD CDS 426242 426952 . + . ID=YKL009W;Name=YKL009W;Alias=MRT4 -chrXI SGD CDS 427295 428551 . - . ID=YKL008C;Name=YKL008C;Alias=LAC1 -chrXI SGD CDS 429302 430108 . + . ID=YKL007W;Name=YKL007W;Alias=CAP1 -chrXI SGD CDS 430198 430632 . - . ID=YKL006C-A;Name=YKL006C-A;Alias=SFT1 -chrXI SGD CDS 431906 432720 . + . ID=YKL006W;Name=YKL006W;Alias=RPL14A -chrXI SGD CDS 433093 434877 . - . ID=YKL005C;Name=YKL005C;Alias=BYE1 -chrXI SGD CDS 435580 436785 . + . ID=YKL004W;Name=YKL004W;Alias=AUR1 -chrXI SGD CDS 437097 437492 . - . ID=YKL003C;Name=YKL003C;Alias=MRP17 -chrXI SGD CDS 437778 438544 . + . ID=YKL002W;Name=YKL002W;Alias=DID4 -chrXI SGD CDS 438777 439385 . - . ID=YKL001C;Name=YKL001C;Alias=MET14 -chrXI SGD CDS 440608 442722 . - . ID=YKR001C;Name=YKR001C;Alias=VPS1 -chrXI SGD CDS 443232 444938 . + . ID=YKR002W;Name=YKR002W;Alias=PAP1 -chrXI SGD CDS 445381 446727 . + . ID=YKR003W;Name=YKR003W;Alias=OSH6 -chrXI SGD CDS 446799 448036 . - . ID=YKR004C;Name=YKR004C;Alias=ECM9 -chrXI SGD CDS 448521 450167 . - . ID=YKR005C;Name=YKR005C;Alias= -chrXI SGD CDS 450423 451217 . - . ID=YKR006C;Name=YKR006C;Alias=MRPL13 -chrXI SGD CDS 451434 451988 . + . ID=YKR007W;Name=YKR007W;Alias=MEH1 -chrXI SGD CDS 452201 454078 . + . ID=YKR008W;Name=YKR008W;Alias=RSC4 -chrXI SGD CDS 454352 457054 . - . ID=YKR009C;Name=YKR009C;Alias=FOX2 -chrXI SGD CDS 458924 461239 . - . ID=YKR010C;Name=YKR010C;Alias=TOF2 -chrXI SGD CDS 461635 462696 . - . ID=YKR011C;Name=YKR011C;Alias= -chrXI SGD CDS 463959 464948 . + . ID=YKR013W;Name=YKR013W;Alias=PRY2 -chrXI SGD CDS 465367 466071 . - . ID=YKR014C;Name=YKR014C;Alias=YPT52 -chrXI SGD CDS 466961 468667 . - . ID=YKR015C;Name=YKR015C;Alias= -chrXI SGD CDS 469717 471339 . + . ID=YKR016W;Name=YKR016W;Alias=MIC60 -chrXI SGD CDS 471694 473349 . - . ID=YKR017C;Name=YKR017C;Alias=HEL1 -chrXI SGD CDS 473723 475900 . - . ID=YKR018C;Name=YKR018C;Alias= -chrXI SGD CDS 476216 478063 . - . ID=YKR019C;Name=YKR019C;Alias=IRS4 -chrXI SGD CDS 478338 478832 . + . ID=YKR020W;Name=YKR020W;Alias=VPS51 -chrXI SGD CDS 479234 481981 . + . ID=YKR021W;Name=YKR021W;Alias=ALY1 -chrXI SGD CDS 482171 483139 . - . ID=YKR022C;Name=YKR022C;Alias=NTR2 -chrXI SGD CDS 483419 485011 . + . ID=YKR023W;Name=YKR023W;Alias= -chrXI SGD CDS 485144 487372 . - . ID=YKR024C;Name=YKR024C;Alias=DBP7 -chrXI SGD CDS 487770 488618 . + . ID=YKR025W;Name=YKR025W;Alias=RPC37 -chrXI SGD CDS 488738 489655 . - . ID=YKR026C;Name=YKR026C;Alias=GCN3 -chrXI SGD CDS 491364 493661 . + . ID=YKR027W;Name=YKR027W;Alias=BCH2 -chrXI SGD CDS 494257 497358 . + . ID=YKR028W;Name=YKR028W;Alias=SAP190 -chrXI SGD CDS 497578 499833 . - . ID=YKR029C;Name=YKR029C;Alias=SET3 -chrXI SGD CDS 500282 501103 . + . ID=YKR030W;Name=YKR030W;Alias=GMH1 -chrXI SGD CDS 501344 506395 . - . ID=YKR031C;Name=YKR031C;Alias=SPO14 -chrXI SGD CDS 506898 507707 . + . ID=YKR034W;Name=YKR034W;Alias=DAL80 -chrXI SGD CDS 507939 508553 . + . ID=YKR035W-A;Name=YKR035W-A;Alias=DID2 -chrXI SGD CDS 508702 510633 . - . ID=YKR036C;Name=YKR036C;Alias=CAF4 -chrXI SGD CDS 510910 511797 . - . ID=YKR037C;Name=YKR037C;Alias=SPC34 -chrXI SGD CDS 511999 513159 . - . ID=YKR038C;Name=YKR038C;Alias=KAE1 -chrXI SGD CDS 515063 516871 . + . ID=YKR039W;Name=YKR039W;Alias=GAP1 -chrXI SGD CDS 518198 518950 . + . ID=YKR041W;Name=YKR041W;Alias= -chrXI SGD CDS 519527 520624 . + . ID=YKR042W;Name=YKR042W;Alias=UTH1 -chrXI SGD CDS 520897 521712 . - . ID=YKR043C;Name=YKR043C;Alias=SHB17 -chrXI SGD CDS 522015 523346 . + . ID=YKR044W;Name=YKR044W;Alias=UIP5 -chrXI SGD CDS 523418 523969 . - . ID=YKR045C;Name=YKR045C;Alias= -chrXI SGD CDS 524223 525074 . - . ID=YKR046C;Name=YKR046C;Alias=PET10 -chrXI SGD CDS 525387 526640 . - . ID=YKR048C;Name=YKR048C;Alias=NAP1 -chrXI SGD CDS 526830 527231 . - . ID=YKR049C;Name=YKR049C;Alias=FMP46 -chrXI SGD CDS 527815 530484 . + . ID=YKR050W;Name=YKR050W;Alias=TRK2 -chrXI SGD CDS 530946 532202 . + . ID=YKR051W;Name=YKR051W;Alias= -chrXI SGD CDS 532550 533464 . - . ID=YKR052C;Name=YKR052C;Alias=MRS4 -chrXI SGD CDS 534067 535281 . - . ID=YKR053C;Name=YKR053C;Alias=YSR3 -chrXI SGD CDS 535647 547925 . - . ID=YKR054C;Name=YKR054C;Alias=DYN1 -chrXI SGD CDS 548216 549091 . + . ID=YKR055W;Name=YKR055W;Alias=RHO4 -chrXI SGD CDS 549448 551367 . + . ID=YKR056W;Name=YKR056W;Alias=TRM2 -chrXI SGD CDS 551657 552242 . + . ID=YKR057W;Name=YKR057W;Alias=RPS21A -chrXI SGD CDS 552770 554620 . + . ID=YKR058W;Name=YKR058W;Alias=GLG1 -chrXI SGD CDS 554987 556174 . + . ID=YKR059W;Name=YKR059W;Alias=TIF1 -chrXI SGD CDS 556518 557342 . + . ID=YKR060W;Name=YKR060W;Alias=UTP30 -chrXI SGD CDS 557677 558954 . + . ID=YKR061W;Name=YKR061W;Alias=KTR2 -chrXI SGD CDS 559666 560652 . + . ID=YKR062W;Name=YKR062W;Alias=TFA2 -chrXI SGD CDS 560789 562297 . - . ID=YKR063C;Name=YKR063C;Alias=LAS1 -chrXI SGD CDS 562547 565138 . + . ID=YKR064W;Name=YKR064W;Alias=OAF3 -chrXI SGD CDS 565299 565892 . - . ID=YKR065C;Name=YKR065C;Alias=PAM17 -chrXI SGD CDS 566113 567198 . - . ID=YKR066C;Name=YKR066C;Alias=CCP1 -chrXI SGD CDS 567918 570149 . + . ID=YKR067W;Name=YKR067W;Alias=GPT2 -chrXI SGD CDS 570328 570909 . - . ID=YKR068C;Name=YKR068C;Alias=BET3 -chrXI SGD CDS 571612 573393 . + . ID=YKR069W;Name=YKR069W;Alias=MET1 -chrXI SGD CDS 573574 574632 . + . ID=YKR070W;Name=YKR070W;Alias= -chrXI SGD CDS 574934 575980 . - . ID=YKR071C;Name=YKR071C;Alias=DRE2 -chrXI SGD CDS 576435 578123 . - . ID=YKR072C;Name=YKR072C;Alias=SIS2 -chrXI SGD CDS 579209 579676 . + . ID=YKR074W;Name=YKR074W;Alias=AIM29 -chrXI SGD CDS 579827 580750 . - . ID=YKR075C;Name=YKR075C;Alias= -chrXI SGD CDS 582283 583395 . + . ID=YKR076W;Name=YKR076W;Alias=ECM4 -chrXI SGD CDS 583653 584744 . + . ID=YKR077W;Name=YKR077W;Alias=MSA2 -chrXI SGD CDS 584952 586709 . + . ID=YKR078W;Name=YKR078W;Alias= -chrXI SGD CDS 586789 589305 . - . ID=YKR079C;Name=YKR079C;Alias=TRZ1 -chrXI SGD CDS 590395 591357 . + . ID=YKR080W;Name=YKR080W;Alias=MTD1 -chrXI SGD CDS 591506 592540 . - . ID=YKR081C;Name=YKR081C;Alias=RPF2 -chrXI SGD CDS 592825 596298 . + . ID=YKR082W;Name=YKR082W;Alias=NUP133 -chrXI SGD CDS 596421 596822 . - . ID=YKR083C;Name=YKR083C;Alias=DAD2 -chrXI SGD CDS 597055 598890 . - . ID=YKR084C;Name=YKR084C;Alias=HBS1 -chrXI SGD CDS 599094 599681 . - . ID=YKR085C;Name=YKR085C;Alias=MRPL20 -chrXI SGD CDS 599857 603072 . + . ID=YKR086W;Name=YKR086W;Alias=PRP16 -chrXI SGD CDS 603195 604232 . - . ID=YKR087C;Name=YKR087C;Alias=OMA1 -chrXI SGD CDS 604405 605418 . - . ID=YKR088C;Name=YKR088C;Alias=TVP38 -chrXI SGD CDS 605633 608365 . - . ID=YKR089C;Name=YKR089C;Alias=TGL4 -chrXI SGD CDS 608946 611066 . + . ID=YKR090W;Name=YKR090W;Alias=PXL1 -chrXI SGD CDS 611525 612265 . + . ID=YKR091W;Name=YKR091W;Alias=SRL3 -chrXI SGD CDS 612665 613885 . - . ID=YKR092C;Name=YKR092C;Alias=SRP40 -chrXI SGD CDS 615730 617535 . + . ID=YKR093W;Name=YKR093W;Alias=PTR2 -chrXI SGD CDS 617996 618750 . - . ID=YKR094C;Name=YKR094C;Alias=RPL40B -chrXI SGD CDS 619805 625432 . + . ID=YKR095W;Name=YKR095W;Alias=MLP1 -chrXI SGD CDS 625864 626205 . + . ID=YKR095W-A;Name=YKR095W-A;Alias=PCC1 -chrXI SGD CDS 626793 630380 . + . ID=YKR096W;Name=YKR096W;Alias=ESL2 -chrXI SGD CDS 631152 632801 . + . ID=YKR097W;Name=YKR097W;Alias=PCK1 -chrXI SGD CDS 633026 635179 . - . ID=YKR098C;Name=YKR098C;Alias=UBP11 -chrXI SGD CDS 635851 638286 . + . ID=YKR099W;Name=YKR099W;Alias=BAS1 -chrXI SGD CDS 638901 639968 . - . ID=YKR100C;Name=YKR100C;Alias=SKG1 -chrXI SGD CDS 640540 642504 . + . ID=YKR101W;Name=YKR101W;Alias=SIR1 -chrXI SGD CDS 646356 649865 . + . ID=YKR102W;Name=YKR102W;Alias=FLO10 -chrXI SGD CDS 653080 656736 . + . ID=YKR103W;Name=YKR103W;Alias=NFT1 -chrXI SGD CDS 656836 657756 . + . ID=YKR104W;Name=YKR104W;Alias= -chrXI SGD CDS 658716 660464 . - . ID=YKR105C;Name=YKR105C;Alias=VBA5 -chrXI SGD CDS 661442 663289 . + . ID=YKR106W;Name=YKR106W;Alias=GEX2 -chrXII SGD CDS 585 4301 . - . ID=YLL067C;Name=YLL067C;Alias= -chrXII SGD CDS 5605 5775 . + . ID=YLL066W-B;Name=YLL066W-B;Alias= -chrXII SGD CDS 6120 9836 . - . ID=YLL066C;Name=YLL066C;Alias= -chrXII SGD CDS 13083 13445 . - . ID=YLL064C;Name=YLL064C;Alias=PAU18 -chrXII SGD CDS 14648 16072 . - . ID=YLL063C;Name=YLL063C;Alias=AYT1 -chrXII SGD CDS 16639 17613 . - . ID=YLL062C;Name=YLL062C;Alias=MHT1 -chrXII SGD CDS 17956 19707 . + . ID=YLL061W;Name=YLL061W;Alias=MMP1 -chrXII SGD CDS 21138 21839 . - . ID=YLL060C;Name=YLL060C;Alias=GTT2 -chrXII SGD CDS 23569 25296 . + . ID=YLL058W;Name=YLL058W;Alias= -chrXII SGD CDS 25756 26994 . - . ID=YLL057C;Name=YLL057C;Alias=JLP1 -chrXII SGD CDS 27409 28305 . - . ID=YLL056C;Name=YLL056C;Alias= -chrXII SGD CDS 30109 31704 . + . ID=YLL055W;Name=YLL055W;Alias=YCT1 -chrXII SGD CDS 32673 35204 . - . ID=YLL054C;Name=YLL054C;Alias= -chrXII SGD CDS 35503 35961 . - . ID=YLL053C;Name=YLL053C;Alias= -chrXII SGD CDS 35912 36361 . - . ID=YLL052C;Name=YLL052C;Alias=AQY2 -chrXII SGD CDS 37333 39471 . - . ID=YLL051C;Name=YLL051C;Alias=FRE6 -chrXII SGD CDS 39804 40414 . - . ID=YLL050C;Name=YLL050C;Alias=COF1 -chrXII SGD CDS 40666 41205 . + . ID=YLL049W;Name=YLL049W;Alias=LDB18 -chrXII SGD CDS 41280 46265 . - . ID=YLL048C;Name=YLL048C;Alias=YBT1 -chrXII SGD CDS 46714 47463 . - . ID=YLL046C;Name=YLL046C;Alias=RNP1 -chrXII SGD CDS 47859 48629 . - . ID=YLL045C;Name=YLL045C;Alias=RPL8B -chrXII SGD CDS 49938 51947 . + . ID=YLL043W;Name=YLL043W;Alias=FPS1 -chrXII SGD CDS 52087 52590 . - . ID=YLL042C;Name=YLL042C;Alias=ATG10 -chrXII SGD CDS 53131 53931 . - . ID=YLL041C;Name=YLL041C;Alias=SDH2 -chrXII SGD CDS 54211 63645 . - . ID=YLL040C;Name=YLL040C;Alias=VPS13 -chrXII SGD CDS 64062 65207 . - . ID=YLL039C;Name=YLL039C;Alias=UBI4 -chrXII SGD CDS 65775 66518 . - . ID=YLL038C;Name=YLL038C;Alias=ENT4 -chrXII SGD CDS 66745 68256 . - . ID=YLL036C;Name=YLL036C;Alias=PRP19 -chrXII SGD CDS 68580 70478 . + . ID=YLL035W;Name=YLL035W;Alias=GRC3 -chrXII SGD CDS 70633 73146 . - . ID=YLL034C;Name=YLL034C;Alias=RIX7 -chrXII SGD CDS 73409 74101 . + . ID=YLL033W;Name=YLL033W;Alias=IRC19 -chrXII SGD CDS 74270 76747 . - . ID=YLL032C;Name=YLL032C;Alias= -chrXII SGD CDS 77152 80205 . - . ID=YLL031C;Name=YLL031C;Alias=GPI13 -chrXII SGD CDS 81461 83710 . + . ID=YLL029W;Name=YLL029W;Alias=FRA1 -chrXII SGD CDS 84804 86564 . + . ID=YLL028W;Name=YLL028W;Alias=TPO1 -chrXII SGD CDS 87403 88155 . + . ID=YLL027W;Name=YLL027W;Alias=ISA1 -chrXII SGD CDS 88623 91349 . + . ID=YLL026W;Name=YLL026W;Alias=HSP104 -chrXII SGD CDS 94747 95121 . + . ID=YLL025W;Name=YLL025W;Alias=PAU17 -chrXII SGD CDS 95566 97485 . - . ID=YLL024C;Name=YLL024C;Alias=SSA2 -chrXII SGD CDS 97997 98836 . - . ID=YLL023C;Name=YLL023C;Alias=POM33 -chrXII SGD CDS 99044 100201 . - . ID=YLL022C;Name=YLL022C;Alias=HIF1 -chrXII SGD CDS 100947 105347 . + . ID=YLL021W;Name=YLL021W;Alias=SPA2 -chrXII SGD CDS 105686 107899 . - . ID=YLL019C;Name=YLL019C;Alias=KNS1 -chrXII SGD CDS 108676 108972 . - . ID=YLL018C-A;Name=YLL018C-A;Alias=COX19 -chrXII SGD CDS 109902 111575 . - . ID=YLL018C;Name=YLL018C;Alias=DPS1 -chrXII SGD CDS 116432 121111 . + . ID=YLL015W;Name=YLL015W;Alias=BPT1 -chrXII SGD CDS 121322 121648 . + . ID=YLL014W;Name=YLL014W;Alias=EMC6 -chrXII SGD CDS 122075 124714 . - . ID=YLL013C;Name=YLL013C;Alias=PUF3 -chrXII SGD CDS 125534 127255 . + . ID=YLL012W;Name=YLL012W;Alias=YEH1 -chrXII SGD CDS 127523 128992 . + . ID=YLL011W;Name=YLL011W;Alias=SOF1 -chrXII SGD CDS 129330 130613 . - . ID=YLL010C;Name=YLL010C;Alias=PSR1 -chrXII SGD CDS 131205 131414 . - . ID=YLL009C;Name=YLL009C;Alias=COX17 -chrXII SGD CDS 131729 133987 . + . ID=YLL008W;Name=YLL008W;Alias=DRS1 -chrXII SGD CDS 134302 136299 . - . ID=YLL007C;Name=YLL007C;Alias=LMO1 -chrXII SGD CDS 136345 136521 . + . ID=YLL006W-A;Name=YLL006W-A;Alias= -chrXII SGD CDS 136586 137866 . + . ID=YLL006W;Name=YLL006W;Alias=MMM1 -chrXII SGD CDS 137940 140546 . - . ID=YLL005C;Name=YLL005C;Alias=SPO75 -chrXII SGD CDS 141073 142923 . + . ID=YLL004W;Name=YLL004W;Alias=ORC3 -chrXII SGD CDS 143201 146041 . + . ID=YLL003W;Name=YLL003W;Alias=SFI1 -chrXII SGD CDS 146291 147601 . + . ID=YLL002W;Name=YLL002W;Alias=RTT109 -chrXII SGD CDS 147890 150163 . + . ID=YLL001W;Name=YLL001W;Alias=DNM1 -chrXII SGD CDS 151389 153977 . - . ID=YLR001C;Name=YLR001C;Alias= -chrXII SGD CDS 154343 156334 . - . ID=YLR002C;Name=YLR002C;Alias=NOC3 -chrXII SGD CDS 156855 157730 . - . ID=YLR003C;Name=YLR003C;Alias=CMS1 -chrXII SGD CDS 157934 159505 . - . ID=YLR004C;Name=YLR004C;Alias=THI73 -chrXII SGD CDS 160049 161434 . + . ID=YLR005W;Name=YLR005W;Alias=SSL1 -chrXII SGD CDS 161755 163893 . - . ID=YLR006C;Name=YLR006C;Alias=SSK1 -chrXII SGD CDS 164392 165402 . + . ID=YLR007W;Name=YLR007W;Alias=NSE1 -chrXII SGD CDS 165577 166083 . - . ID=YLR008C;Name=YLR008C;Alias=PAM18 -chrXII SGD CDS 166537 167136 . + . ID=YLR009W;Name=YLR009W;Alias=RLP24 -chrXII SGD CDS 167320 167802 . - . ID=YLR010C;Name=YLR010C;Alias=TEN1 -chrXII SGD CDS 169103 169678 . + . ID=YLR011W;Name=YLR011W;Alias=LOT6 -chrXII SGD CDS 169982 170281 . - . ID=YLR012C;Name=YLR012C;Alias= -chrXII SGD CDS 171339 171764 . + . ID=YLR013W;Name=YLR013W;Alias=GAT3 -chrXII SGD CDS 172268 174982 . - . ID=YLR014C;Name=YLR014C;Alias=PPR1 -chrXII SGD CDS 175227 176744 . + . ID=YLR015W;Name=YLR015W;Alias=BRE2 -chrXII SGD CDS 176802 177416 . - . ID=YLR016C;Name=YLR016C;Alias=PML1 -chrXII SGD CDS 177608 178621 . + . ID=YLR017W;Name=YLR017W;Alias=MEU1 -chrXII SGD CDS 178707 179606 . - . ID=YLR018C;Name=YLR018C;Alias=POM34 -chrXII SGD CDS 180288 181481 . + . ID=YLR019W;Name=YLR019W;Alias=PSR2 -chrXII SGD CDS 181789 183405 . - . ID=YLR020C;Name=YLR020C;Alias=YEH2 -chrXII SGD CDS 183623 184162 . + . ID=YLR021W;Name=YLR021W;Alias=IRC25 -chrXII SGD CDS 184174 184926 . - . ID=YLR022C;Name=YLR022C;Alias=SDO1 -chrXII SGD CDS 185498 187129 . - . ID=YLR023C;Name=YLR023C;Alias=IZH3 -chrXII SGD CDS 187663 193281 . - . ID=YLR024C;Name=YLR024C;Alias=UBR2 -chrXII SGD CDS 194452 195174 . + . ID=YLR025W;Name=YLR025W;Alias=SNF7 -chrXII SGD CDS 195450 196472 . - . ID=YLR026C;Name=YLR026C;Alias=SED5 -chrXII SGD CDS 196829 198085 . - . ID=YLR027C;Name=YLR027C;Alias=AAT2 -chrXII SGD CDS 199540 201315 . - . ID=YLR028C;Name=YLR028C;Alias=ADE16 -chrXII SGD CDS 201976 202590 . - . ID=YLR029C;Name=YLR029C;Alias=RPL15A -chrXII SGD CDS 203290 204081 . + . ID=YLR030W;Name=YLR030W;Alias= -chrXII SGD CDS 204225 204785 . + . ID=YLR031W;Name=YLR031W;Alias= -chrXII SGD CDS 204991 208500 . + . ID=YLR032W;Name=YLR032W;Alias=RAD5 -chrXII SGD CDS 208761 210269 . + . ID=YLR033W;Name=YLR033W;Alias=RSC58 -chrXII SGD CDS 210512 211933 . - . ID=YLR034C;Name=YLR034C;Alias=SMF3 -chrXII SGD CDS 212369 214456 . - . ID=YLR035C;Name=YLR035C;Alias=MLH2 -chrXII SGD CDS 221521 222132 . - . ID=YLR036C;Name=YLR036C;Alias= -chrXII SGD CDS 222685 223059 . - . ID=YLR037C;Name=YLR037C;Alias=PAU23 -chrXII SGD CDS 224921 225172 . - . ID=YLR038C;Name=YLR038C;Alias=COX12 -chrXII SGD CDS 225426 228596 . - . ID=YLR039C;Name=YLR039C;Alias=RIC1 -chrXII SGD CDS 228908 229582 . - . ID=YLR040C;Name=YLR040C;Alias=AFB1 -chrXII SGD CDS 229966 230451 . - . ID=YLR042C;Name=YLR042C;Alias= -chrXII SGD CDS 231702 232013 . - . ID=YLR043C;Name=YLR043C;Alias=TRX1 -chrXII SGD CDS 232390 234081 . - . ID=YLR044C;Name=YLR044C;Alias=PDC1 -chrXII SGD CDS 235037 237703 . - . ID=YLR045C;Name=YLR045C;Alias=STU2 -chrXII SGD CDS 238001 238813 . - . ID=YLR046C;Name=YLR046C;Alias= -chrXII SGD CDS 239347 241407 . - . ID=YLR047C;Name=YLR047C;Alias=FRE8 -chrXII SGD CDS 242232 243349 . + . ID=YLR048W;Name=YLR048W;Alias=RPS0B -chrXII SGD CDS 243886 245172 . - . ID=YLR049C;Name=YLR049C;Alias= -chrXII SGD CDS 245587 246072 . - . ID=YLR050C;Name=YLR050C;Alias= -chrXII SGD CDS 246324 246977 . - . ID=YLR051C;Name=YLR051C;Alias=FCF2 -chrXII SGD CDS 247201 247953 . + . ID=YLR052W;Name=YLR052W;Alias=IES3 -chrXII SGD CDS 248100 248426 . - . ID=YLR053C;Name=YLR053C;Alias= -chrXII SGD CDS 248717 250978 . - . ID=YLR054C;Name=YLR054C;Alias=OSW2 -chrXII SGD CDS 251272 253080 . - . ID=YLR055C;Name=YLR055C;Alias=SPT8 -chrXII SGD CDS 253861 254958 . + . ID=YLR056W;Name=YLR056W;Alias=ERG3 -chrXII SGD CDS 255306 257855 . + . ID=YLR057W;Name=YLR057W;Alias=MNL2 -chrXII SGD CDS 257992 259401 . - . ID=YLR058C;Name=YLR058C;Alias=SHM2 -chrXII SGD CDS 259738 260547 . - . ID=YLR059C;Name=YLR059C;Alias=REX2 -chrXII SGD CDS 260979 262766 . + . ID=YLR060W;Name=YLR060W;Alias=FRS1 -chrXII SGD CDS 263194 263948 . + . ID=YLR061W;Name=YLR061W;Alias=RPL22A -chrXII SGD CDS 264157 265254 . + . ID=YLR063W;Name=YLR063W;Alias=BMT6 -chrXII SGD CDS 265456 266277 . + . ID=YLR064W;Name=YLR064W;Alias=PER33 -chrXII SGD CDS 266373 266918 . - . ID=YLR065C;Name=YLR065C;Alias=ENV10 -chrXII SGD CDS 267169 267723 . + . ID=YLR066W;Name=YLR066W;Alias=SPC3 -chrXII SGD CDS 267813 270710 . - . ID=YLR067C;Name=YLR067C;Alias=PET309 -chrXII SGD CDS 271008 271463 . + . ID=YLR068W;Name=YLR068W;Alias=FYV7 -chrXII SGD CDS 271630 273915 . - . ID=YLR069C;Name=YLR069C;Alias=MEF1 -chrXII SGD CDS 274141 275211 . - . ID=YLR070C;Name=YLR070C;Alias=XYL2 -chrXII SGD CDS 275378 278626 . - . ID=YLR071C;Name=YLR071C;Alias=RGR1 -chrXII SGD CDS 278862 280943 . + . ID=YLR072W;Name=YLR072W;Alias=LAM6 -chrXII SGD CDS 281019 281621 . - . ID=YLR073C;Name=YLR073C;Alias=RFU1 -chrXII SGD CDS 281956 282456 . - . ID=YLR074C;Name=YLR074C;Alias=BUD20 -chrXII SGD CDS 282927 283592 . + . ID=YLR075W;Name=YLR075W;Alias=RPL10 -chrXII SGD CDS 283872 285623 . + . ID=YLR077W;Name=YLR077W;Alias=FMP25 -chrXII SGD CDS 285736 286559 . - . ID=YLR078C;Name=YLR078C;Alias=BOS1 -chrXII SGD CDS 286820 287674 . + . ID=YLR079W;Name=YLR079W;Alias=SIC1 -chrXII SGD CDS 287916 289250 . + . ID=YLR080W;Name=YLR080W;Alias=EMP46 -chrXII SGD CDS 290212 291936 . + . ID=YLR081W;Name=YLR081W;Alias=GAL2 -chrXII SGD CDS 292394 293572 . - . ID=YLR082C;Name=YLR082C;Alias=SRL2 -chrXII SGD CDS 294091 296094 . - . ID=YLR083C;Name=YLR083C;Alias=EMP70 -chrXII SGD CDS 296589 300251 . - . ID=YLR084C;Name=YLR084C;Alias=RAX2 -chrXII SGD CDS 300673 301989 . - . ID=YLR085C;Name=YLR085C;Alias=ARP6 -chrXII SGD CDS 302243 306499 . + . ID=YLR086W;Name=YLR086W;Alias=SMC4 -chrXII SGD CDS 306855 315731 . - . ID=YLR087C;Name=YLR087C;Alias=CSF1 -chrXII SGD CDS 316107 317951 . + . ID=YLR088W;Name=YLR088W;Alias=GAA1 -chrXII SGD CDS 318237 320015 . - . ID=YLR089C;Name=YLR089C;Alias=ALT1 -chrXII SGD CDS 320701 322080 . + . ID=YLR090W;Name=YLR090W;Alias=XDJ1 -chrXII SGD CDS 322297 323178 . + . ID=YLR091W;Name=YLR091W;Alias=GEP5 -chrXII SGD CDS 323544 326225 . + . ID=YLR092W;Name=YLR092W;Alias=SUL2 -chrXII SGD CDS 326513 327415 . - . ID=YLR093C;Name=YLR093C;Alias=NYV1 -chrXII SGD CDS 327730 329238 . - . ID=YLR094C;Name=YLR094C;Alias=GIS3 -chrXII SGD CDS 329677 332115 . - . ID=YLR095C;Name=YLR095C;Alias=IOC2 -chrXII SGD CDS 332590 336033 . + . ID=YLR096W;Name=YLR096W;Alias=KIN2 -chrXII SGD CDS 336231 337265 . - . ID=YLR097C;Name=YLR097C;Alias=HRT3 -chrXII SGD CDS 337527 339473 . - . ID=YLR098C;Name=YLR098C;Alias=CHA4 -chrXII SGD CDS 339744 340928 . - . ID=YLR099C;Name=YLR099C;Alias=ICT1 -chrXII SGD CDS 341325 341588 . + . ID=YLR099W-A;Name=YLR099W-A;Alias=MIM2 -chrXII SGD CDS 341810 342853 . + . ID=YLR100W;Name=YLR100W;Alias=ERG27 -chrXII SGD CDS 342970 343767 . - . ID=YLR102C;Name=YLR102C;Alias=APC9 -chrXII SGD CDS 343989 345941 . - . ID=YLR103C;Name=YLR103C;Alias=CDC45 -chrXII SGD CDS 346585 346980 . + . ID=YLR104W;Name=YLR104W;Alias=LCL2 -chrXII SGD CDS 347047 348180 . - . ID=YLR105C;Name=YLR105C;Alias=SEN2 -chrXII SGD CDS 349006 363738 . - . ID=YLR106C;Name=YLR106C;Alias=MDN1 -chrXII SGD CDS 364116 365330 . + . ID=YLR107W;Name=YLR107W;Alias=REX3 -chrXII SGD CDS 366667 368124 . - . ID=YLR108C;Name=YLR108C;Alias= -chrXII SGD CDS 368781 369311 . + . ID=YLR109W;Name=YLR109W;Alias=AHP1 -chrXII SGD CDS 369697 370098 . - . ID=YLR110C;Name=YLR110C;Alias=CCW12 -chrXII SGD CDS 371620 372927 . + . ID=YLR113W;Name=YLR113W;Alias=HOG1 -chrXII SGD CDS 374944 377238 . - . ID=YLR114C;Name=YLR114C;Alias=AVL9 -chrXII SGD CDS 377985 380564 . + . ID=YLR115W;Name=YLR115W;Alias=CFT2 -chrXII SGD CDS 380822 382252 . + . ID=YLR116W;Name=YLR116W;Alias=MSL5 -chrXII SGD CDS 382471 384534 . - . ID=YLR117C;Name=YLR117C;Alias=CLF1 -chrXII SGD CDS 384725 385408 . - . ID=YLR118C;Name=YLR118C;Alias= -chrXII SGD CDS 385534 386175 . + . ID=YLR119W;Name=YLR119W;Alias=SRN2 -chrXII SGD CDS 386511 388220 . - . ID=YLR120C;Name=YLR120C;Alias=YPS1 -chrXII SGD CDS 388744 390270 . - . ID=YLR121C;Name=YLR121C;Alias=YPS3 -chrXII SGD CDS 393484 393894 . + . ID=YLR125W;Name=YLR125W;Alias= -chrXII SGD CDS 394765 395520 . - . ID=YLR126C;Name=YLR126C;Alias= -chrXII SGD CDS 395758 398319 . - . ID=YLR127C;Name=YLR127C;Alias=APC2 -chrXII SGD CDS 398530 399433 . + . ID=YLR128W;Name=YLR128W;Alias=DCN1 -chrXII SGD CDS 399657 402488 . + . ID=YLR129W;Name=YLR129W;Alias=DIP2 -chrXII SGD CDS 402794 404062 . - . ID=YLR130C;Name=YLR130C;Alias=ZRT2 -chrXII SGD CDS 404510 406822 . - . ID=YLR131C;Name=YLR131C;Alias=ACE2 -chrXII SGD CDS 407283 408155 . - . ID=YLR132C;Name=YLR132C;Alias=USB1 -chrXII SGD CDS 408445 410193 . + . ID=YLR133W;Name=YLR133W;Alias=CKI1 -chrXII SGD CDS 410723 412414 . + . ID=YLR134W;Name=YLR134W;Alias=PDC5 -chrXII SGD CDS 413281 415527 . + . ID=YLR135W;Name=YLR135W;Alias=SLX4 -chrXII SGD CDS 415801 416658 . - . ID=YLR136C;Name=YLR136C;Alias=TIS11 -chrXII SGD CDS 417006 418109 . + . ID=YLR137W;Name=YLR137W;Alias=RKM5 -chrXII SGD CDS 418437 421394 . + . ID=YLR138W;Name=YLR138W;Alias=NHA1 -chrXII SGD CDS 421542 423473 . - . ID=YLR139C;Name=YLR139C;Alias=SLS1 -chrXII SGD CDS 423683 424774 . + . ID=YLR141W;Name=YLR141W;Alias=RRN5 -chrXII SGD CDS 425186 426616 . + . ID=YLR142W;Name=YLR142W;Alias=PUT1 -chrXII SGD CDS 427329 429386 . + . ID=YLR143W;Name=YLR143W;Alias=DPH6 -chrXII SGD CDS 429677 432016 . - . ID=YLR144C;Name=YLR144C;Alias=ACF2 -chrXII SGD CDS 432168 432773 . + . ID=YLR145W;Name=YLR145W;Alias=RMP1 -chrXII SGD CDS 432823 433725 . - . ID=YLR146C;Name=YLR146C;Alias=SPE4 -chrXII SGD CDS 433870 434058 . + . ID=YLR146W-A;Name=YLR146W-A;Alias= -chrXII SGD CDS 434158 434463 . - . ID=YLR147C;Name=YLR147C;Alias=SMD3 -chrXII SGD CDS 434641 437397 . + . ID=YLR148W;Name=YLR148W;Alias=PEP3 -chrXII SGD CDS 437631 439823 . - . ID=YLR149C;Name=YLR149C;Alias= -chrXII SGD CDS 440467 441288 . + . ID=YLR150W;Name=YLR150W;Alias=STM1 -chrXII SGD CDS 441715 442737 . - . ID=YLR151C;Name=YLR151C;Alias=PCD1 -chrXII SGD CDS 442958 444688 . - . ID=YLR152C;Name=YLR152C;Alias= -chrXII SGD CDS 445524 447575 . - . ID=YLR153C;Name=YLR153C;Alias=ACS2 -chrXII SGD CDS 447982 448314 . - . ID=YLR154C;Name=YLR154C;Alias=RNH203 -chrXII SGD CDS 454696 455070 . + . ID=YLR154W-C;Name=YLR154W-C;Alias=TAR1 -chrXII SGD CDS 462522 462671 . - . ID=YLR154C-G;Name=YLR154C-G;Alias= -chrXII SGD CDS 468827 468958 . - . ID=YLR154C-H;Name=YLR154C-H;Alias= -chrXII SGD CDS 469317 470405 . - . ID=YLR155C;Name=YLR155C;Alias=ASP3-1 -chrXII SGD CDS 472113 472457 . + . ID=YLR156W;Name=YLR156W;Alias= -chrXII SGD CDS 472479 472610 . - . ID=YLR156C-A;Name=YLR156C-A;Alias= -chrXII SGD CDS 472969 474057 . - . ID=YLR157C;Name=YLR157C;Alias=ASP3-2 -chrXII SGD CDS 475764 475976 . + . ID=YLR157W-D;Name=YLR157W-D;Alias= -chrXII SGD CDS 481873 482037 . + . ID=YLR157W-E;Name=YLR157W-E;Alias= -chrXII SGD CDS 482059 482190 . - . ID=YLR157C-C;Name=YLR157C-C;Alias= -chrXII SGD CDS 482549 483637 . - . ID=YLR158C;Name=YLR158C;Alias=ASP3-3 -chrXII SGD CDS 485345 485689 . + . ID=YLR159W;Name=YLR159W;Alias= -chrXII SGD CDS 485711 485842 . - . ID=YLR159C-A;Name=YLR159C-A;Alias= -chrXII SGD CDS 486201 487289 . - . ID=YLR160C;Name=YLR160C;Alias=ASP3-4 -chrXII SGD CDS 488997 489341 . + . ID=YLR161W;Name=YLR161W;Alias= -chrXII SGD CDS 489573 489929 . + . ID=YLR162W;Name=YLR162W;Alias= -chrXII SGD CDS 490406 490594 . + . ID=YLR162W-A;Name=YLR162W-A;Alias=RRT15 -chrXII SGD CDS 491866 493254 . - . ID=YLR163C;Name=YLR163C;Alias=MAS1 -chrXII SGD CDS 493883 494389 . + . ID=YLR164W;Name=YLR164W;Alias=SHH4 -chrXII SGD CDS 494494 495258 . - . ID=YLR165C;Name=YLR165C;Alias=PUS5 -chrXII SGD CDS 495429 498044 . - . ID=YLR166C;Name=YLR166C;Alias=SEC10 -chrXII SGD CDS 498947 499405 . + . ID=YLR167W;Name=YLR167W;Alias=RPS31 -chrXII SGD CDS 499578 500270 . - . ID=YLR168C;Name=YLR168C;Alias=UPS2 -chrXII SGD CDS 500579 501049 . - . ID=YLR170C;Name=YLR170C;Alias=APS1 -chrXII SGD CDS 501260 502162 . - . ID=YLR172C;Name=YLR172C;Alias=DPH5 -chrXII SGD CDS 502421 504247 . + . ID=YLR173W;Name=YLR173W;Alias= -chrXII SGD CDS 504591 505829 . + . ID=YLR174W;Name=YLR174W;Alias=IDP2 -chrXII SGD CDS 506134 507585 . + . ID=YLR175W;Name=YLR175W;Alias=CBF5 -chrXII SGD CDS 507797 510232 . - . ID=YLR176C;Name=YLR176C;Alias=RFX1 -chrXII SGD CDS 511054 512940 . + . ID=YLR177W;Name=YLR177W;Alias= -chrXII SGD CDS 513162 513821 . - . ID=YLR178C;Name=YLR178C;Alias=TFS1 -chrXII SGD CDS 514108 514713 . - . ID=YLR179C;Name=YLR179C;Alias= -chrXII SGD CDS 515262 516410 . + . ID=YLR180W;Name=YLR180W;Alias=SAM1 -chrXII SGD CDS 516678 517670 . - . ID=YLR181C;Name=YLR181C;Alias=VTA1 -chrXII SGD CDS 517940 520351 . + . ID=YLR182W;Name=YLR182W;Alias=SWI6 -chrXII SGD CDS 520543 522012 . - . ID=YLR183C;Name=YLR183C;Alias=TOS4 -chrXII SGD CDS 522663 523288 . + . ID=YLR185W;Name=YLR185W;Alias=RPL37A -chrXII SGD CDS 523632 524390 . + . ID=YLR186W;Name=YLR186W;Alias=EMG1 -chrXII SGD CDS 524865 527945 . + . ID=YLR187W;Name=YLR187W;Alias=SKG3 -chrXII SGD CDS 528300 530387 . + . ID=YLR188W;Name=YLR188W;Alias=MDL1 -chrXII SGD CDS 530797 534393 . - . ID=YLR189C;Name=YLR189C;Alias=ATG26 -chrXII SGD CDS 535214 536689 . + . ID=YLR190W;Name=YLR190W;Alias=MMR1 -chrXII SGD CDS 537272 538432 . + . ID=YLR191W;Name=YLR191W;Alias=PEX13 -chrXII SGD CDS 538792 539589 . - . ID=YLR192C;Name=YLR192C;Alias=HCR1 -chrXII SGD CDS 540009 540536 . - . ID=YLR193C;Name=YLR193C;Alias=UPS1 -chrXII SGD CDS 540809 541573 . - . ID=YLR194C;Name=YLR194C;Alias=NCW2 -chrXII SGD CDS 541937 543304 . - . ID=YLR195C;Name=YLR195C;Alias=NMT1 -chrXII SGD CDS 543968 545698 . + . ID=YLR196W;Name=YLR196W;Alias=PWP1 -chrXII SGD CDS 546097 547611 . + . ID=YLR197W;Name=YLR197W;Alias=NOP56 -chrXII SGD CDS 547853 548769 . - . ID=YLR199C;Name=YLR199C;Alias=PBA1 -chrXII SGD CDS 549012 549356 . + . ID=YLR200W;Name=YLR200W;Alias=YKE2 -chrXII SGD CDS 549511 550293 . - . ID=YLR201C;Name=YLR201C;Alias=COQ9 -chrXII SGD CDS 550650 551960 . - . ID=YLR203C;Name=YLR203C;Alias=MSS51 -chrXII SGD CDS 552270 552605 . + . ID=YLR204W;Name=YLR204W;Alias=QRI5 -chrXII SGD CDS 552724 553677 . - . ID=YLR205C;Name=YLR205C;Alias=HMX1 -chrXII SGD CDS 554578 556419 . + . ID=YLR206W;Name=YLR206W;Alias=ENT2 -chrXII SGD CDS 556788 559289 . + . ID=YLR207W;Name=YLR207W;Alias=HRD3 -chrXII SGD CDS 559551 560444 . + . ID=YLR208W;Name=YLR208W;Alias=SEC13 -chrXII SGD CDS 560797 561732 . - . ID=YLR209C;Name=YLR209C;Alias=PNP1 -chrXII SGD CDS 562008 563390 . + . ID=YLR210W;Name=YLR210W;Alias=CLB4 -chrXII SGD CDS 563792 564531 . - . ID=YLR211C;Name=YLR211C;Alias=ATG38 -chrXII SGD CDS 564860 566281 . - . ID=YLR212C;Name=YLR212C;Alias=TUB4 -chrXII SGD CDS 566654 567922 . - . ID=YLR213C;Name=YLR213C;Alias=CRR1 -chrXII SGD CDS 568567 570627 . + . ID=YLR214W;Name=YLR214W;Alias=FRE1 -chrXII SGD CDS 570776 571858 . - . ID=YLR215C;Name=YLR215C;Alias=CDC123 -chrXII SGD CDS 572096 573211 . - . ID=YLR216C;Name=YLR216C;Alias=CPR6 -chrXII SGD CDS 573466 573918 . - . ID=YLR218C;Name=YLR218C;Alias=COA4 -chrXII SGD CDS 574151 576337 . + . ID=YLR219W;Name=YLR219W;Alias=MSC3 -chrXII SGD CDS 576825 577793 . + . ID=YLR220W;Name=YLR220W;Alias=CCC1 -chrXII SGD CDS 578362 579024 . - . ID=YLR221C;Name=YLR221C;Alias=RSA3 -chrXII SGD CDS 579318 581771 . - . ID=YLR222C;Name=YLR222C;Alias=UTP13 -chrXII SGD CDS 582233 585490 . - . ID=YLR223C;Name=YLR223C;Alias=IFH1 -chrXII SGD CDS 586464 587573 . + . ID=YLR224W;Name=YLR224W;Alias=UCC1 -chrXII SGD CDS 587695 588918 . - . ID=YLR225C;Name=YLR225C;Alias= -chrXII SGD CDS 589354 590541 . + . ID=YLR226W;Name=YLR226W;Alias=BUR2 -chrXII SGD CDS 590562 592043 . - . ID=YLR227C;Name=YLR227C;Alias=ADY4 -chrXII SGD CDS 600019 602463 . - . ID=YLR228C;Name=YLR228C;Alias=ECM22 -chrXII SGD CDS 604212 604787 . - . ID=YLR229C;Name=YLR229C;Alias=CDC42 -chrXII SGD CDS 605758 607119 . - . ID=YLR231C;Name=YLR231C;Alias=BNA5 -chrXII SGD CDS 607425 609524 . - . ID=YLR233C;Name=YLR233C;Alias=EST1 -chrXII SGD CDS 609783 611753 . + . ID=YLR234W;Name=YLR234W;Alias=TOP3 -chrXII SGD CDS 612367 614163 . + . ID=YLR237W;Name=YLR237W;Alias=THI7 -chrXII SGD CDS 614755 616191 . + . ID=YLR238W;Name=YLR238W;Alias=FAR10 -chrXII SGD CDS 616332 617318 . - . ID=YLR239C;Name=YLR239C;Alias=LIP2 -chrXII SGD CDS 617533 620160 . + . ID=YLR240W;Name=YLR240W;Alias=VPS34 -chrXII SGD CDS 620473 622821 . + . ID=YLR241W;Name=YLR241W;Alias=CSC1 -chrXII SGD CDS 622918 623883 . - . ID=YLR242C;Name=YLR242C;Alias=ARV1 -chrXII SGD CDS 624203 625021 . + . ID=YLR243W;Name=YLR243W;Alias=GPN3 -chrXII SGD CDS 625168 626331 . - . ID=YLR244C;Name=YLR244C;Alias=MAP1 -chrXII SGD CDS 626502 626930 . - . ID=YLR245C;Name=YLR245C;Alias=CDD1 -chrXII SGD CDS 627118 628197 . + . ID=YLR246W;Name=YLR246W;Alias=ERF2 -chrXII SGD CDS 628684 633354 . - . ID=YLR247C;Name=YLR247C;Alias=IRC20 -chrXII SGD CDS 634252 636084 . + . ID=YLR248W;Name=YLR248W;Alias=RCK2 -chrXII SGD CDS 636780 639914 . + . ID=YLR249W;Name=YLR249W;Alias=YEF3 -chrXII SGD CDS 640317 641021 . + . ID=YLR250W;Name=YLR250W;Alias=SSP120 -chrXII SGD CDS 641464 642057 . + . ID=YLR251W;Name=YLR251W;Alias=SYM1 -chrXII SGD CDS 642627 644336 . + . ID=YLR253W;Name=YLR253W;Alias=MCP2 -chrXII SGD CDS 644404 644973 . - . ID=YLR254C;Name=YLR254C;Alias=NDL1 -chrXII SGD CDS 646415 650923 . + . ID=YLR256W;Name=YLR256W;Alias=HAP1 -chrXII SGD CDS 658826 659791 . + . ID=YLR257W;Name=YLR257W;Alias= -chrXII SGD CDS 660716 662833 . + . ID=YLR258W;Name=YLR258W;Alias=GSY2 -chrXII SGD CDS 663284 665002 . - . ID=YLR259C;Name=YLR259C;Alias=HSP60 -chrXII SGD CDS 665844 667907 . + . ID=YLR260W;Name=YLR260W;Alias=LCB5 -chrXII SGD CDS 668237 668563 . - . ID=YLR261C;Name=YLR261C;Alias=VPS63 -chrXII SGD CDS 668244 668891 . - . ID=YLR262C;Name=YLR262C;Alias=YPT6 -chrXII SGD CDS 669468 669662 . - . ID=YLR262C-A;Name=YLR262C-A;Alias=TMA7 -chrXII SGD CDS 670340 672823 . + . ID=YLR263W;Name=YLR263W;Alias=RED1 -chrXII SGD CDS 673131 673334 . + . ID=YLR264W;Name=YLR264W;Alias=RPS28B -chrXII SGD CDS 673828 673944 . - . ID=YLR264C-A;Name=YLR264C-A;Alias= -chrXII SGD CDS 674427 675455 . - . ID=YLR265C;Name=YLR265C;Alias=NEJ1 -chrXII SGD CDS 675619 677724 . - . ID=YLR266C;Name=YLR266C;Alias=PDR8 -chrXII SGD CDS 678212 679924 . + . ID=YLR267W;Name=YLR267W;Alias=BOP2 -chrXII SGD CDS 680200 680844 . + . ID=YLR268W;Name=YLR268W;Alias=SEC22 -chrXII SGD CDS 681186 682238 . + . ID=YLR270W;Name=YLR270W;Alias=DCS1 -chrXII SGD CDS 682737 683561 . + . ID=YLR271W;Name=YLR271W;Alias=CMG1 -chrXII SGD CDS 683672 687202 . - . ID=YLR272C;Name=YLR272C;Alias=YCS4 -chrXII SGD CDS 689083 691029 . - . ID=YLR273C;Name=YLR273C;Alias=PIG1 -chrXII SGD CDS 691555 693882 . + . ID=YLR274W;Name=YLR274W;Alias=MCM5 -chrXII SGD CDS 694378 694800 . + . ID=YLR275W;Name=YLR275W;Alias=SMD2 -chrXII SGD CDS 695046 696830 . - . ID=YLR276C;Name=YLR276C;Alias=DBP9 -chrXII SGD CDS 697156 699495 . - . ID=YLR277C;Name=YLR277C;Alias=YSH1 -chrXII SGD CDS 699999 704024 . - . ID=YLR278C;Name=YLR278C;Alias= -chrXII SGD CDS 704493 704960 . - . ID=YLR281C;Name=YLR281C;Alias= -chrXII SGD CDS 705186 706130 . + . ID=YLR283W;Name=YLR283W;Alias= -chrXII SGD CDS 706198 707040 . - . ID=YLR284C;Name=YLR284C;Alias=ECI1 -chrXII SGD CDS 707360 708145 . + . ID=YLR285W;Name=YLR285W;Alias=NNT1 -chrXII SGD CDS 708168 708338 . - . ID=YLR285C-A;Name=YLR285C-A;Alias= -chrXII SGD CDS 708448 710136 . - . ID=YLR286C;Name=YLR286C;Alias=CTS1 -chrXII SGD CDS 710991 712058 . - . ID=YLR287C;Name=YLR287C;Alias= -chrXII SGD CDS 712537 713158 . - . ID=YLR287C-A;Name=YLR287C-A;Alias=RPS30A -chrXII SGD CDS 713480 714904 . - . ID=YLR288C;Name=YLR288C;Alias=MEC3 -chrXII SGD CDS 715089 717026 . + . ID=YLR289W;Name=YLR289W;Alias=GUF1 -chrXII SGD CDS 717145 717978 . - . ID=YLR290C;Name=YLR290C;Alias=COQ11 -chrXII SGD CDS 718317 719462 . - . ID=YLR291C;Name=YLR291C;Alias=GCD7 -chrXII SGD CDS 719789 720370 . - . ID=YLR292C;Name=YLR292C;Alias=SEC72 -chrXII SGD CDS 720771 721430 . - . ID=YLR293C;Name=YLR293C;Alias=GSP1 -chrXII SGD CDS 721999 722373 . - . ID=YLR295C;Name=YLR295C;Alias=ATP14 -chrXII SGD CDS 724044 724433 . + . ID=YLR297W;Name=YLR297W;Alias= -chrXII SGD CDS 724721 725416 . - . ID=YLR298C;Name=YLR298C;Alias=YHC1 -chrXII SGD CDS 726069 728051 . + . ID=YLR299W;Name=YLR299W;Alias=ECM38 -chrXII SGD CDS 728955 730301 . + . ID=YLR300W;Name=YLR300W;Alias=EXG1 -chrXII SGD CDS 730825 731559 . + . ID=YLR301W;Name=YLR301W;Alias=HRI1 -chrXII SGD CDS 732542 733876 . + . ID=YLR303W;Name=YLR303W;Alias=MET17 -chrXII SGD CDS 735212 737548 . - . ID=YLR304C;Name=YLR304C;Alias=ACO1 -chrXII SGD CDS 738161 743863 . - . ID=YLR305C;Name=YLR305C;Alias=STT4 -chrXII SGD CDS 744151 744851 . + . ID=YLR306W;Name=YLR306W;Alias=UBC12 -chrXII SGD CDS 745620 746525 . + . ID=YLR307W;Name=YLR307W;Alias=CDA1 -chrXII SGD CDS 746848 747111 . - . ID=YLR307C-A;Name=YLR307C-A;Alias= -chrXII SGD CDS 747937 748875 . + . ID=YLR308W;Name=YLR308W;Alias=CDA2 -chrXII SGD CDS 749034 751769 . - . ID=YLR309C;Name=YLR309C;Alias=IMH1 -chrXII SGD CDS 752224 756993 . - . ID=YLR310C;Name=YLR310C;Alias=CDC25 -chrXII SGD CDS 757637 758833 . - . ID=YLR312C;Name=YLR312C;Alias=ATG39 -chrXII SGD CDS 759480 760241 . + . ID=YLR312W-A;Name=YLR312W-A;Alias=MRPL15 -chrXII SGD CDS 760750 762342 . - . ID=YLR313C;Name=YLR313C;Alias=SPH1 -chrXII SGD CDS 762575 764137 . - . ID=YLR314C;Name=YLR314C;Alias=CDC3 -chrXII SGD CDS 764808 765269 . + . ID=YLR315W;Name=YLR315W;Alias=NKP2 -chrXII SGD CDS 765266 766358 . - . ID=YLR316C;Name=YLR316C;Alias=TAD3 -chrXII SGD CDS 766542 769196 . + . ID=YLR318W;Name=YLR318W;Alias=EST2 -chrXII SGD CDS 769318 771684 . - . ID=YLR319C;Name=YLR319C;Alias=BUD6 -chrXII SGD CDS 771940 776304 . + . ID=YLR320W;Name=YLR320W;Alias=MMS22 -chrXII SGD CDS 776584 777864 . - . ID=YLR321C;Name=YLR321C;Alias=SFH1 -chrXII SGD CDS 778173 778952 . - . ID=YLR323C;Name=YLR323C;Alias=CWC24 -chrXII SGD CDS 779215 780786 . + . ID=YLR324W;Name=YLR324W;Alias=PEX30 -chrXII SGD CDS 781143 781379 . - . ID=YLR325C;Name=YLR325C;Alias=RPL38 -chrXII SGD CDS 782174 782896 . + . ID=YLR326W;Name=YLR326W;Alias= -chrXII SGD CDS 783127 783387 . - . ID=YLR327C;Name=YLR327C;Alias=TMA10 -chrXII SGD CDS 784913 786118 . + . ID=YLR328W;Name=YLR328W;Alias=NMA1 -chrXII SGD CDS 786442 787333 . + . ID=YLR329W;Name=YLR329W;Alias=REC102 -chrXII SGD CDS 787664 789679 . + . ID=YLR330W;Name=YLR330W;Alias=CHS5 -chrXII SGD CDS 790676 791806 . + . ID=YLR332W;Name=YLR332W;Alias=MID2 -chrXII SGD CDS 795573 796335 . - . ID=YLR333C;Name=YLR333C;Alias=RPS25B -chrXII SGD CDS 797430 799592 . + . ID=YLR335W;Name=YLR335W;Alias=NUP2 -chrXII SGD CDS 799697 802396 . - . ID=YLR336C;Name=YLR336C;Alias=SGD1 -chrXII SGD CDS 802653 805106 . - . ID=YLR337C;Name=YLR337C;Alias=VRP1 -chrXII SGD CDS 805887 806825 . + . ID=YLR340W;Name=YLR340W;Alias=RPP0 -chrXII SGD CDS 807385 808818 . + . ID=YLR341W;Name=YLR341W;Alias=SPO77 -chrXII SGD CDS 809997 815627 . + . ID=YLR342W;Name=YLR342W;Alias=FKS1 -chrXII SGD CDS 815810 815983 . + . ID=YLR342W-A;Name=YLR342W-A;Alias= -chrXII SGD CDS 816094 817761 . + . ID=YLR343W;Name=YLR343W;Alias=GAS2 -chrXII SGD CDS 819312 820142 . + . ID=YLR344W;Name=YLR344W;Alias=RPL26A -chrXII SGD CDS 820511 822040 . + . ID=YLR345W;Name=YLR345W;Alias= -chrXII SGD CDS 822287 822592 . - . ID=YLR346C;Name=YLR346C;Alias=CIS1 -chrXII SGD CDS 823828 826413 . - . ID=YLR347C;Name=YLR347C;Alias=KAP95 -chrXII SGD CDS 826977 827873 . - . ID=YLR348C;Name=YLR348C;Alias=DIC1 -chrXII SGD CDS 828730 829380 . + . ID=YLR350W;Name=YLR350W;Alias=ORM2 -chrXII SGD CDS 829489 830364 . - . ID=YLR351C;Name=YLR351C;Alias=NIT3 -chrXII SGD CDS 831116 833539 . + . ID=YLR352W;Name=YLR352W;Alias= -chrXII SGD CDS 834352 836163 . + . ID=YLR353W;Name=YLR353W;Alias=BUD8 -chrXII SGD CDS 836350 837357 . - . ID=YLR354C;Name=YLR354C;Alias=TAL1 -chrXII SGD CDS 838066 839253 . - . ID=YLR355C;Name=YLR355C;Alias=ILV5 -chrXII SGD CDS 840321 840914 . + . ID=YLR356W;Name=YLR356W;Alias=ATG33 -chrXII SGD CDS 841331 844000 . + . ID=YLR357W;Name=YLR357W;Alias=RSC2 -chrXII SGD CDS 843487 844050 . - . ID=YLR358C;Name=YLR358C;Alias= -chrXII SGD CDS 844282 845730 . + . ID=YLR359W;Name=YLR359W;Alias=ADE13 -chrXII SGD CDS 846103 847422 . + . ID=YLR360W;Name=YLR360W;Alias=VPS38 -chrXII SGD CDS 847388 849124 . - . ID=YLR361C;Name=YLR361C;Alias=DCR2 -chrXII SGD CDS 849383 849679 . - . ID=YLR361C-A;Name=YLR361C-A;Alias= -chrXII SGD CDS 849866 852019 . + . ID=YLR362W;Name=YLR362W;Alias=STE11 -chrXII SGD CDS 852495 853151 . - . ID=YLR363C;Name=YLR363C;Alias=NMD4 -chrXII SGD CDS 853461 853718 . + . ID=YLR363W-A;Name=YLR363W-A;Alias= -chrXII SGD CDS 854062 854391 . + . ID=YLR364W;Name=YLR364W;Alias=GRX8 -chrXII SGD CDS 855878 857317 . + . ID=YLR367W;Name=YLR367W;Alias=RPS22B -chrXII SGD CDS 857540 859336 . + . ID=YLR368W;Name=YLR368W;Alias=MDM30 -chrXII SGD CDS 859552 861525 . + . ID=YLR369W;Name=YLR369W;Alias=SSQ1 -chrXII SGD CDS 861718 862254 . - . ID=YLR370C;Name=YLR370C;Alias=ARC18 -chrXII SGD CDS 862714 866784 . + . ID=YLR371W;Name=YLR371W;Alias=ROM2 -chrXII SGD CDS 867354 868391 . + . ID=YLR372W;Name=YLR372W;Alias=ELO3 -chrXII SGD CDS 868662 871367 . - . ID=YLR373C;Name=YLR373C;Alias=VID22 -chrXII SGD CDS 871697 872728 . + . ID=YLR375W;Name=YLR375W;Alias=STP3 -chrXII SGD CDS 872826 873554 . - . ID=YLR376C;Name=YLR376C;Alias=PSY3 -chrXII SGD CDS 873746 874792 . - . ID=YLR377C;Name=YLR377C;Alias=FBP1 -chrXII SGD CDS 875736 877178 . - . ID=YLR378C;Name=YLR378C;Alias=SEC61 -chrXII SGD CDS 878282 879508 . + . ID=YLR380W;Name=YLR380W;Alias=CSR1 -chrXII SGD CDS 879723 881924 . + . ID=YLR381W;Name=YLR381W;Alias=CTF3 -chrXII SGD CDS 882067 884751 . - . ID=YLR382C;Name=YLR382C;Alias=NAM2 -chrXII SGD CDS 885288 888632 . + . ID=YLR383W;Name=YLR383W;Alias=SMC6 -chrXII SGD CDS 888851 892900 . - . ID=YLR384C;Name=YLR384C;Alias=IKI3 -chrXII SGD CDS 892992 893390 . - . ID=YLR385C;Name=YLR385C;Alias=SWC7 -chrXII SGD CDS 893628 896270 . + . ID=YLR386W;Name=YLR386W;Alias=VAC14 -chrXII SGD CDS 896374 897672 . - . ID=YLR387C;Name=YLR387C;Alias=REH1 -chrXII SGD CDS 898158 898821 . + . ID=YLR388W;Name=YLR388W;Alias=RPS29A -chrXII SGD CDS 899577 902660 . - . ID=YLR389C;Name=YLR389C;Alias=STE23 -chrXII SGD CDS 903066 903404 . + . ID=YLR390W;Name=YLR390W;Alias=ECM19 -chrXII SGD CDS 903724 904440 . + . ID=YLR390W-A;Name=YLR390W-A;Alias=CCW14 -chrXII SGD CDS 904749 906305 . - . ID=YLR392C;Name=YLR392C;Alias=ART10 -chrXII SGD CDS 907079 907918 . + . ID=YLR393W;Name=YLR393W;Alias=ATP10 -chrXII SGD CDS 907950 909398 . + . ID=YLR394W;Name=YLR394W;Alias=CST9 -chrXII SGD CDS 909729 909965 . - . ID=YLR395C;Name=YLR395C;Alias=COX8 -chrXII SGD CDS 910235 912310 . - . ID=YLR396C;Name=YLR396C;Alias=VPS33 -chrXII SGD CDS 912550 914892 . - . ID=YLR397C;Name=YLR397C;Alias=AFG2 -chrXII SGD CDS 915156 919019 . - . ID=YLR398C;Name=YLR398C;Alias=SKI2 -chrXII SGD CDS 919536 921596 . - . ID=YLR399C;Name=YLR399C;Alias=BDF1 -chrXII SGD CDS 922442 924448 . - . ID=YLR401C;Name=YLR401C;Alias=DUS3 -chrXII SGD CDS 925568 927619 . + . ID=YLR403W;Name=YLR403W;Alias=SFP1 -chrXII SGD CDS 928743 929600 . + . ID=YLR404W;Name=YLR404W;Alias=SEI1 -chrXII SGD CDS 929789 930892 . + . ID=YLR405W;Name=YLR405W;Alias=DUS4 -chrXII SGD CDS 931065 931755 . - . ID=YLR406C;Name=YLR406C;Alias=RPL31B -chrXII SGD CDS 932206 932355 . - . ID=YLR406C-A;Name=YLR406C-A;Alias= -chrXII SGD CDS 932967 933653 . + . ID=YLR407W;Name=YLR407W;Alias= -chrXII SGD CDS 933885 934253 . - . ID=YLR408C;Name=YLR408C;Alias=BLS1 -chrXII SGD CDS 934414 937233 . - . ID=YLR409C;Name=YLR409C;Alias=UTP21 -chrXII SGD CDS 937541 940981 . + . ID=YLR410W;Name=YLR410W;Alias=VIP1 -chrXII SGD CDS 947253 947978 . + . ID=YLR411W;Name=YLR411W;Alias=CTR3 -chrXII SGD CDS 948368 949192 . + . ID=YLR412W;Name=YLR412W;Alias=BER1 -chrXII SGD CDS 950267 950473 . - . ID=YLR412C-A;Name=YLR412C-A;Alias= -chrXII SGD CDS 951156 953183 . + . ID=YLR413W;Name=YLR413W;Alias=INA1 -chrXII SGD CDS 953353 954144 . - . ID=YLR414C;Name=YLR414C;Alias=PUN1 -chrXII SGD CDS 954259 954597 . - . ID=YLR415C;Name=YLR415C;Alias= -chrXII SGD CDS 955010 956710 . + . ID=YLR417W;Name=YLR417W;Alias=VPS36 -chrXII SGD CDS 956914 958095 . - . ID=YLR418C;Name=YLR418C;Alias=CDC73 -chrXII SGD CDS 958428 962735 . + . ID=YLR419W;Name=YLR419W;Alias= -chrXII SGD CDS 963785 964879 . + . ID=YLR420W;Name=YLR420W;Alias=URA4 -chrXII SGD CDS 965090 965560 . - . ID=YLR421C;Name=YLR421C;Alias=RPN13 -chrXII SGD CDS 965897 971695 . + . ID=YLR422W;Name=YLR422W;Alias=DCK1 -chrXII SGD CDS 971917 973170 . - . ID=YLR423C;Name=YLR423C;Alias=ATG17 -chrXII SGD CDS 973395 975521 . + . ID=YLR424W;Name=YLR424W;Alias=SPP382 -chrXII SGD CDS 982894 986817 . + . ID=YLR425W;Name=YLR425W;Alias=TUS1 -chrXII SGD CDS 987062 988113 . + . ID=YLR426W;Name=YLR426W;Alias=TDA5 -chrXII SGD CDS 988428 990440 . + . ID=YLR427W;Name=YLR427W;Alias=MAG2 -chrXII SGD CDS 990777 992732 . + . ID=YLR429W;Name=YLR429W;Alias=CRN1 -chrXII SGD CDS 993434 1000129 . + . ID=YLR430W;Name=YLR430W;Alias=SEN1 -chrXII SGD CDS 1000342 1001703 . - . ID=YLR431C;Name=YLR431C;Alias=ATG23 -chrXII SGD CDS 1002557 1004128 . + . ID=YLR432W;Name=YLR432W;Alias=IMD3 -chrXII SGD CDS 1004347 1006008 . - . ID=YLR433C;Name=YLR433C;Alias=CNA1 -chrXII SGD CDS 1006378 1006995 . + . ID=YLR435W;Name=YLR435W;Alias=TSR2 -chrXII SGD CDS 1007421 1011245 . - . ID=YLR436C;Name=YLR436C;Alias=ECM30 -chrXII SGD CDS 1011622 1012023 . - . ID=YLR437C;Name=YLR437C;Alias=DIF1 -chrXII SGD CDS 1012501 1013775 . + . ID=YLR438W;Name=YLR438W;Alias=CAR2 -chrXII SGD CDS 1013909 1014178 . - . ID=YLR438C-A;Name=YLR438C-A;Alias=LSM3 -chrXII SGD CDS 1014491 1015450 . + . ID=YLR439W;Name=YLR439W;Alias=MRPL4 -chrXII SGD CDS 1015568 1017697 . - . ID=YLR440C;Name=YLR440C;Alias=SEC39 -chrXII SGD CDS 1018141 1018908 . - . ID=YLR441C;Name=YLR441C;Alias=RPS1A -chrXII SGD CDS 1019315 1022251 . - . ID=YLR442C;Name=YLR442C;Alias=SIR3 -chrXII SGD CDS 1022625 1023971 . + . ID=YLR443W;Name=YLR443W;Alias=ECM7 -chrXII SGD CDS 1024189 1024837 . + . ID=YLR445W;Name=YLR445W;Alias=GMC2 -chrXII SGD CDS 1025214 1026515 . + . ID=YLR446W;Name=YLR446W;Alias= -chrXII SGD CDS 1026856 1027893 . - . ID=YLR447C;Name=YLR447C;Alias=VMA6 -chrXII SGD CDS 1028854 1029768 . + . ID=YLR448W;Name=YLR448W;Alias=RPL6B -chrXII SGD CDS 1030834 1032012 . + . ID=YLR449W;Name=YLR449W;Alias=FPR4 -chrXII SGD CDS 1032627 1035764 . + . ID=YLR450W;Name=YLR450W;Alias=HMG2 -chrXII SGD CDS 1036093 1038753 . + . ID=YLR451W;Name=YLR451W;Alias=LEU3 -chrXII SGD CDS 1039270 1041366 . - . ID=YLR452C;Name=YLR452C;Alias=SST2 -chrXII SGD CDS 1041799 1042986 . - . ID=YLR453C;Name=YLR453C;Alias=RIF2 -chrXII SGD CDS 1043998 1051884 . + . ID=YLR454W;Name=YLR454W;Alias=FMP27 -chrXII SGD CDS 1053629 1054543 . + . ID=YLR455W;Name=YLR455W;Alias=PDP3 -chrXII SGD CDS 1055070 1055684 . + . ID=YLR456W;Name=YLR456W;Alias= -chrXII SGD CDS 1055812 1056771 . - . ID=YLR457C;Name=YLR457C;Alias=NBP1 -chrXII SGD CDS 1057334 1058518 . + . ID=YLR459W;Name=YLR459W;Alias=GAB1 -chrXII SGD CDS 1059757 1060887 . - . ID=YLR460C;Name=YLR460C;Alias= -chrXII SGD CDS 1062919 1063281 . + . ID=YLR461W;Name=YLR461W;Alias=PAU4 -chrXII SGD CDS 1065956 1066564 . + . ID=YLR462W;Name=YLR462W;Alias= -chrXII SGD CDS 1066572 1067501 . + . ID=YLR464W;Name=YLR464W;Alias= -chrXII SGD CDS 1067087 1071235 . + . ID=YLR466W;Name=YLR466W;Alias=YRF1-4 -chrXII SGD CDS 1072508 1077898 . + . ID=YLR467W;Name=YLR467W;Alias=YRF1-5 -chrXIII SGD CDS 461 4684 . - . ID=YML133C;Name=YML133C;Alias= -chrXIII SGD CDS 7244 8383 . + . ID=YML132W;Name=YML132W;Alias=COS3 -chrXIII SGD CDS 10198 11295 . + . ID=YML131W;Name=YML131W;Alias= -chrXIII SGD CDS 11483 13174 . - . ID=YML130C;Name=YML130C;Alias=ERO1 -chrXIII SGD CDS 14541 14753 . - . ID=YML129C;Name=YML129C;Alias=COX14 -chrXIII SGD CDS 15135 16676 . - . ID=YML128C;Name=YML128C;Alias=MSC1 -chrXIII SGD CDS 17064 18809 . + . ID=YML127W;Name=YML127W;Alias=RSC9 -chrXIII SGD CDS 19060 20535 . - . ID=YML126C;Name=YML126C;Alias=ERG13 -chrXIII SGD CDS 20761 21699 . - . ID=YML125C;Name=YML125C;Alias=PGA3 -chrXIII SGD CDS 22048 23683 . - . ID=YML124C;Name=YML124C;Alias=TUB3 -chrXIII SGD CDS 24037 25800 . - . ID=YML123C;Name=YML123C;Alias=PHO84 -chrXIII SGD CDS 26930 27862 . + . ID=YML121W;Name=YML121W;Alias=GTR1 -chrXIII SGD CDS 28266 29807 . - . ID=YML120C;Name=YML120C;Alias=NDI1 -chrXIII SGD CDS 30611 31684 . + . ID=YML119W;Name=YML119W;Alias= -chrXIII SGD CDS 32334 33851 . + . ID=YML118W;Name=YML118W;Alias=NGL3 -chrXIII SGD CDS 34243 37647 . + . ID=YML117W;Name=YML117W;Alias=NAB6 -chrXIII SGD CDS 38196 39824 . + . ID=YML116W;Name=YML116W;Alias=ATR1 -chrXIII SGD CDS 40187 41794 . - . ID=YML115C;Name=YML115C;Alias=VAN1 -chrXIII SGD CDS 42043 43575 . - . ID=YML114C;Name=YML114C;Alias=TAF8 -chrXIII SGD CDS 44045 44791 . + . ID=YML113W;Name=YML113W;Alias=DAT1 -chrXIII SGD CDS 45063 45953 . + . ID=YML112W;Name=YML112W;Alias=CTK3 -chrXIII SGD CDS 46942 49704 . + . ID=YML111W;Name=YML111W;Alias=BUL2 -chrXIII SGD CDS 50031 50954 . - . ID=YML110C;Name=YML110C;Alias=COQ5 -chrXIII SGD CDS 51640 54468 . + . ID=YML109W;Name=YML109W;Alias=ZDS2 -chrXIII SGD CDS 54793 55110 . + . ID=YML108W;Name=YML108W;Alias= -chrXIII SGD CDS 55265 56269 . - . ID=YML107C;Name=YML107C;Alias=PML39 -chrXIII SGD CDS 56773 57453 . + . ID=YML106W;Name=YML106W;Alias=URA5 -chrXIII SGD CDS 57866 58687 . - . ID=YML105C;Name=YML105C;Alias=SEC65 -chrXIII SGD CDS 58939 62322 . - . ID=YML104C;Name=YML104C;Alias=MDM1 -chrXIII SGD CDS 62582 67549 . - . ID=YML103C;Name=YML103C;Alias=NUP188 -chrXIII SGD CDS 68294 69700 . + . ID=YML102W;Name=YML102W;Alias=CAC2 -chrXIII SGD CDS 69735 70088 . - . ID=YML101C;Name=YML101C;Alias=CUE4 -chrXIII SGD CDS 70138 70311 . + . ID=YML100W-A;Name=YML100W-A;Alias= -chrXIII SGD CDS 70624 73920 . + . ID=YML100W;Name=YML100W;Alias=TSL1 -chrXIII SGD CDS 74398 77040 . - . ID=YML099C;Name=YML099C;Alias=ARG81 -chrXIII SGD CDS 77267 77770 . + . ID=YML098W;Name=YML098W;Alias=TAF13 -chrXIII SGD CDS 78335 79690 . - . ID=YML097C;Name=YML097C;Alias=VPS9 -chrXIII SGD CDS 79909 81486 . + . ID=YML096W;Name=YML096W;Alias= -chrXIII SGD CDS 81481 82113 . - . ID=YML095C;Name=YML095C;Alias=RAD10 -chrXIII SGD CDS 82275 82849 . + . ID=YML094W;Name=YML094W;Alias=GIM5 -chrXIII SGD CDS 83090 85789 . + . ID=YML093W;Name=YML093W;Alias=UTP14 -chrXIII SGD CDS 85987 86739 . - . ID=YML092C;Name=YML092C;Alias=PRE8 -chrXIII SGD CDS 87123 90731 . - . ID=YML091C;Name=YML091C;Alias=RPM2 -chrXIII SGD CDS 92235 94241 . + . ID=YML088W;Name=YML088W;Alias=UFO1 -chrXIII SGD CDS 94431 95369 . - . ID=YML087C;Name=YML087C;Alias=AIM33 -chrXIII SGD CDS 95791 97371 . - . ID=YML086C;Name=YML086C;Alias=ALO1 -chrXIII SGD CDS 97941 99400 . - . ID=YML085C;Name=YML085C;Alias=TUB1 -chrXIII SGD CDS 99794 101050 . - . ID=YML083C;Name=YML083C;Alias= -chrXIII SGD CDS 101862 103811 . + . ID=YML082W;Name=YML082W;Alias= -chrXIII SGD CDS 103983 104162 . - . ID=YML081C-A;Name=YML081C-A;Alias=ATP18 -chrXIII SGD CDS 104777 108532 . + . ID=YML081W;Name=YML081W;Alias=TDA9 -chrXIII SGD CDS 108806 110077 . + . ID=YML080W;Name=YML080W;Alias=DUS1 -chrXIII SGD CDS 110247 110852 . + . ID=YML079W;Name=YML079W;Alias= -chrXIII SGD CDS 111002 111550 . + . ID=YML078W;Name=YML078W;Alias=CPR3 -chrXIII SGD CDS 111865 112344 . + . ID=YML077W;Name=YML077W;Alias=BET5 -chrXIII SGD CDS 112513 115347 . - . ID=YML076C;Name=YML076C;Alias=WAR1 -chrXIII SGD CDS 115734 118898 . - . ID=YML075C;Name=YML075C;Alias=HMG1 -chrXIII SGD CDS 120089 121324 . - . ID=YML074C;Name=YML074C;Alias=FPR3 -chrXIII SGD CDS 123227 124172 . - . ID=YML073C;Name=YML073C;Alias=RPL6A -chrXIII SGD CDS 124730 129367 . - . ID=YML072C;Name=YML072C;Alias=TCB3 -chrXIII SGD CDS 129749 131572 . - . ID=YML071C;Name=YML071C;Alias=COG8 -chrXIII SGD CDS 133475 135229 . + . ID=YML070W;Name=YML070W;Alias=DAK1 -chrXIII SGD CDS 135500 137158 . + . ID=YML069W;Name=YML069W;Alias=POB3 -chrXIII SGD CDS 137550 138944 . + . ID=YML068W;Name=YML068W;Alias=ITT1 -chrXIII SGD CDS 139063 140214 . - . ID=YML067C;Name=YML067C;Alias=ERV41 -chrXIII SGD CDS 140424 141533 . - . ID=YML066C;Name=YML066C;Alias=SMA2 -chrXIII SGD CDS 142210 144954 . + . ID=YML065W;Name=YML065W;Alias=ORC1 -chrXIII SGD CDS 145139 145876 . - . ID=YML064C;Name=YML064C;Alias=TEM1 -chrXIII SGD CDS 146482 147249 . + . ID=YML063W;Name=YML063W;Alias=RPS1B -chrXIII SGD CDS 147505 148683 . - . ID=YML062C;Name=YML062C;Alias=MFT1 -chrXIII SGD CDS 148953 151532 . - . ID=YML061C;Name=YML061C;Alias=PIF1 -chrXIII SGD CDS 151871 153001 . + . ID=YML060W;Name=YML060W;Alias=OGG1 -chrXIII SGD CDS 153219 158258 . - . ID=YML059C;Name=YML059C;Alias=NTE1 -chrXIII SGD CDS 158760 158966 . + . ID=YML058W-A;Name=YML058W-A;Alias=HUG1 -chrXIII SGD CDS 159383 159697 . + . ID=YML058W;Name=YML058W;Alias=SML1 -chrXIII SGD CDS 160180 161994 . + . ID=YML057W;Name=YML057W;Alias=CMP2 -chrXIII SGD CDS 162194 164176 . - . ID=YML056C;Name=YML056C;Alias=IMD4 -chrXIII SGD CDS 164790 165326 . + . ID=YML055W;Name=YML055W;Alias=SPC2 -chrXIII SGD CDS 165533 167308 . - . ID=YML054C;Name=YML054C;Alias=CYB2 -chrXIII SGD CDS 167623 167781 . - . ID=YML054C-A;Name=YML054C-A;Alias= -chrXIII SGD CDS 169116 169754 . - . ID=YML053C;Name=YML053C;Alias= -chrXIII SGD CDS 170402 171310 . + . ID=YML052W;Name=YML052W;Alias=SUR7 -chrXIII SGD CDS 171594 172901 . + . ID=YML051W;Name=YML051W;Alias=GAL80 -chrXIII SGD CDS 173139 174074 . + . ID=YML050W;Name=YML050W;Alias=AIM32 -chrXIII SGD CDS 174220 178305 . - . ID=YML049C;Name=YML049C;Alias=RSE1 -chrXIII SGD CDS 178426 179637 . + . ID=YML048W;Name=YML048W;Alias=GSF2 -chrXIII SGD CDS 180017 181075 . - . ID=YML047C;Name=YML047C;Alias=PRM6 -chrXIII SGD CDS 181474 183363 . + . ID=YML046W;Name=YML046W;Alias=PRP39 -chrXIII SGD CDS 190244 191767 . - . ID=YML043C;Name=YML043C;Alias=RRN11 -chrXIII SGD CDS 192788 194800 . + . ID=YML042W;Name=YML042W;Alias=CAT2 -chrXIII SGD CDS 194913 195755 . - . ID=YML041C;Name=YML041C;Alias=VPS71 -chrXIII SGD CDS 202775 204103 . - . ID=YML038C;Name=YML038C;Alias=YMD8 -chrXIII SGD CDS 204386 205408 . - . ID=YML037C;Name=YML037C;Alias= -chrXIII SGD CDS 205642 206293 . + . ID=YML036W;Name=YML036W;Alias=CGI121 -chrXIII SGD CDS 206428 208860 . - . ID=YML035C;Name=YML035C;Alias=AMD1 -chrXIII SGD CDS 209525 212155 . + . ID=YML034W;Name=YML034W;Alias=SRC1 -chrXIII SGD CDS 212515 213930 . - . ID=YML032C;Name=YML032C;Alias=RAD52 -chrXIII SGD CDS 214189 216156 . + . ID=YML031W;Name=YML031W;Alias=NDC1 -chrXIII SGD CDS 216435 216914 . + . ID=YML030W;Name=YML030W;Alias=RCF1 -chrXIII SGD CDS 217362 219878 . + . ID=YML029W;Name=YML029W;Alias=USA1 -chrXIII SGD CDS 220138 220728 . + . ID=YML028W;Name=YML028W;Alias=TSA1 -chrXIII SGD CDS 221406 222563 . + . ID=YML027W;Name=YML027W;Alias=YOX1 -chrXIII SGD CDS 222987 223828 . - . ID=YML026C;Name=YML026C;Alias=RPS18B -chrXIII SGD CDS 224406 225365 . - . ID=YML025C;Name=YML025C;Alias=YML6 -chrXIII SGD CDS 225889 226697 . + . ID=YML024W;Name=YML024W;Alias=RPS17A -chrXIII SGD CDS 226994 228664 . - . ID=YML023C;Name=YML023C;Alias=NSE5 -chrXIII SGD CDS 228937 229500 . + . ID=YML022W;Name=YML022W;Alias=APT1 -chrXIII SGD CDS 229734 230813 . - . ID=YML021C;Name=YML021C;Alias=UNG1 -chrXIII SGD CDS 231149 233143 . + . ID=YML020W;Name=YML020W;Alias= -chrXIII SGD CDS 233457 234455 . + . ID=YML019W;Name=YML019W;Alias=OST6 -chrXIII SGD CDS 234771 235952 . - . ID=YML018C;Name=YML018C;Alias= -chrXIII SGD CDS 236588 238731 . + . ID=YML017W;Name=YML017W;Alias=PSP2 -chrXIII SGD CDS 239458 241536 . - . ID=YML016C;Name=YML016C;Alias=PPZ1 -chrXIII SGD CDS 241989 243029 . - . ID=YML015C;Name=YML015C;Alias=TAF11 -chrXIII SGD CDS 243225 244064 . + . ID=YML014W;Name=YML014W;Alias=TRM9 -chrXIII SGD CDS 244149 245903 . + . ID=YML013W;Name=YML013W;Alias=UBX2 -chrXIII SGD CDS 246116 246751 . + . ID=YML012W;Name=YML012W;Alias=ERV25 -chrXIII SGD CDS 246895 247428 . - . ID=YML011C;Name=YML011C;Alias=RAD33 -chrXIII SGD CDS 247677 250868 . + . ID=YML010W;Name=YML010W;Alias=SPT5 -chrXIII SGD CDS 251304 251516 . - . ID=YML009C;Name=YML009C;Alias=MRPL39 -chrXIII SGD CDS 251839 252990 . - . ID=YML008C;Name=YML008C;Alias=ERG6 -chrXIII SGD CDS 253162 253272 . - . ID=YML007C-A;Name=YML007C-A;Alias= -chrXIII SGD CDS 253848 255800 . + . ID=YML007W;Name=YML007W;Alias=YAP1 -chrXIII SGD CDS 256092 258416 . - . ID=YML006C;Name=YML006C;Alias=GIS4 -chrXIII SGD CDS 260221 261609 . + . ID=YML005W;Name=YML005W;Alias=TRM12 -chrXIII SGD CDS 261705 262685 . - . ID=YML004C;Name=YML004C;Alias=GLO1 -chrXIII SGD CDS 263483 264355 . + . ID=YML003W;Name=YML003W;Alias= -chrXIII SGD CDS 264541 266754 . + . ID=YML002W;Name=YML002W;Alias= -chrXIII SGD CDS 267174 267800 . + . ID=YML001W;Name=YML001W;Alias=YPT7 -chrXIII SGD CDS 269019 271136 . - . ID=YMR001C;Name=YMR001C;Alias=CDC5 -chrXIII SGD CDS 271347 271577 . - . ID=YMR001C-A;Name=YMR001C-A;Alias= -chrXIII SGD CDS 272193 272663 . + . ID=YMR002W;Name=YMR002W;Alias=MIX17 -chrXIII SGD CDS 273118 273714 . + . ID=YMR003W;Name=YMR003W;Alias=AIM34 -chrXIII SGD CDS 274017 275552 . + . ID=YMR004W;Name=YMR004W;Alias=MVP1 -chrXIII SGD CDS 276045 277211 . + . ID=YMR005W;Name=YMR005W;Alias=TAF4 -chrXIII SGD CDS 277561 279681 . - . ID=YMR006C;Name=YMR006C;Alias=PLB2 -chrXIII SGD CDS 280590 282584 . - . ID=YMR008C;Name=YMR008C;Alias=PLB1 -chrXIII SGD CDS 284102 284641 . + . ID=YMR009W;Name=YMR009W;Alias=ADI1 -chrXIII SGD CDS 285100 286317 . + . ID=YMR010W;Name=YMR010W;Alias=ANY1 -chrXIII SGD CDS 288079 289704 . + . ID=YMR011W;Name=YMR011W;Alias=HXT2 -chrXIII SGD CDS 291134 294967 . + . ID=YMR012W;Name=YMR012W;Alias=CLU1 -chrXIII SGD CDS 295179 296738 . - . ID=YMR013C;Name=YMR013C;Alias=SEC59 -chrXIII SGD CDS 298868 300427 . + . ID=YMR014W;Name=YMR014W;Alias=BUD22 -chrXIII SGD CDS 300869 302485 . - . ID=YMR015C;Name=YMR015C;Alias=ERG5 -chrXIII SGD CDS 303236 305593 . - . ID=YMR016C;Name=YMR016C;Alias=SOK2 -chrXIII SGD CDS 307489 308682 . + . ID=YMR017W;Name=YMR017W;Alias=SPO20 -chrXIII SGD CDS 310208 311752 . + . ID=YMR018W;Name=YMR018W;Alias=PEX9 -chrXIII SGD CDS 312156 315005 . + . ID=YMR019W;Name=YMR019W;Alias=STB4 -chrXIII SGD CDS 315377 316903 . + . ID=YMR020W;Name=YMR020W;Alias=FMS1 -chrXIII SGD CDS 317165 318418 . - . ID=YMR021C;Name=YMR021C;Alias=MAC1 -chrXIII SGD CDS 318680 319177 . + . ID=YMR022W;Name=YMR022W;Alias=UBC7 -chrXIII SGD CDS 319437 321017 . - . ID=YMR023C;Name=YMR023C;Alias=MSS1 -chrXIII SGD CDS 321875 323047 . + . ID=YMR024W;Name=YMR024W;Alias=MRPL3 -chrXIII SGD CDS 323300 324187 . + . ID=YMR025W;Name=YMR025W;Alias=CSI1 -chrXIII SGD CDS 324236 325435 . - . ID=YMR026C;Name=YMR026C;Alias=PEX12 -chrXIII SGD CDS 325877 327289 . + . ID=YMR027W;Name=YMR027W;Alias= -chrXIII SGD CDS 327482 328582 . + . ID=YMR028W;Name=YMR028W;Alias=TAP42 -chrXIII SGD CDS 328660 330231 . - . ID=YMR029C;Name=YMR029C;Alias=FAR8 -chrXIII SGD CDS 330793 331923 . + . ID=YMR030W;Name=YMR030W;Alias=RSF1 -chrXIII SGD CDS 332212 334743 . - . ID=YMR031C;Name=YMR031C;Alias=EIS1 -chrXIII SGD CDS 335298 337307 . + . ID=YMR032W;Name=YMR032W;Alias=HOF1 -chrXIII SGD CDS 337313 337603 . + . ID=YMR030W-A;Name=YMR030W-A;Alias= -chrXIII SGD CDS 337788 339277 . + . ID=YMR033W;Name=YMR033W;Alias=ARP9 -chrXIII SGD CDS 339418 340722 . - . ID=YMR034C;Name=YMR034C;Alias=RCH1 -chrXIII SGD CDS 341142 341675 . + . ID=YMR035W;Name=YMR035W;Alias=IMP2 -chrXIII SGD CDS 341856 343520 . - . ID=YMR036C;Name=YMR036C;Alias=MIH1 -chrXIII SGD CDS 344403 346517 . - . ID=YMR037C;Name=YMR037C;Alias=MSN2 -chrXIII SGD CDS 347511 348260 . - . ID=YMR038C;Name=YMR038C;Alias=CCS1 -chrXIII SGD CDS 348644 349522 . - . ID=YMR039C;Name=YMR039C;Alias=SUB1 -chrXIII SGD CDS 350381 350863 . + . ID=YMR040W;Name=YMR040W;Alias=YET2 -chrXIII SGD CDS 350966 351973 . - . ID=YMR041C;Name=YMR041C;Alias=ARA2 -chrXIII SGD CDS 352603 353136 . + . ID=YMR042W;Name=YMR042W;Alias=ARG80 -chrXIII SGD CDS 353871 354731 . + . ID=YMR043W;Name=YMR043W;Alias=MCM1 -chrXIII SGD CDS 355384 356811 . + . ID=YMR044W;Name=YMR044W;Alias=IOC4 -chrXIII SGD CDS 363364 366705 . - . ID=YMR047C;Name=YMR047C;Alias=NUP116 -chrXIII SGD CDS 366981 367934 . + . ID=YMR048W;Name=YMR048W;Alias=CSM3 -chrXIII SGD CDS 368094 370517 . - . ID=YMR049C;Name=YMR049C;Alias=ERB1 -chrXIII SGD CDS 379586 380200 . + . ID=YMR052W;Name=YMR052W;Alias=FAR3 -chrXIII SGD CDS 380346 382898 . - . ID=YMR053C;Name=YMR053C;Alias=STB2 -chrXIII SGD CDS 383303 385975 . + . ID=YMR054W;Name=YMR054W;Alias=STV1 -chrXIII SGD CDS 386101 387021 . - . ID=YMR055C;Name=YMR055C;Alias=BUB2 -chrXIII SGD CDS 387315 388244 . - . ID=YMR056C;Name=YMR056C;Alias=AAC1 -chrXIII SGD CDS 388822 390732 . + . ID=YMR058W;Name=YMR058W;Alias=FET3 -chrXIII SGD CDS 391099 391485 . + . ID=YMR059W;Name=YMR059W;Alias=SEN15 -chrXIII SGD CDS 391532 392515 . - . ID=YMR060C;Name=YMR060C;Alias=SAM37 -chrXIII SGD CDS 392755 394788 . + . ID=YMR061W;Name=YMR061W;Alias=RNA14 -chrXIII SGD CDS 395054 396379 . - . ID=YMR062C;Name=YMR062C;Alias=ARG7 -chrXIII SGD CDS 397077 397796 . + . ID=YMR063W;Name=YMR063W;Alias=RIM9 -chrXIII SGD CDS 397903 399459 . + . ID=YMR064W;Name=YMR064W;Alias=AEP1 -chrXIII SGD CDS 399702 401216 . + . ID=YMR065W;Name=YMR065W;Alias=KAR5 -chrXIII SGD CDS 401541 404237 . + . ID=YMR066W;Name=YMR066W;Alias=SOV1 -chrXIII SGD CDS 404323 405573 . - . ID=YMR067C;Name=YMR067C;Alias=UBX4 -chrXIII SGD CDS 406304 407584 . + . ID=YMR068W;Name=YMR068W;Alias=AVO2 -chrXIII SGD CDS 407709 408566 . + . ID=YMR069W;Name=YMR069W;Alias=NAT4 -chrXIII SGD CDS 409154 410626 . + . ID=YMR070W;Name=YMR070W;Alias=MOT3 -chrXIII SGD CDS 410762 411265 . - . ID=YMR071C;Name=YMR071C;Alias=TVP18 -chrXIII SGD CDS 411569 412120 . + . ID=YMR072W;Name=YMR072W;Alias=ABF2 -chrXIII SGD CDS 412268 412873 . - . ID=YMR073C;Name=YMR073C;Alias=IRC21 -chrXIII SGD CDS 413036 413473 . - . ID=YMR074C;Name=YMR074C;Alias=SDD2 -chrXIII SGD CDS 413982 416036 . + . ID=YMR075W;Name=YMR075W;Alias=RCO1 -chrXIII SGD CDS 416196 420029 . - . ID=YMR076C;Name=YMR076C;Alias=PDS5 -chrXIII SGD CDS 421484 422149 . - . ID=YMR077C;Name=YMR077C;Alias=VPS20 -chrXIII SGD CDS 422503 424728 . - . ID=YMR078C;Name=YMR078C;Alias=CTF18 -chrXIII SGD CDS 424989 426059 . + . ID=YMR079W;Name=YMR079W;Alias=SEC14 -chrXIII SGD CDS 426712 429627 . - . ID=YMR080C;Name=YMR080C;Alias=NAM7 -chrXIII SGD CDS 430079 431095 . - . ID=YMR081C;Name=YMR081C;Alias=ISF1 -chrXIII SGD CDS 434788 435915 . + . ID=YMR083W;Name=YMR083W;Alias=ADH3 -chrXIII SGD CDS 436628 437416 . + . ID=YMR084W;Name=YMR084W;Alias= -chrXIII SGD CDS 437491 438789 . + . ID=YMR085W;Name=YMR085W;Alias= -chrXIII SGD CDS 439208 442090 . + . ID=YMR086W;Name=YMR086W;Alias=SEG1 -chrXIII SGD CDS 442527 443381 . + . ID=YMR087W;Name=YMR087W;Alias= -chrXIII SGD CDS 443414 445102 . - . ID=YMR088C;Name=YMR088C;Alias=VBA1 -chrXIII SGD CDS 445609 448086 . - . ID=YMR089C;Name=YMR089C;Alias=YTA12 -chrXIII SGD CDS 449245 449928 . + . ID=YMR090W;Name=YMR090W;Alias= -chrXIII SGD CDS 450058 451365 . - . ID=YMR091C;Name=YMR091C;Alias=NPL6 -chrXIII SGD CDS 451632 453479 . - . ID=YMR092C;Name=YMR092C;Alias=AIP1 -chrXIII SGD CDS 454015 455556 . + . ID=YMR093W;Name=YMR093W;Alias=UTP15 -chrXIII SGD CDS 455825 457261 . + . ID=YMR094W;Name=YMR094W;Alias=CTF13 -chrXIII SGD CDS 457285 457959 . - . ID=YMR095C;Name=YMR095C;Alias=SNO1 -chrXIII SGD CDS 458408 459301 . + . ID=YMR096W;Name=YMR096W;Alias=SNZ1 -chrXIII SGD CDS 459424 460527 . - . ID=YMR097C;Name=YMR097C;Alias=MTG1 -chrXIII SGD CDS 460771 462609 . - . ID=YMR098C;Name=YMR098C;Alias=ATP25 -chrXIII SGD CDS 463934 464827 . - . ID=YMR099C;Name=YMR099C;Alias= -chrXIII SGD CDS 466300 468162 . + . ID=YMR100W;Name=YMR100W;Alias=MUB1 -chrXIII SGD CDS 468445 469476 . - . ID=YMR101C;Name=YMR101C;Alias=SRT1 -chrXIII SGD CDS 469848 472352 . - . ID=YMR102C;Name=YMR102C;Alias= -chrXIII SGD CDS 473420 475453 . - . ID=YMR104C;Name=YMR104C;Alias=YPK2 -chrXIII SGD CDS 475897 477606 . - . ID=YMR105C;Name=YMR105C;Alias=PGM2 -chrXIII SGD CDS 478064 478258 . + . ID=YMR105W-A;Name=YMR105W-A;Alias= -chrXIII SGD CDS 478301 480190 . - . ID=YMR106C;Name=YMR106C;Alias=YKU80 -chrXIII SGD CDS 483014 483361 . + . ID=YMR107W;Name=YMR107W;Alias=SPG4 -chrXIII SGD CDS 484084 486147 . + . ID=YMR108W;Name=YMR108W;Alias=ILV2 -chrXIII SGD CDS 486587 490246 . + . ID=YMR109W;Name=YMR109W;Alias=MYO5 -chrXIII SGD CDS 490394 491992 . - . ID=YMR110C;Name=YMR110C;Alias=HFD1 -chrXIII SGD CDS 492404 493792 . - . ID=YMR111C;Name=YMR111C;Alias= -chrXIII SGD CDS 494100 494495 . - . ID=YMR112C;Name=YMR112C;Alias=MED11 -chrXIII SGD CDS 494999 496282 . + . ID=YMR113W;Name=YMR113W;Alias=FOL3 -chrXIII SGD CDS 496343 497449 . - . ID=YMR114C;Name=YMR114C;Alias= -chrXIII SGD CDS 497704 499209 . + . ID=YMR115W;Name=YMR115W;Alias=MGR3 -chrXIII SGD CDS 499456 500688 . - . ID=YMR116C;Name=YMR116C;Alias=ASC1 -chrXIII SGD CDS 501250 501891 . - . ID=YMR117C;Name=YMR117C;Alias=SPC24 -chrXIII SGD CDS 502144 502734 . - . ID=YMR118C;Name=YMR118C;Alias=SHH3 -chrXIII SGD CDS 505333 507207 . + . ID=YMR119W;Name=YMR119W;Alias=ASI1 -chrXIII SGD CDS 507502 509280 . - . ID=YMR120C;Name=YMR120C;Alias=ADE17 -chrXIII SGD CDS 509734 510348 . - . ID=YMR121C;Name=YMR121C;Alias=RPL15B -chrXIII SGD CDS 511315 511569 . + . ID=YMR122W-A;Name=YMR122W-A;Alias= -chrXIII SGD CDS 513593 513961 . + . ID=YMR123W;Name=YMR123W;Alias=PKR1 -chrXIII SGD CDS 514456 517287 . + . ID=YMR124W;Name=YMR124W;Alias=EPO1 -chrXIII SGD CDS 517539 520446 . + . ID=YMR125W;Name=YMR125W;Alias=STO1 -chrXIII SGD CDS 520761 521789 . - . ID=YMR126C;Name=YMR126C;Alias=DLT1 -chrXIII SGD CDS 522329 523345 . - . ID=YMR127C;Name=YMR127C;Alias=SAS2 -chrXIII SGD CDS 523696 527499 . + . ID=YMR128W;Name=YMR128W;Alias=ECM16 -chrXIII SGD CDS 527804 531817 . + . ID=YMR129W;Name=YMR129W;Alias=POM152 -chrXIII SGD CDS 532119 533027 . + . ID=YMR130W;Name=YMR130W;Alias= -chrXIII SGD CDS 533163 534698 . - . ID=YMR131C;Name=YMR131C;Alias=RRB1 -chrXIII SGD CDS 534944 535570 . - . ID=YMR132C;Name=YMR132C;Alias=JLP2 -chrXIII SGD CDS 536207 537609 . + . ID=YMR133W;Name=YMR133W;Alias=REC114 -chrXIII SGD CDS 537838 538551 . + . ID=YMR134W;Name=YMR134W;Alias=ERG29 -chrXIII SGD CDS 538689 540056 . - . ID=YMR135C;Name=YMR135C;Alias=GID8 -chrXIII SGD CDS 541199 542881 . + . ID=YMR136W;Name=YMR136W;Alias=GAT2 -chrXIII SGD CDS 542978 544963 . - . ID=YMR137C;Name=YMR137C;Alias=PSO2 -chrXIII SGD CDS 545155 545730 . + . ID=YMR138W;Name=YMR138W;Alias=CIN4 -chrXIII SGD CDS 546125 547237 . + . ID=YMR139W;Name=YMR139W;Alias=RIM11 -chrXIII SGD CDS 547714 549183 . + . ID=YMR140W;Name=YMR140W;Alias=SIP5 -chrXIII SGD CDS 550206 551207 . - . ID=YMR142C;Name=YMR142C;Alias=RPL13B -chrXIII SGD CDS 551928 552903 . + . ID=YMR143W;Name=YMR143W;Alias=RPS16A -chrXIII SGD CDS 553362 554390 . + . ID=YMR144W;Name=YMR144W;Alias=FDO1 -chrXIII SGD CDS 554793 556475 . - . ID=YMR145C;Name=YMR145C;Alias=NDE1 -chrXIII SGD CDS 557481 558524 . - . ID=YMR146C;Name=YMR146C;Alias=TIF34 -chrXIII SGD CDS 559199 559870 . + . ID=YMR147W;Name=YMR147W;Alias= -chrXIII SGD CDS 560366 560812 . + . ID=YMR148W;Name=YMR148W;Alias=OSW5 -chrXIII SGD CDS 560996 561856 . + . ID=YMR149W;Name=YMR149W;Alias=SWP1 -chrXIII SGD CDS 561956 562528 . - . ID=YMR150C;Name=YMR150C;Alias=IMP1 -chrXIII SGD CDS 563096 564193 . + . ID=YMR152W;Name=YMR152W;Alias=YIM1 -chrXIII SGD CDS 564435 565862 . + . ID=YMR153W;Name=YMR153W;Alias=NUP53 -chrXIII SGD CDS 565999 568182 . - . ID=YMR154C;Name=YMR154C;Alias=RIM13 -chrXIII SGD CDS 568551 570194 . + . ID=YMR155W;Name=YMR155W;Alias= -chrXIII SGD CDS 570300 571016 . - . ID=YMR156C;Name=YMR156C;Alias=TPP1 -chrXIII SGD CDS 571277 572044 . - . ID=YMR157C;Name=YMR157C;Alias=AIM36 -chrXIII SGD CDS 572248 572715 . + . ID=YMR158W;Name=YMR158W;Alias=MRPS8 -chrXIII SGD CDS 573194 573331 . - . ID=YMR158C-A;Name=YMR158C-A;Alias= -chrXIII SGD CDS 574476 574928 . - . ID=YMR159C;Name=YMR159C;Alias=ATG16 -chrXIII SGD CDS 575066 577516 . + . ID=YMR160W;Name=YMR160W;Alias= -chrXIII SGD CDS 577718 578392 . + . ID=YMR161W;Name=YMR161W;Alias=HLJ1 -chrXIII SGD CDS 578951 583921 . - . ID=YMR162C;Name=YMR162C;Alias=DNF3 -chrXIII SGD CDS 584271 586388 . - . ID=YMR163C;Name=YMR163C;Alias=INP2 -chrXIII SGD CDS 587274 589550 . - . ID=YMR164C;Name=YMR164C;Alias=MSS11 -chrXIII SGD CDS 590040 592628 . - . ID=YMR165C;Name=YMR165C;Alias=PAH1 -chrXIII SGD CDS 593367 594473 . - . ID=YMR166C;Name=YMR166C;Alias=MME1 -chrXIII SGD CDS 594886 597195 . + . ID=YMR167W;Name=YMR167W;Alias=MLH1 -chrXIII SGD CDS 597332 599158 . - . ID=YMR168C;Name=YMR168C;Alias=CEP3 -chrXIII SGD CDS 599352 600872 . - . ID=YMR169C;Name=YMR169C;Alias=ALD3 -chrXIII SGD CDS 601562 603082 . - . ID=YMR170C;Name=YMR170C;Alias=ALD2 -chrXIII SGD CDS 603868 605520 . - . ID=YMR171C;Name=YMR171C;Alias=EAR1 -chrXIII SGD CDS 605981 608140 . + . ID=YMR172W;Name=YMR172W;Alias=HOT1 -chrXIII SGD CDS 608689 609981 . + . ID=YMR173W;Name=YMR173W;Alias=DDR48 -chrXIII SGD CDS 610159 610365 . - . ID=YMR174C;Name=YMR174C;Alias=PAI3 -chrXIII SGD CDS 611016 611255 . + . ID=YMR175W;Name=YMR175W;Alias=SIP18 -chrXIII SGD CDS 611314 611508 . + . ID=YMR175W-A;Name=YMR175W-A;Alias= -chrXIII SGD CDS 611740 615975 . + . ID=YMR176W;Name=YMR176W;Alias=ECM5 -chrXIII SGD CDS 616566 618098 . + . ID=YMR177W;Name=YMR177W;Alias=MMT1 -chrXIII SGD CDS 618479 619303 . + . ID=YMR178W;Name=YMR178W;Alias= -chrXIII SGD CDS 619858 622134 . + . ID=YMR179W;Name=YMR179W;Alias=SPT21 -chrXIII SGD CDS 622251 623213 . - . ID=YMR180C;Name=YMR180C;Alias=CTL1 -chrXIII SGD CDS 623616 624080 . - . ID=YMR181C;Name=YMR181C;Alias= -chrXIII SGD CDS 624532 625167 . - . ID=YMR182C;Name=YMR182C;Alias=RGM1 -chrXIII SGD CDS 625811 625897 . + . ID=YMR182W-A;Name=YMR182W-A;Alias= -chrXIII SGD CDS 626921 627808 . - . ID=YMR183C;Name=YMR183C;Alias=SSO2 -chrXIII SGD CDS 628189 628785 . + . ID=YMR184W;Name=YMR184W;Alias=ADD37 -chrXIII SGD CDS 629025 631970 . + . ID=YMR185W;Name=YMR185W;Alias=RTP1 -chrXIII SGD CDS 632355 634472 . + . ID=YMR186W;Name=YMR186W;Alias=HSC82 -chrXIII SGD CDS 634689 635984 . - . ID=YMR187C;Name=YMR187C;Alias= -chrXIII SGD CDS 636291 637004 . - . ID=YMR188C;Name=YMR188C;Alias=MRPS17 -chrXIII SGD CDS 637500 640604 . + . ID=YMR189W;Name=YMR189W;Alias=GCV2 -chrXIII SGD CDS 640915 645258 . - . ID=YMR190C;Name=YMR190C;Alias=SGS1 -chrXIII SGD CDS 645656 646777 . + . ID=YMR191W;Name=YMR191W;Alias=SPG5 -chrXIII SGD CDS 647118 649280 . + . ID=YMR192W;Name=YMR192W;Alias=GYL1 -chrXIII SGD CDS 650036 650812 . + . ID=YMR193W;Name=YMR193W;Alias=MRPL24 -chrXIII SGD CDS 651145 651910 . + . ID=YMR194W;Name=YMR194W;Alias=RPL36A -chrXIII SGD CDS 652594 652887 . - . ID=YMR194C-B;Name=YMR194C-B;Alias=CMC4 -chrXIII SGD CDS 654034 654417 . + . ID=YMR195W;Name=YMR195W;Alias=ICY1 -chrXIII SGD CDS 655076 658342 . + . ID=YMR196W;Name=YMR196W;Alias= -chrXIII SGD CDS 658545 659198 . - . ID=YMR197C;Name=YMR197C;Alias=VTI1 -chrXIII SGD CDS 659745 661529 . + . ID=YMR198W;Name=YMR198W;Alias=CIK1 -chrXIII SGD CDS 662644 664284 . + . ID=YMR199W;Name=YMR199W;Alias=CLN1 -chrXIII SGD CDS 664752 665522 . + . ID=YMR200W;Name=YMR200W;Alias=ROT1 -chrXIII SGD CDS 665845 667044 . - . ID=YMR201C;Name=YMR201C;Alias=RAD14 -chrXIII SGD CDS 667537 668205 . + . ID=YMR202W;Name=YMR202W;Alias=ERG2 -chrXIII SGD CDS 668492 669655 . + . ID=YMR203W;Name=YMR203W;Alias=TOM40 -chrXIII SGD CDS 670063 671325 . - . ID=YMR204C;Name=YMR204C;Alias=INP1 -chrXIII SGD CDS 671887 674766 . - . ID=YMR205C;Name=YMR205C;Alias=PFK2 -chrXIII SGD CDS 675896 676837 . + . ID=YMR206W;Name=YMR206W;Alias= -chrXIII SGD CDS 677193 683564 . - . ID=YMR207C;Name=YMR207C;Alias=HFA1 -chrXIII SGD CDS 684467 685798 . + . ID=YMR208W;Name=YMR208W;Alias=ERG12 -chrXIII SGD CDS 685911 687284 . - . ID=YMR209C;Name=YMR209C;Alias= -chrXIII SGD CDS 687516 688865 . + . ID=YMR210W;Name=YMR210W;Alias=MGL2 -chrXIII SGD CDS 689083 690510 . + . ID=YMR211W;Name=YMR211W;Alias=DML1 -chrXIII SGD CDS 690695 693043 . - . ID=YMR212C;Name=YMR212C;Alias=EFR3 -chrXIII SGD CDS 693381 695153 . + . ID=YMR213W;Name=YMR213W;Alias=CEF1 -chrXIII SGD CDS 695350 696483 . + . ID=YMR214W;Name=YMR214W;Alias=SCJ1 -chrXIII SGD CDS 696796 698370 . + . ID=YMR215W;Name=YMR215W;Alias=GAS3 -chrXIII SGD CDS 698811 701039 . - . ID=YMR216C;Name=YMR216C;Alias=SKY1 -chrXIII SGD CDS 701790 703367 . + . ID=YMR217W;Name=YMR217W;Alias=GUA1 -chrXIII SGD CDS 703579 706887 . - . ID=YMR218C;Name=YMR218C;Alias=TRS130 -chrXIII SGD CDS 707133 712109 . + . ID=YMR219W;Name=YMR219W;Alias=ESC1 -chrXIII SGD CDS 712316 713671 . + . ID=YMR220W;Name=YMR220W;Alias=ERG8 -chrXIII SGD CDS 713931 715445 . - . ID=YMR221C;Name=YMR221C;Alias=FMP42 -chrXIII SGD CDS 715638 716309 . - . ID=YMR222C;Name=YMR222C;Alias=FSH2 -chrXIII SGD CDS 716715 718130 . + . ID=YMR223W;Name=YMR223W;Alias=UBP8 -chrXIII SGD CDS 718575 720653 . - . ID=YMR224C;Name=YMR224C;Alias=MRE11 -chrXIII SGD CDS 720960 721403 . - . ID=YMR225C;Name=YMR225C;Alias=MRPL44 -chrXIII SGD CDS 721593 722396 . - . ID=YMR226C;Name=YMR226C;Alias= -chrXIII SGD CDS 722613 724385 . - . ID=YMR227C;Name=YMR227C;Alias=TAF7 -chrXIII SGD CDS 724626 725651 . + . ID=YMR228W;Name=YMR228W;Alias=MTF1 -chrXIII SGD CDS 725934 731123 . - . ID=YMR229C;Name=YMR229C;Alias=RRP5 -chrXIII SGD CDS 732414 733141 . + . ID=YMR230W;Name=YMR230W;Alias=RPS10B -chrXIII SGD CDS 733268 733456 . + . ID=YMR230W-A;Name=YMR230W-A;Alias= -chrXIII SGD CDS 733545 736634 . + . ID=YMR231W;Name=YMR231W;Alias=PEP5 -chrXIII SGD CDS 736926 738959 . + . ID=YMR232W;Name=YMR232W;Alias=FUS2 -chrXIII SGD CDS 739185 739865 . + . ID=YMR233W;Name=YMR233W;Alias=TRI1 -chrXIII SGD CDS 740266 741312 . + . ID=YMR234W;Name=YMR234W;Alias=RNH1 -chrXIII SGD CDS 741512 742735 . - . ID=YMR235C;Name=YMR235C;Alias=RNA1 -chrXIII SGD CDS 742971 743444 . + . ID=YMR236W;Name=YMR236W;Alias=TAF9 -chrXIII SGD CDS 743749 745923 . + . ID=YMR237W;Name=YMR237W;Alias=BCH1 -chrXIII SGD CDS 746353 747729 . + . ID=YMR238W;Name=YMR238W;Alias=DFG5 -chrXIII SGD CDS 748262 749677 . - . ID=YMR239C;Name=YMR239C;Alias=RNT1 -chrXIII SGD CDS 749930 751240 . - . ID=YMR240C;Name=YMR240C;Alias=CUS1 -chrXIII SGD CDS 751961 752905 . + . ID=YMR241W;Name=YMR241W;Alias=YHM2 -chrXIII SGD CDS 753225 754220 . - . ID=YMR242C;Name=YMR242C;Alias=RPL20A -chrXIII SGD CDS 754297 754386 . + . ID=YMR242W-A;Name=YMR242W-A;Alias= -chrXIII SGD CDS 754838 756166 . - . ID=YMR243C;Name=YMR243C;Alias=ZRC1 -chrXIII SGD CDS 757250 758317 . + . ID=YMR244W;Name=YMR244W;Alias= -chrXIII SGD CDS 758517 758831 . - . ID=YMR244C-A;Name=YMR244C-A;Alias=COA6 -chrXIII SGD CDS 759807 761891 . + . ID=YMR246W;Name=YMR246W;Alias=FAA4 -chrXIII SGD CDS 763351 768039 . - . ID=YMR247C;Name=YMR247C;Alias=RKR1 -chrXIII SGD CDS 769283 769426 . + . ID=YMR247W-A;Name=YMR247W-A;Alias= -chrXIII SGD CDS 770801 772558 . + . ID=YMR250W;Name=YMR250W;Alias=GAD1 -chrXIII SGD CDS 772915 774015 . + . ID=YMR251W;Name=YMR251W;Alias=GTO3 -chrXIII SGD CDS 774752 774931 . + . ID=YMR251W-A;Name=YMR251W-A;Alias=HOR7 -chrXIII SGD CDS 775315 775719 . - . ID=YMR252C;Name=YMR252C;Alias= -chrXIII SGD CDS 775946 777190 . - . ID=YMR253C;Name=YMR253C;Alias= -chrXIII SGD CDS 778001 778567 . + . ID=YMR255W;Name=YMR255W;Alias=GFD1 -chrXIII SGD CDS 778945 779127 . - . ID=YMR256C;Name=YMR256C;Alias=COX7 -chrXIII SGD CDS 779629 782031 . - . ID=YMR257C;Name=YMR257C;Alias=PET111 -chrXIII SGD CDS 782620 784281 . - . ID=YMR258C;Name=YMR258C;Alias=ROY1 -chrXIII SGD CDS 784621 788883 . - . ID=YMR259C;Name=YMR259C;Alias=TRM732 -chrXIII SGD CDS 789378 789839 . - . ID=YMR260C;Name=YMR260C;Alias=TIF11 -chrXIII SGD CDS 790205 793369 . - . ID=YMR261C;Name=YMR261C;Alias=TPS3 -chrXIII SGD CDS 793726 794667 . + . ID=YMR262W;Name=YMR262W;Alias= -chrXIII SGD CDS 794919 795524 . + . ID=YMR263W;Name=YMR263W;Alias=SAP30 -chrXIII SGD CDS 795805 796416 . + . ID=YMR264W;Name=YMR264W;Alias=CUE1 -chrXIII SGD CDS 796540 797925 . - . ID=YMR265C;Name=YMR265C;Alias= -chrXIII SGD CDS 798518 801379 . + . ID=YMR266W;Name=YMR266W;Alias=RSN1 -chrXIII SGD CDS 801772 802704 . + . ID=YMR267W;Name=YMR267W;Alias=PPA2 -chrXIII SGD CDS 802888 804222 . - . ID=YMR268C;Name=YMR268C;Alias=PRP24 -chrXIII SGD CDS 804456 805091 . + . ID=YMR269W;Name=YMR269W;Alias=TMA23 -chrXIII SGD CDS 805326 806423 . - . ID=YMR270C;Name=YMR270C;Alias=RRN9 -chrXIII SGD CDS 806865 807548 . - . ID=YMR271C;Name=YMR271C;Alias=URA10 -chrXIII SGD CDS 809623 810777 . - . ID=YMR272C;Name=YMR272C;Alias=SCS7 -chrXIII SGD CDS 811089 811196 . + . ID=YMR272W-B;Name=YMR272W-B;Alias= -chrXIII SGD CDS 811233 813980 . - . ID=YMR273C;Name=YMR273C;Alias=ZDS1 -chrXIII SGD CDS 814364 815311 . - . ID=YMR274C;Name=YMR274C;Alias=RCE1 -chrXIII SGD CDS 815651 818581 . - . ID=YMR275C;Name=YMR275C;Alias=BUL1 -chrXIII SGD CDS 818827 819948 . + . ID=YMR276W;Name=YMR276W;Alias=DSK2 -chrXIII SGD CDS 820256 822454 . + . ID=YMR277W;Name=YMR277W;Alias=FCP1 -chrXIII SGD CDS 822763 824631 . + . ID=YMR278W;Name=YMR278W;Alias=PRM15 -chrXIII SGD CDS 824729 826351 . - . ID=YMR279C;Name=YMR279C;Alias= -chrXIII SGD CDS 827028 831329 . - . ID=YMR280C;Name=YMR280C;Alias=CAT8 -chrXIII SGD CDS 832339 833253 . + . ID=YMR281W;Name=YMR281W;Alias=GPI12 -chrXIII SGD CDS 833356 835098 . - . ID=YMR282C;Name=YMR282C;Alias=AEP2 -chrXIII SGD CDS 835326 836867 . - . ID=YMR283C;Name=YMR283C;Alias=RIT1 -chrXIII SGD CDS 838187 839995 . + . ID=YMR284W;Name=YMR284W;Alias=YKU70 -chrXIII SGD CDS 840144 841691 . - . ID=YMR285C;Name=YMR285C;Alias=NGL2 -chrXIII SGD CDS 841942 842202 . + . ID=YMR286W;Name=YMR286W;Alias=MRPL33 -chrXIII SGD CDS 842436 845345 . - . ID=YMR287C;Name=YMR287C;Alias=DSS1 -chrXIII SGD CDS 845571 848486 . + . ID=YMR288W;Name=YMR288W;Alias=HSH155 -chrXIII SGD CDS 848685 849809 . + . ID=YMR289W;Name=YMR289W;Alias=ABZ2 -chrXIII SGD CDS 850074 851591 . - . ID=YMR290C;Name=YMR290C;Alias=HAS1 -chrXIII SGD CDS 852630 854390 . + . ID=YMR291W;Name=YMR291W;Alias=TDA1 -chrXIII SGD CDS 854795 855293 . + . ID=YMR292W;Name=YMR292W;Alias=GOT1 -chrXIII SGD CDS 855399 856793 . - . ID=YMR293C;Name=YMR293C;Alias=HER2 -chrXIII SGD CDS 856966 858087 . + . ID=YMR294W;Name=YMR294W;Alias=JNM1 -chrXIII SGD CDS 858297 858890 . - . ID=YMR295C;Name=YMR295C;Alias= -chrXIII SGD CDS 859215 860891 . - . ID=YMR296C;Name=YMR296C;Alias=LCB1 -chrXIII SGD CDS 861922 863520 . + . ID=YMR297W;Name=YMR297W;Alias=PRC1 -chrXIII SGD CDS 863819 864271 . + . ID=YMR298W;Name=YMR298W;Alias=LIP1 -chrXIII SGD CDS 864412 865350 . - . ID=YMR299C;Name=YMR299C;Alias=DYN3 -chrXIII SGD CDS 865559 867091 . - . ID=YMR300C;Name=YMR300C;Alias=ADE4 -chrXIII SGD CDS 867555 869627 . - . ID=YMR301C;Name=YMR301C;Alias=ATM1 -chrXIII SGD CDS 870073 872625 . - . ID=YMR302C;Name=YMR302C;Alias=YME2 -chrXIII SGD CDS 873291 874337 . - . ID=YMR303C;Name=YMR303C;Alias=ADH2 -chrXIII SGD CDS 874987 878679 . + . ID=YMR304W;Name=YMR304W;Alias=UBP15 -chrXIII SGD CDS 879063 880232 . - . ID=YMR305C;Name=YMR305C;Alias=SCW10 -chrXIII SGD CDS 881159 886516 . + . ID=YMR306W;Name=YMR306W;Alias=FKS3 -chrXIII SGD CDS 887003 888682 . + . ID=YMR307W;Name=YMR307W;Alias=GAS1 -chrXIII SGD CDS 888952 892221 . - . ID=YMR308C;Name=YMR308C;Alias=PSE1 -chrXIII SGD CDS 892988 895426 . - . ID=YMR309C;Name=YMR309C;Alias=NIP1 -chrXIII SGD CDS 895716 896669 . - . ID=YMR310C;Name=YMR310C;Alias= -chrXIII SGD CDS 896914 897603 . - . ID=YMR311C;Name=YMR311C;Alias=GLC8 -chrXIII SGD CDS 898405 899226 . + . ID=YMR312W;Name=YMR312W;Alias=ELP6 -chrXIII SGD CDS 899379 901307 . - . ID=YMR313C;Name=YMR313C;Alias=TGL3 -chrXIII SGD CDS 901709 902413 . + . ID=YMR314W;Name=YMR314W;Alias=PRE5 -chrXIII SGD CDS 902800 903849 . + . ID=YMR315W;Name=YMR315W;Alias= -chrXIII SGD CDS 904286 904393 . + . ID=YMR315W-A;Name=YMR315W-A;Alias= -chrXIII SGD CDS 904825 905835 . + . ID=YMR316W;Name=YMR316W;Alias=DIA1 -chrXIII SGD CDS 905662 905973 . - . ID=YMR316C-A;Name=YMR316C-A;Alias= -chrXIII SGD CDS 907364 910786 . + . ID=YMR317W;Name=YMR317W;Alias= -chrXIII SGD CDS 911061 912143 . - . ID=YMR318C;Name=YMR318C;Alias=ADH6 -chrXIII SGD CDS 912880 914538 . - . ID=YMR319C;Name=YMR319C;Alias=FET4 -chrXIII SGD CDS 917579 917896 . - . ID=YMR321C;Name=YMR321C;Alias= -chrXIII SGD CDS 918366 919079 . - . ID=YMR322C;Name=YMR322C;Alias=SNO4 -chrXIII SGD CDS 920088 921401 . + . ID=YMR323W;Name=YMR323W;Alias=ERR3 -chrXIII SGD CDS 922641 923015 . + . ID=YMR325W;Name=YMR325W;Alias=PAU19 -chrXIV SGD CDS 371 6098 . - . ID=YNL339C;Name=YNL339C;Alias=YRF1-6 -chrXIV SGD CDS 8330 9475 . + . ID=YNL336W;Name=YNL336W;Alias=COS1 -chrXIV SGD CDS 11452 12129 . + . ID=YNL335W;Name=YNL335W;Alias=DDI3 -chrXIV SGD CDS 12208 12876 . - . ID=YNL334C;Name=YNL334C;Alias=SNO2 -chrXIV SGD CDS 13267 14163 . + . ID=YNL333W;Name=YNL333W;Alias=SNZ2 -chrXIV SGD CDS 14832 15854 . + . ID=YNL332W;Name=YNL332W;Alias=THI12 -chrXIV SGD CDS 16118 17248 . - . ID=YNL331C;Name=YNL331C;Alias=AAD14 -chrXIV SGD CDS 18001 19302 . - . ID=YNL330C;Name=YNL330C;Alias=RPD3 -chrXIV SGD CDS 19541 22633 . - . ID=YNL329C;Name=YNL329C;Alias=PEX6 -chrXIV SGD CDS 22834 23274 . - . ID=YNL328C;Name=YNL328C;Alias=MDJ2 -chrXIV SGD CDS 24048 27173 . + . ID=YNL327W;Name=YNL327W;Alias=EGT2 -chrXIV SGD CDS 27337 28347 . - . ID=YNL326C;Name=YNL326C;Alias=PFA3 -chrXIV SGD CDS 28739 31378 . - . ID=YNL325C;Name=YNL325C;Alias=FIG4 -chrXIV SGD CDS 31944 33188 . + . ID=YNL323W;Name=YNL323W;Alias=LEM3 -chrXIV SGD CDS 33294 34235 . - . ID=YNL322C;Name=YNL322C;Alias=KRE1 -chrXIV SGD CDS 34696 37422 . + . ID=YNL321W;Name=YNL321W;Alias=VNX1 -chrXIV SGD CDS 37700 38554 . + . ID=YNL320W;Name=YNL320W;Alias= -chrXIV SGD CDS 38707 40329 . - . ID=YNL318C;Name=YNL318C;Alias=HXT14 -chrXIV SGD CDS 40619 42016 . + . ID=YNL317W;Name=YNL317W;Alias=PFS2 -chrXIV SGD CDS 42071 43075 . - . ID=YNL316C;Name=YNL316C;Alias=PHA2 -chrXIV SGD CDS 43324 44280 . - . ID=YNL315C;Name=YNL315C;Alias=ATP11 -chrXIV SGD CDS 44447 45214 . + . ID=YNL314W;Name=YNL314W;Alias=DAL82 -chrXIV SGD CDS 45308 48022 . - . ID=YNL313C;Name=YNL313C;Alias=EMW1 -chrXIV SGD CDS 48287 49216 . + . ID=YNL312W;Name=YNL312W;Alias=RFA2 -chrXIV SGD CDS 49397 51688 . - . ID=YNL311C;Name=YNL311C;Alias=SKP2 -chrXIV SGD CDS 51907 52431 . - . ID=YNL310C;Name=YNL310C;Alias=ZIM17 -chrXIV SGD CDS 52662 53924 . + . ID=YNL309W;Name=YNL309W;Alias=STB1 -chrXIV SGD CDS 54122 55897 . - . ID=YNL308C;Name=YNL308C;Alias=KRI1 -chrXIV SGD CDS 56446 57573 . - . ID=YNL307C;Name=YNL307C;Alias=MCK1 -chrXIV SGD CDS 58155 58808 . + . ID=YNL306W;Name=YNL306W;Alias=MRPS18 -chrXIV SGD CDS 58898 59791 . - . ID=YNL305C;Name=YNL305C;Alias=BXI1 -chrXIV SGD CDS 60297 61550 . + . ID=YNL304W;Name=YNL304W;Alias=YPT11 -chrXIV SGD CDS 61958 62943 . - . ID=YNL302C;Name=YNL302C;Alias=RPS19B -chrXIV SGD CDS 63570 64562 . - . ID=YNL301C;Name=YNL301C;Alias=RPL18B -chrXIV SGD CDS 65744 66052 . + . ID=YNL300W;Name=YNL300W;Alias=TOS6 -chrXIV SGD CDS 66517 68445 . + . ID=YNL299W;Name=YNL299W;Alias=TRF5 -chrXIV SGD CDS 68915 71443 . + . ID=YNL298W;Name=YNL298W;Alias=CLA4 -chrXIV SGD CDS 71673 76583 . - . ID=YNL297C;Name=YNL297C;Alias=MON2 -chrXIV SGD CDS 76946 78520 . + . ID=YNL295W;Name=YNL295W;Alias=MRX6 -chrXIV SGD CDS 78659 80260 . - . ID=YNL294C;Name=YNL294C;Alias=RIM21 -chrXIV SGD CDS 80640 82541 . + . ID=YNL293W;Name=YNL293W;Alias=MSB3 -chrXIV SGD CDS 82806 84017 . + . ID=YNL292W;Name=YNL292W;Alias=PUS4 -chrXIV SGD CDS 84169 85815 . - . ID=YNL291C;Name=YNL291C;Alias=MID1 -chrXIV SGD CDS 86218 87240 . + . ID=YNL290W;Name=YNL290W;Alias=RFC3 -chrXIV SGD CDS 87897 88736 . + . ID=YNL289W;Name=YNL289W;Alias=PCL1 -chrXIV SGD CDS 90303 91424 . + . ID=YNL288W;Name=YNL288W;Alias=CAF40 -chrXIV SGD CDS 91994 94801 . + . ID=YNL287W;Name=YNL287W;Alias=SEC21 -chrXIV SGD CDS 95223 96080 . + . ID=YNL286W;Name=YNL286W;Alias=CUS2 -chrXIV SGD CDS 103134 104102 . - . ID=YNL284C;Name=YNL284C;Alias=MRPL10 -chrXIV SGD CDS 105184 106695 . - . ID=YNL283C;Name=YNL283C;Alias=WSC2 -chrXIV SGD CDS 107687 108274 . + . ID=YNL282W;Name=YNL282W;Alias=POP3 -chrXIV SGD CDS 108467 108928 . + . ID=YNL281W;Name=YNL281W;Alias=HCH1 -chrXIV SGD CDS 109095 110411 . - . ID=YNL280C;Name=YNL280C;Alias=ERG24 -chrXIV SGD CDS 110917 112902 . + . ID=YNL279W;Name=YNL279W;Alias=PRM1 -chrXIV SGD CDS 113271 116453 . + . ID=YNL278W;Name=YNL278W;Alias=CAF120 -chrXIV SGD CDS 116679 116867 . + . ID=YNL277W-A;Name=YNL277W-A;Alias= -chrXIV SGD CDS 117349 118809 . + . ID=YNL277W;Name=YNL277W;Alias=MET2 -chrXIV SGD CDS 119268 120998 . + . ID=YNL275W;Name=YNL275W;Alias=BOR1 -chrXIV SGD CDS 121118 122170 . - . ID=YNL274C;Name=YNL274C;Alias=GOR1 -chrXIV SGD CDS 122883 126599 . + . ID=YNL273W;Name=YNL273W;Alias=TOF1 -chrXIV SGD CDS 126805 129084 . - . ID=YNL272C;Name=YNL272C;Alias=SEC2 -chrXIV SGD CDS 129522 135383 . - . ID=YNL271C;Name=YNL271C;Alias=BNI1 -chrXIV SGD CDS 135940 137661 . - . ID=YNL270C;Name=YNL270C;Alias=ALP1 -chrXIV SGD CDS 137699 138094 . + . ID=YNL269W;Name=YNL269W;Alias=BSC4 -chrXIV SGD CDS 138550 140385 . + . ID=YNL268W;Name=YNL268W;Alias=LYP1 -chrXIV SGD CDS 140878 144078 . + . ID=YNL267W;Name=YNL267W;Alias=PIK1 -chrXIV SGD CDS 144280 145281 . - . ID=YNL265C;Name=YNL265C;Alias=IST1 -chrXIV SGD CDS 145563 146615 . - . ID=YNL264C;Name=YNL264C;Alias=PDR17 -chrXIV SGD CDS 146896 147840 . - . ID=YNL263C;Name=YNL263C;Alias=YIF1 -chrXIV SGD CDS 148212 154880 . + . ID=YNL262W;Name=YNL262W;Alias=POL2 -chrXIV SGD CDS 155100 156539 . + . ID=YNL261W;Name=YNL261W;Alias=ORC5 -chrXIV SGD CDS 156859 157455 . - . ID=YNL260C;Name=YNL260C;Alias=LTO1 -chrXIV SGD CDS 157644 157865 . - . ID=YNL259C;Name=YNL259C;Alias=ATX1 -chrXIV SGD CDS 158109 160373 . - . ID=YNL258C;Name=YNL258C;Alias=DSL1 -chrXIV SGD CDS 160631 164320 . - . ID=YNL257C;Name=YNL257C;Alias=SIP3 -chrXIV SGD CDS 164623 167097 . + . ID=YNL256W;Name=YNL256W;Alias=FOL1 -chrXIV SGD CDS 167329 167790 . - . ID=YNL255C;Name=YNL255C;Alias=GIS2 -chrXIV SGD CDS 168043 169248 . - . ID=YNL254C;Name=YNL254C;Alias=RTC4 -chrXIV SGD CDS 170018 171286 . + . ID=YNL253W;Name=YNL253W;Alias=TEX1 -chrXIV SGD CDS 171441 172286 . - . ID=YNL252C;Name=YNL252C;Alias=MRPL17 -chrXIV SGD CDS 172588 174315 . - . ID=YNL251C;Name=YNL251C;Alias=NRD1 -chrXIV SGD CDS 175410 179348 . + . ID=YNL250W;Name=YNL250W;Alias=RAD50 -chrXIV SGD CDS 179394 181022 . - . ID=YNL249C;Name=YNL249C;Alias=MPA43 -chrXIV SGD CDS 181361 182608 . - . ID=YNL248C;Name=YNL248C;Alias=RPA49 -chrXIV SGD CDS 182875 185178 . + . ID=YNL247W;Name=YNL247W;Alias= -chrXIV SGD CDS 185460 186349 . + . ID=YNL246W;Name=YNL246W;Alias=VPS75 -chrXIV SGD CDS 186346 186885 . - . ID=YNL245C;Name=YNL245C;Alias=CWC25 -chrXIV SGD CDS 187170 187496 . - . ID=YNL244C;Name=YNL244C;Alias=SUI1 -chrXIV SGD CDS 188051 190957 . + . ID=YNL243W;Name=YNL243W;Alias=SLA2 -chrXIV SGD CDS 191324 196102 . + . ID=YNL242W;Name=YNL242W;Alias=ATG2 -chrXIV SGD CDS 196426 197943 . - . ID=YNL241C;Name=YNL241C;Alias=ZWF1 -chrXIV SGD CDS 198502 199977 . - . ID=YNL240C;Name=YNL240C;Alias=NAR1 -chrXIV SGD CDS 200569 201933 . + . ID=YNL239W;Name=YNL239W;Alias=LAP3 -chrXIV SGD CDS 202428 204872 . + . ID=YNL238W;Name=YNL238W;Alias=KEX2 -chrXIV SGD CDS 205188 206567 . + . ID=YNL237W;Name=YNL237W;Alias=YTP1 -chrXIV SGD CDS 206930 209854 . + . ID=YNL236W;Name=YNL236W;Alias=SIN4 -chrXIV SGD CDS 210233 211513 . + . ID=YNL234W;Name=YNL234W;Alias= -chrXIV SGD CDS 211922 214600 . + . ID=YNL233W;Name=YNL233W;Alias=BNI4 -chrXIV SGD CDS 214923 215801 . + . ID=YNL232W;Name=YNL232W;Alias=CSL4 -chrXIV SGD CDS 215987 217042 . - . ID=YNL231C;Name=YNL231C;Alias=PDR16 -chrXIV SGD CDS 217523 218662 . - . ID=YNL230C;Name=YNL230C;Alias=ELA1 -chrXIV SGD CDS 219137 220201 . - . ID=YNL229C;Name=YNL229C;Alias=URE2 -chrXIV SGD CDS 220659 222431 . - . ID=YNL227C;Name=YNL227C;Alias=JJJ1 -chrXIV SGD CDS 222724 224469 . - . ID=YNL225C;Name=YNL225C;Alias=CNM67 -chrXIV SGD CDS 224796 227099 . - . ID=YNL224C;Name=YNL224C;Alias=SQS1 -chrXIV SGD CDS 227370 228854 . + . ID=YNL223W;Name=YNL223W;Alias=ATG4 -chrXIV SGD CDS 229094 229714 . + . ID=YNL222W;Name=YNL222W;Alias=SSU72 -chrXIV SGD CDS 231068 233695 . - . ID=YNL221C;Name=YNL221C;Alias=POP1 -chrXIV SGD CDS 234413 235714 . + . ID=YNL220W;Name=YNL220W;Alias=ADE12 -chrXIV SGD CDS 235996 237663 . - . ID=YNL219C;Name=YNL219C;Alias=ALG9 -chrXIV SGD CDS 238238 240001 . + . ID=YNL218W;Name=YNL218W;Alias=MGS1 -chrXIV SGD CDS 240331 241311 . + . ID=YNL217W;Name=YNL217W;Alias= -chrXIV SGD CDS 241689 244172 . + . ID=YNL216W;Name=YNL216W;Alias=RAP1 -chrXIV SGD CDS 244468 245430 . + . ID=YNL215W;Name=YNL215W;Alias=IES2 -chrXIV SGD CDS 245617 246216 . + . ID=YNL214W;Name=YNL214W;Alias=PEX17 -chrXIV SGD CDS 246460 247104 . - . ID=YNL213C;Name=YNL213C;Alias=RRG9 -chrXIV SGD CDS 247461 249809 . + . ID=YNL212W;Name=YNL212W;Alias=VID27 -chrXIV SGD CDS 250055 250315 . - . ID=YNL211C;Name=YNL211C;Alias=MRX7 -chrXIV SGD CDS 250931 251743 . + . ID=YNL210W;Name=YNL210W;Alias=MER1 -chrXIV SGD CDS 252059 253900 . + . ID=YNL209W;Name=YNL209W;Alias=SSB2 -chrXIV SGD CDS 254418 255017 . + . ID=YNL208W;Name=YNL208W;Alias= -chrXIV SGD CDS 255353 256630 . + . ID=YNL207W;Name=YNL207W;Alias=RIO2 -chrXIV SGD CDS 256788 258155 . - . ID=YNL206C;Name=YNL206C;Alias=RTT106 -chrXIV SGD CDS 258375 259277 . - . ID=YNL204C;Name=YNL204C;Alias=SPS18 -chrXIV SGD CDS 259578 260456 . + . ID=YNL202W;Name=YNL202W;Alias=SPS19 -chrXIV SGD CDS 260627 263203 . - . ID=YNL201C;Name=YNL201C;Alias=PSY2 -chrXIV SGD CDS 263713 264453 . - . ID=YNL200C;Name=YNL200C;Alias=NNR1 -chrXIV SGD CDS 264926 266530 . - . ID=YNL199C;Name=YNL199C;Alias=GCR2 -chrXIV SGD CDS 267608 269593 . - . ID=YNL197C;Name=YNL197C;Alias=WHI3 -chrXIV SGD CDS 270275 271171 . - . ID=YNL196C;Name=YNL196C;Alias=SLZ1 -chrXIV SGD CDS 271523 272308 . - . ID=YNL195C;Name=YNL195C;Alias= -chrXIV SGD CDS 272710 273615 . - . ID=YNL194C;Name=YNL194C;Alias= -chrXIV SGD CDS 274368 276044 . + . ID=YNL193W;Name=YNL193W;Alias= -chrXIV SGD CDS 276502 279897 . + . ID=YNL192W;Name=YNL192W;Alias=CHS1 -chrXIV SGD CDS 280432 281505 . + . ID=YNL191W;Name=YNL191W;Alias=DUG3 -chrXIV SGD CDS 282395 283009 . + . ID=YNL190W;Name=YNL190W;Alias= -chrXIV SGD CDS 284260 285888 . + . ID=YNL189W;Name=YNL189W;Alias=SRP1 -chrXIV SGD CDS 286308 287609 . + . ID=YNL188W;Name=YNL188W;Alias=KAR1 -chrXIV SGD CDS 287994 289067 . + . ID=YNL187W;Name=YNL187W;Alias=SWT21 -chrXIV SGD CDS 289498 291876 . + . ID=YNL186W;Name=YNL186W;Alias=UBP10 -chrXIV SGD CDS 292193 292669 . - . ID=YNL185C;Name=YNL185C;Alias=MRPL19 -chrXIV SGD CDS 292557 292883 . - . ID=YNL184C;Name=YNL184C;Alias= -chrXIV SGD CDS 293137 295509 . - . ID=YNL183C;Name=YNL183C;Alias=NPR1 -chrXIV SGD CDS 295960 297627 . - . ID=YNL182C;Name=YNL182C;Alias=IPI3 -chrXIV SGD CDS 298335 299558 . + . ID=YNL181W;Name=YNL181W;Alias=PBR1 -chrXIV SGD CDS 299654 300649 . - . ID=YNL180C;Name=YNL180C;Alias=RHO5 -chrXIV SGD CDS 302680 303402 . + . ID=YNL178W;Name=YNL178W;Alias=RPS3 -chrXIV SGD CDS 303686 304615 . - . ID=YNL177C;Name=YNL177C;Alias=MRPL22 -chrXIV SGD CDS 305070 306980 . - . ID=YNL176C;Name=YNL176C;Alias=TDA7 -chrXIV SGD CDS 307401 308612 . - . ID=YNL175C;Name=YNL175C;Alias=NOP13 -chrXIV SGD CDS 308957 310057 . - . ID=YNL173C;Name=YNL173C;Alias=MDG1 -chrXIV SGD CDS 310636 315882 . + . ID=YNL172W;Name=YNL172W;Alias=APC1 -chrXIV SGD CDS 316169 317671 . - . ID=YNL169C;Name=YNL169C;Alias=PSD1 -chrXIV SGD CDS 318030 318809 . - . ID=YNL168C;Name=YNL168C;Alias=FMP41 -chrXIV SGD CDS 319416 321359 . - . ID=YNL167C;Name=YNL167C;Alias=SKO1 -chrXIV SGD CDS 322219 323565 . - . ID=YNL166C;Name=YNL166C;Alias=BNI5 -chrXIV SGD CDS 323832 325052 . + . ID=YNL165W;Name=YNL165W;Alias= -chrXIV SGD CDS 325265 326320 . - . ID=YNL164C;Name=YNL164C;Alias=IBD2 -chrXIV SGD CDS 326741 330073 . - . ID=YNL163C;Name=YNL163C;Alias=RIA1 -chrXIV SGD CDS 330329 330547 . + . ID=YNL162W-A;Name=YNL162W-A;Alias= -chrXIV SGD CDS 331322 332154 . + . ID=YNL162W;Name=YNL162W;Alias=RPL42A -chrXIV SGD CDS 332597 334867 . + . ID=YNL161W;Name=YNL161W;Alias=CBK1 -chrXIV SGD CDS 336545 337609 . + . ID=YNL160W;Name=YNL160W;Alias=YGP1 -chrXIV SGD CDS 338478 339347 . - . ID=YNL159C;Name=YNL159C;Alias=ASI2 -chrXIV SGD CDS 339612 340208 . + . ID=YNL158W;Name=YNL158W;Alias=PGA1 -chrXIV SGD CDS 340352 340858 . + . ID=YNL157W;Name=YNL157W;Alias=IGO1 -chrXIV SGD CDS 341069 341968 . - . ID=YNL156C;Name=YNL156C;Alias=NSG2 -chrXIV SGD CDS 342516 343340 . + . ID=YNL155W;Name=YNL155W;Alias=CUZ1 -chrXIV SGD CDS 343636 345276 . - . ID=YNL154C;Name=YNL154C;Alias=YCK2 -chrXIV SGD CDS 345669 346058 . - . ID=YNL153C;Name=YNL153C;Alias=GIM3 -chrXIV SGD CDS 346313 347542 . + . ID=YNL152W;Name=YNL152W;Alias=INN1 -chrXIV SGD CDS 347766 348521 . - . ID=YNL151C;Name=YNL151C;Alias=RPC31 -chrXIV SGD CDS 349367 349756 . - . ID=YNL149C;Name=YNL149C;Alias=PGA2 -chrXIV SGD CDS 349907 350671 . - . ID=YNL148C;Name=YNL148C;Alias=ALF1 -chrXIV SGD CDS 350940 351383 . + . ID=YNL147W;Name=YNL147W;Alias=LSM7 -chrXIV SGD CDS 351386 351580 . - . ID=YNL146C-A;Name=YNL146C-A;Alias= -chrXIV SGD CDS 351715 352017 . + . ID=YNL146W;Name=YNL146W;Alias= -chrXIV SGD CDS 352414 352530 . + . ID=YNL145W;Name=YNL145W;Alias=MFA2 -chrXIV SGD CDS 352820 355042 . - . ID=YNL144C;Name=YNL144C;Alias= -chrXIV SGD CDS 356794 357186 . - . ID=YNL143C;Name=YNL143C;Alias= -chrXIV SGD CDS 357453 358952 . + . ID=YNL142W;Name=YNL142W;Alias=MEP2 -chrXIV SGD CDS 359596 360639 . + . ID=YNL141W;Name=YNL141W;Alias=AAH1 -chrXIV SGD CDS 360917 361486 . - . ID=YNL140C;Name=YNL140C;Alias= -chrXIV SGD CDS 360924 365717 . - . ID=YNL139C;Name=YNL139C;Alias=THO2 -chrXIV SGD CDS 366033 366412 . + . ID=YNL138W-A;Name=YNL138W-A;Alias=YSF3 -chrXIV SGD CDS 366741 368321 . + . ID=YNL138W;Name=YNL138W;Alias=SRV2 -chrXIV SGD CDS 368595 370055 . - . ID=YNL137C;Name=YNL137C;Alias=NAM9 -chrXIV SGD CDS 370368 371645 . + . ID=YNL136W;Name=YNL136W;Alias=EAF7 -chrXIV SGD CDS 371882 372226 . - . ID=YNL135C;Name=YNL135C;Alias=FPR1 -chrXIV SGD CDS 372451 373581 . - . ID=YNL134C;Name=YNL134C;Alias= -chrXIV SGD CDS 374171 374692 . - . ID=YNL133C;Name=YNL133C;Alias=FYV6 -chrXIV SGD CDS 375321 378491 . + . ID=YNL132W;Name=YNL132W;Alias=KRE33 -chrXIV SGD CDS 378767 379225 . + . ID=YNL131W;Name=YNL131W;Alias=TOM22 -chrXIV SGD CDS 379558 380831 . - . ID=YNL130C;Name=YNL130C;Alias=CPT1 -chrXIV SGD CDS 381245 381391 . - . ID=YNL130C-A;Name=YNL130C-A;Alias=DGR1 -chrXIV SGD CDS 381480 382202 . + . ID=YNL129W;Name=YNL129W;Alias=NRK1 -chrXIV SGD CDS 382359 383663 . + . ID=YNL128W;Name=YNL128W;Alias=TEP1 -chrXIV SGD CDS 383987 386848 . + . ID=YNL127W;Name=YNL127W;Alias=FAR11 -chrXIV SGD CDS 387227 389767 . + . ID=YNL126W;Name=YNL126W;Alias=SPC98 -chrXIV SGD CDS 390146 392167 . - . ID=YNL125C;Name=YNL125C;Alias=ESBP6 -chrXIV SGD CDS 392892 394370 . + . ID=YNL124W;Name=YNL124W;Alias=NAF1 -chrXIV SGD CDS 394685 397678 . + . ID=YNL123W;Name=YNL123W;Alias=NMA111 -chrXIV SGD CDS 398023 398370 . - . ID=YNL122C;Name=YNL122C;Alias= -chrXIV SGD CDS 398684 400537 . - . ID=YNL121C;Name=YNL121C;Alias=TOM70 -chrXIV SGD CDS 401040 402521 . + . ID=YNL119W;Name=YNL119W;Alias=NCS2 -chrXIV SGD CDS 402652 405564 . - . ID=YNL118C;Name=YNL118C;Alias=DCP2 -chrXIV SGD CDS 406358 408022 . + . ID=YNL117W;Name=YNL117W;Alias=MLS1 -chrXIV SGD CDS 408341 409909 . + . ID=YNL116W;Name=YNL116W;Alias=DMA2 -chrXIV SGD CDS 410119 412053 . - . ID=YNL115C;Name=YNL115C;Alias= -chrXIV SGD CDS 412771 413199 . + . ID=YNL113W;Name=YNL113W;Alias=RPC19 -chrXIV SGD CDS 413639 416281 . + . ID=YNL112W;Name=YNL112W;Alias=DBP2 -chrXIV SGD CDS 416940 417302 . - . ID=YNL111C;Name=YNL111C;Alias=CYB5 -chrXIV SGD CDS 417826 418488 . - . ID=YNL110C;Name=YNL110C;Alias=NOP15 -chrXIV SGD CDS 419014 419826 . - . ID=YNL108C;Name=YNL108C;Alias= -chrXIV SGD CDS 420098 420778 . + . ID=YNL107W;Name=YNL107W;Alias=YAF9 -chrXIV SGD CDS 420944 424495 . - . ID=YNL106C;Name=YNL106C;Alias=INP52 -chrXIV SGD CDS 424895 426754 . - . ID=YNL104C;Name=YNL104C;Alias=LEU4 -chrXIV SGD CDS 427735 429753 . + . ID=YNL103W;Name=YNL103W;Alias=MET4 -chrXIV SGD CDS 430087 434493 . + . ID=YNL102W;Name=YNL102W;Alias=POL1 -chrXIV SGD CDS 434999 437140 . + . ID=YNL101W;Name=YNL101W;Alias=AVT4 -chrXIV SGD CDS 437613 438317 . + . ID=YNL100W;Name=YNL100W;Alias=MIC27 -chrXIV SGD CDS 438567 439283 . - . ID=YNL099C;Name=YNL099C;Alias=OCA1 -chrXIV SGD CDS 439602 440570 . - . ID=YNL098C;Name=YNL098C;Alias=RAS2 -chrXIV SGD CDS 440797 440919 . - . ID=YNL097C-B;Name=YNL097C-B;Alias= -chrXIV SGD CDS 441366 442358 . - . ID=YNL097C;Name=YNL097C;Alias=PHO23 -chrXIV SGD CDS 443398 444315 . - . ID=YNL096C;Name=YNL096C;Alias=RPS7B -chrXIV SGD CDS 444912 446840 . - . ID=YNL095C;Name=YNL095C;Alias= -chrXIV SGD CDS 447611 449374 . + . ID=YNL094W;Name=YNL094W;Alias=APP1 -chrXIV SGD CDS 449868 450530 . + . ID=YNL093W;Name=YNL093W;Alias=YPT53 -chrXIV SGD CDS 450871 452073 . + . ID=YNL092W;Name=YNL092W;Alias= -chrXIV SGD CDS 452408 456130 . + . ID=YNL091W;Name=YNL091W;Alias=NST1 -chrXIV SGD CDS 456565 457143 . + . ID=YNL090W;Name=YNL090W;Alias=RHO2 -chrXIV SGD CDS 457704 461990 . + . ID=YNL088W;Name=YNL088W;Alias=TOP2 -chrXIV SGD CDS 462411 465947 . + . ID=YNL087W;Name=YNL087W;Alias=TCB2 -chrXIV SGD CDS 466334 466642 . + . ID=YNL086W;Name=YNL086W;Alias=SNN1 -chrXIV SGD CDS 467131 469623 . + . ID=YNL085W;Name=YNL085W;Alias=MKT1 -chrXIV SGD CDS 470053 471102 . - . ID=YNL084C;Name=YNL084C;Alias=END3 -chrXIV SGD CDS 471377 472861 . + . ID=YNL083W;Name=YNL083W;Alias=SAL1 -chrXIV SGD CDS 473391 476012 . + . ID=YNL082W;Name=YNL082W;Alias=PMS1 -chrXIV SGD CDS 476188 476619 . - . ID=YNL081C;Name=YNL081C;Alias=SWS2 -chrXIV SGD CDS 476932 478032 . - . ID=YNL080C;Name=YNL080C;Alias=EOS1 -chrXIV SGD CDS 478566 479165 . - . ID=YNL079C;Name=YNL079C;Alias=TPM1 -chrXIV SGD CDS 479768 480991 . + . ID=YNL078W;Name=YNL078W;Alias=NIS1 -chrXIV SGD CDS 481391 482977 . + . ID=YNL077W;Name=YNL077W;Alias=APJ1 -chrXIV SGD CDS 483556 485310 . + . ID=YNL076W;Name=YNL076W;Alias=MKS1 -chrXIV SGD CDS 485607 486479 . + . ID=YNL075W;Name=YNL075W;Alias=IMP4 -chrXIV SGD CDS 486766 488124 . - . ID=YNL074C;Name=YNL074C;Alias=MLF3 -chrXIV SGD CDS 488386 490116 . + . ID=YNL073W;Name=YNL073W;Alias=MSK1 -chrXIV SGD CDS 490317 491240 . + . ID=YNL072W;Name=YNL072W;Alias=RNH201 -chrXIV SGD CDS 491523 492971 . + . ID=YNL071W;Name=YNL071W;Alias=LAT1 -chrXIV SGD CDS 493366 493548 . + . ID=YNL070W;Name=YNL070W;Alias=TOM7 -chrXIV SGD CDS 493956 495001 . - . ID=YNL069C;Name=YNL069C;Alias=RPL16B -chrXIV SGD CDS 495701 498289 . - . ID=YNL068C;Name=YNL068C;Alias=FKH2 -chrXIV SGD CDS 499417 499557 . + . ID=YNL067W-B;Name=YNL067W-B;Alias= -chrXIV SGD CDS 499681 500256 . + . ID=YNL067W;Name=YNL067W;Alias=RPL9B -chrXIV SGD CDS 501157 502777 . + . ID=YNL066W;Name=YNL066W;Alias=SUN4 -chrXIV SGD CDS 503724 505484 . + . ID=YNL065W;Name=YNL065W;Alias=AQR1 -chrXIV SGD CDS 505868 507097 . - . ID=YNL064C;Name=YNL064C;Alias=YDJ1 -chrXIV SGD CDS 507758 508702 . + . ID=YNL063W;Name=YNL063W;Alias=MTQ1 -chrXIV SGD CDS 508776 510212 . - . ID=YNL062C;Name=YNL062C;Alias=GCD10 -chrXIV SGD CDS 510540 512396 . + . ID=YNL061W;Name=YNL061W;Alias=NOP2 -chrXIV SGD CDS 512668 514935 . - . ID=YNL059C;Name=YNL059C;Alias=ARP5 -chrXIV SGD CDS 515763 516713 . - . ID=YNL058C;Name=YNL058C;Alias= -chrXIV SGD CDS 517249 517842 . + . ID=YNL056W;Name=YNL056W;Alias=OCA2 -chrXIV SGD CDS 517994 518845 . - . ID=YNL055C;Name=YNL055C;Alias=POR1 -chrXIV SGD CDS 526086 529583 . + . ID=YNL054W;Name=YNL054W;Alias=VAC7 -chrXIV SGD CDS 529942 531411 . + . ID=YNL053W;Name=YNL053W;Alias=MSG5 -chrXIV SGD CDS 531725 532186 . + . ID=YNL052W;Name=YNL052W;Alias=COX5A -chrXIV SGD CDS 532659 533870 . + . ID=YNL051W;Name=YNL051W;Alias=COG5 -chrXIV SGD CDS 534079 534982 . - . ID=YNL050C;Name=YNL050C;Alias= -chrXIV SGD CDS 535281 537911 . - . ID=YNL049C;Name=YNL049C;Alias=SFB2 -chrXIV SGD CDS 538173 539819 . + . ID=YNL048W;Name=YNL048W;Alias=ALG11 -chrXIV SGD CDS 539911 541881 . - . ID=YNL047C;Name=YNL047C;Alias=SLM2 -chrXIV SGD CDS 542304 542822 . + . ID=YNL046W;Name=YNL046W;Alias= -chrXIV SGD CDS 542963 544978 . + . ID=YNL045W;Name=YNL045W;Alias=LAP2 -chrXIV SGD CDS 545268 545877 . + . ID=YNL044W;Name=YNL044W;Alias=YIP3 -chrXIV SGD CDS 547113 547370 . + . ID=YNL042W-B;Name=YNL042W-B;Alias= -chrXIV SGD CDS 548100 549290 . + . ID=YNL042W;Name=YNL042W;Alias=BOP3 -chrXIV SGD CDS 549468 551987 . - . ID=YNL041C;Name=YNL041C;Alias=COG6 -chrXIV SGD CDS 553380 554750 . + . ID=YNL040W;Name=YNL040W;Alias= -chrXIV SGD CDS 555048 556832 . + . ID=YNL039W;Name=YNL039W;Alias=BDP1 -chrXIV SGD CDS 557020 557783 . + . ID=YNL038W;Name=YNL038W;Alias=GPI15 -chrXIV SGD CDS 557920 559002 . - . ID=YNL037C;Name=YNL037C;Alias=IDH1 -chrXIV SGD CDS 559814 560479 . + . ID=YNL036W;Name=YNL036W;Alias=NCE103 -chrXIV SGD CDS 568522 569691 . - . ID=YNL035C;Name=YNL035C;Alias= -chrXIV SGD CDS 570477 572315 . + . ID=YNL034W;Name=YNL034W;Alias= -chrXIV SGD CDS 572999 573853 . + . ID=YNL033W;Name=YNL033W;Alias= -chrXIV SGD CDS 574506 575351 . + . ID=YNL032W;Name=YNL032W;Alias=SIW14 -chrXIV SGD CDS 575640 576050 . - . ID=YNL031C;Name=YNL031C;Alias=HHT2 -chrXIV SGD CDS 576727 577038 . + . ID=YNL030W;Name=YNL030W;Alias=HHF2 -chrXIV SGD CDS 577205 578773 . - . ID=YNL029C;Name=YNL029C;Alias=KTR5 -chrXIV SGD CDS 579580 581616 . + . ID=YNL027W;Name=YNL027W;Alias=CRZ1 -chrXIV SGD CDS 581920 583374 . + . ID=YNL026W;Name=YNL026W;Alias=SAM50 -chrXIV SGD CDS 584320 585291 . - . ID=YNL025C;Name=YNL025C;Alias=SSN8 -chrXIV SGD CDS 586602 586820 . - . ID=YNL024C-A;Name=YNL024C-A;Alias=KSH1 -chrXIV SGD CDS 587107 587847 . - . ID=YNL024C;Name=YNL024C;Alias=EFM6 -chrXIV SGD CDS 588263 591160 . - . ID=YNL023C;Name=YNL023C;Alias=FAP1 -chrXIV SGD CDS 591427 592899 . - . ID=YNL022C;Name=YNL022C;Alias=RCM1 -chrXIV SGD CDS 593227 595347 . + . ID=YNL021W;Name=YNL021W;Alias=HDA1 -chrXIV SGD CDS 595623 597539 . - . ID=YNL020C;Name=YNL020C;Alias=ARK1 -chrXIV SGD CDS 598376 599230 . - . ID=YNL019C;Name=YNL019C;Alias= -chrXIV SGD CDS 599936 601774 . - . ID=YNL018C;Name=YNL018C;Alias= -chrXIV SGD CDS 602907 604268 . + . ID=YNL016W;Name=YNL016W;Alias=PUB1 -chrXIV SGD CDS 605384 605611 . + . ID=YNL015W;Name=YNL015W;Alias=PBI2 -chrXIV SGD CDS 606319 609453 . + . ID=YNL014W;Name=YNL014W;Alias=HEF3 -chrXIV SGD CDS 609686 611665 . + . ID=YNL012W;Name=YNL012W;Alias=SPO1 -chrXIV SGD CDS 611836 613170 . - . ID=YNL011C;Name=YNL011C;Alias= -chrXIV SGD CDS 613635 614360 . + . ID=YNL010W;Name=YNL010W;Alias= -chrXIV SGD CDS 614821 616083 . + . ID=YNL009W;Name=YNL009W;Alias=IDP3 -chrXIV SGD CDS 616211 618241 . - . ID=YNL008C;Name=YNL008C;Alias=ASI3 -chrXIV SGD CDS 618507 619565 . - . ID=YNL007C;Name=YNL007C;Alias=SIS1 -chrXIV SGD CDS 620067 620978 . + . ID=YNL006W;Name=YNL006W;Alias=LST8 -chrXIV SGD CDS 621313 622428 . - . ID=YNL005C;Name=YNL005C;Alias=MRP7 -chrXIV SGD CDS 622915 624621 . + . ID=YNL004W;Name=YNL004W;Alias=HRB1 -chrXIV SGD CDS 624975 625829 . - . ID=YNL003C;Name=YNL003C;Alias=PET8 -chrXIV SGD CDS 626174 627142 . - . ID=YNL002C;Name=YNL002C;Alias=RLP7 -chrXIV SGD CDS 627456 628616 . + . ID=YNL001W;Name=YNL001W;Alias=DOM34 -chrXIV SGD CDS 629622 631061 . - . ID=YNR001C;Name=YNR001C;Alias=CIT1 -chrXIV SGD CDS 633008 633856 . - . ID=YNR002C;Name=YNR002C;Alias=ATO2 -chrXIV SGD CDS 634344 635297 . - . ID=YNR003C;Name=YNR003C;Alias=RPC34 -chrXIV SGD CDS 635943 636383 . + . ID=YNR004W;Name=YNR004W;Alias=SWM2 -chrXIV SGD CDS 636986 638854 . + . ID=YNR006W;Name=YNR006W;Alias=VPS27 -chrXIV SGD CDS 639182 640114 . - . ID=YNR007C;Name=YNR007C;Alias=ATG3 -chrXIV SGD CDS 640396 642381 . + . ID=YNR008W;Name=YNR008W;Alias=LRO1 -chrXIV SGD CDS 642690 643439 . + . ID=YNR009W;Name=YNR009W;Alias=NRM1 -chrXIV SGD CDS 643744 644193 . + . ID=YNR010W;Name=YNR010W;Alias=CSE2 -chrXIV SGD CDS 644320 646950 . - . ID=YNR011C;Name=YNR011C;Alias=PRP2 -chrXIV SGD CDS 647432 648937 . + . ID=YNR012W;Name=YNR012W;Alias=URK1 -chrXIV SGD CDS 649028 651712 . - . ID=YNR013C;Name=YNR013C;Alias=PHO91 -chrXIV SGD CDS 652465 653103 . + . ID=YNR014W;Name=YNR014W;Alias= -chrXIV SGD CDS 653387 654541 . + . ID=YNR015W;Name=YNR015W;Alias=SMM1 -chrXIV SGD CDS 654673 661374 . - . ID=YNR016C;Name=YNR016C;Alias=ACC1 -chrXIV SGD CDS 662913 663581 . + . ID=YNR017W;Name=YNR017W;Alias=TIM23 -chrXIV SGD CDS 664270 664944 . + . ID=YNR018W;Name=YNR018W;Alias=RCF2 -chrXIV SGD CDS 665339 667267 . + . ID=YNR019W;Name=YNR019W;Alias=ARE2 -chrXIV SGD CDS 667410 668222 . - . ID=YNR020C;Name=YNR020C;Alias=ATP23 -chrXIV SGD CDS 668377 669591 . + . ID=YNR021W;Name=YNR021W;Alias= -chrXIV SGD CDS 669774 670193 . - . ID=YNR022C;Name=YNR022C;Alias=MRPL50 -chrXIV SGD CDS 670418 672118 . + . ID=YNR023W;Name=YNR023W;Alias=SNF12 -chrXIV SGD CDS 672409 672969 . + . ID=YNR024W;Name=YNR024W;Alias=MPP6 -chrXIV SGD CDS 673274 674689 . - . ID=YNR026C;Name=YNR026C;Alias=SEC12 -chrXIV SGD CDS 674923 675876 . + . ID=YNR027W;Name=YNR027W;Alias=BUD17 -chrXIV SGD CDS 676177 677103 . + . ID=YNR028W;Name=YNR028W;Alias=CPR8 -chrXIV SGD CDS 677199 678488 . - . ID=YNR029C;Name=YNR029C;Alias= -chrXIV SGD CDS 678799 680454 . + . ID=YNR030W;Name=YNR030W;Alias=ALG12 -chrXIV SGD CDS 680694 685433 . - . ID=YNR031C;Name=YNR031C;Alias=SSK2 -chrXIV SGD CDS 686010 687116 . + . ID=YNR032W;Name=YNR032W;Alias=PPG1 -chrXIV SGD CDS 687243 687464 . - . ID=YNR032C-A;Name=YNR032C-A;Alias=HUB1 -chrXIV SGD CDS 687635 689998 . + . ID=YNR033W;Name=YNR033W;Alias=ABZ1 -chrXIV SGD CDS 690321 691286 . + . ID=YNR034W;Name=YNR034W;Alias=SOL1 -chrXIV SGD CDS 692561 692857 . + . ID=YNR034W-A;Name=YNR034W-A;Alias=EGO4 -chrXIV SGD CDS 693019 694047 . - . ID=YNR035C;Name=YNR035C;Alias=ARC35 -chrXIV SGD CDS 694361 694822 . - . ID=YNR036C;Name=YNR036C;Alias=MRPS12 -chrXIV SGD CDS 695052 695327 . - . ID=YNR037C;Name=YNR037C;Alias=RSM19 -chrXIV SGD CDS 695595 697484 . + . ID=YNR038W;Name=YNR038W;Alias=DBP6 -chrXIV SGD CDS 697614 699431 . - . ID=YNR039C;Name=YNR039C;Alias=ZRG17 -chrXIV SGD CDS 699690 700460 . + . ID=YNR040W;Name=YNR040W;Alias= -chrXIV SGD CDS 700541 701659 . - . ID=YNR041C;Name=YNR041C;Alias=COQ2 -chrXIV SGD CDS 701895 703085 . + . ID=YNR043W;Name=YNR043W;Alias=MVD1 -chrXIV SGD CDS 703699 705876 . + . ID=YNR044W;Name=YNR044W;Alias=AGA1 -chrXIV SGD CDS 706139 707608 . + . ID=YNR045W;Name=YNR045W;Alias=PET494 -chrXIV SGD CDS 707788 708195 . + . ID=YNR046W;Name=YNR046W;Alias=TRM112 -chrXIV SGD CDS 708523 711204 . + . ID=YNR047W;Name=YNR047W;Alias=FPK1 -chrXIV SGD CDS 711630 712811 . + . ID=YNR048W;Name=YNR048W;Alias= -chrXIV SGD CDS 713023 713655 . - . ID=YNR049C;Name=YNR049C;Alias=MSO1 -chrXIV SGD CDS 714048 715388 . - . ID=YNR050C;Name=YNR050C;Alias=LYS9 -chrXIV SGD CDS 716780 718327 . - . ID=YNR051C;Name=YNR051C;Alias=BRE5 -chrXIV SGD CDS 719346 720647 . - . ID=YNR052C;Name=YNR052C;Alias=POP2 -chrXIV SGD CDS 721120 723112 . - . ID=YNR053C;Name=YNR053C;Alias=NOG2 -chrXIV SGD CDS 723356 724306 . - . ID=YNR054C;Name=YNR054C;Alias=ESF2 -chrXIV SGD CDS 728426 730186 . - . ID=YNR055C;Name=YNR055C;Alias=HOL1 -chrXIV SGD CDS 731618 733303 . - . ID=YNR056C;Name=YNR056C;Alias=BIO5 -chrXIV SGD CDS 733356 734069 . - . ID=YNR057C;Name=YNR057C;Alias=BIO4 -chrXIV SGD CDS 734291 735733 . + . ID=YNR058W;Name=YNR058W;Alias=BIO3 -chrXIV SGD CDS 736803 738545 . + . ID=YNR059W;Name=YNR059W;Alias=MNT4 -chrXIV SGD CDS 739951 742110 . + . ID=YNR060W;Name=YNR060W;Alias=FRE4 -chrXIV SGD CDS 742881 743540 . - . ID=YNR061C;Name=YNR061C;Alias= -chrXIV SGD CDS 744360 745343 . - . ID=YNR062C;Name=YNR062C;Alias= -chrXIV SGD CDS 746943 748766 . + . ID=YNR063W;Name=YNR063W;Alias= -chrXIV SGD CDS 749136 750008 . - . ID=YNR064C;Name=YNR064C;Alias= -chrXIV SGD CDS 750350 753700 . - . ID=YNR065C;Name=YNR065C;Alias= -chrXIV SGD CDS 753725 755035 . - . ID=YNR066C;Name=YNR066C;Alias= -chrXIV SGD CDS 755746 759099 . - . ID=YNR067C;Name=YNR067C;Alias=DSE4 -chrXIV SGD CDS 760067 760885 . - . ID=YNR068C;Name=YNR068C;Alias= -chrXIV SGD CDS 761123 762592 . - . ID=YNR069C;Name=YNR069C;Alias=BSC5 -chrXIV SGD CDS 765375 769376 . + . ID=YNR070W;Name=YNR070W;Alias=PDR18 -chrXIV SGD CDS 770440 771468 . - . ID=YNR071C;Name=YNR071C;Alias= -chrXIV SGD CDS 772657 774351 . + . ID=YNR072W;Name=YNR072W;Alias=HXT17 -chrXIV SGD CDS 774792 776300 . - . ID=YNR073C;Name=YNR073C;Alias=MAN2 -chrXIV SGD CDS 777602 778738 . - . ID=YNR074C;Name=YNR074C;Alias=AIF1 -chrXIV SGD CDS 779916 781040 . + . ID=YNR075W;Name=YNR075W;Alias=COS10 -chrXIV SGD CDS 781511 781603 . - . ID=YNR075C-A;Name=YNR075C-A;Alias= -chrXIV SGD CDS 781918 782280 . + . ID=YNR076W;Name=YNR076W;Alias=PAU6 -chrXIV SGD CDS 783287 783541 . - . ID=YNR077C;Name=YNR077C;Alias= -chrXV SGD CDS 585 740 . + . ID=YOL166W-A;Name=YOL166W-A;Alias= -chrXV SGD CDS 1647 2078 . - . ID=YOL165C;Name=YOL165C;Alias=AAD15 -chrXV SGD CDS 4130 4312 . + . ID=YOL164W-A;Name=YOL164W-A;Alias= -chrXV SGD CDS 6175 8115 . + . ID=YOL164W;Name=YOL164W;Alias=BDS1 -chrXV SGD CDS 9597 10106 . + . ID=YOL163W;Name=YOL163W;Alias= -chrXV SGD CDS 10119 10766 . + . ID=YOL162W;Name=YOL162W;Alias= -chrXV SGD CDS 11549 11911 . - . ID=YOL161C;Name=YOL161C;Alias=PAU20 -chrXV SGD CDS 15233 15505 . - . ID=YOL159C-A;Name=YOL159C-A;Alias= -chrXV SGD CDS 17281 17796 . - . ID=YOL159C;Name=YOL159C;Alias=CSS3 -chrXV SGD CDS 19491 21311 . - . ID=YOL158C;Name=YOL158C;Alias=ENB1 -chrXV SGD CDS 22525 24294 . - . ID=YOL157C;Name=YOL157C;Alias=IMA2 -chrXV SGD CDS 25273 26976 . + . ID=YOL156W;Name=YOL156W;Alias=HXT11 -chrXV SGD CDS 27084 27218 . + . ID=YOL155W-A;Name=YOL155W-A;Alias= -chrXV SGD CDS 28703 31606 . - . ID=YOL155C;Name=YOL155C;Alias=HPF1 -chrXV SGD CDS 34658 35407 . + . ID=YOL154W;Name=YOL154W;Alias=ZPS1 -chrXV SGD CDS 40748 42610 . + . ID=YOL152W;Name=YOL152W;Alias=FRE7 -chrXV SGD CDS 43694 44722 . + . ID=YOL151W;Name=YOL151W;Alias=GRE2 -chrXV SGD CDS 44938 45633 . + . ID=YOL149W;Name=YOL149W;Alias=DCP1 -chrXV SGD CDS 45760 47574 . - . ID=YOL148C;Name=YOL148C;Alias=SPT20 -chrXV SGD CDS 47933 48643 . - . ID=YOL147C;Name=YOL147C;Alias=PEX11 -chrXV SGD CDS 48864 49448 . + . ID=YOL146W;Name=YOL146W;Alias=PSF3 -chrXV SGD CDS 49555 52788 . - . ID=YOL145C;Name=YOL145C;Alias=CTR9 -chrXV SGD CDS 53098 54552 . + . ID=YOL144W;Name=YOL144W;Alias=NOP8 -chrXV SGD CDS 54595 55104 . - . ID=YOL143C;Name=YOL143C;Alias=RIB4 -chrXV SGD CDS 55558 56280 . + . ID=YOL142W;Name=YOL142W;Alias=RRP40 -chrXV SGD CDS 56452 58539 . + . ID=YOL141W;Name=YOL141W;Alias=PPM2 -chrXV SGD CDS 58759 60030 . + . ID=YOL140W;Name=YOL140W;Alias=ARG8 -chrXV SGD CDS 60383 61024 . - . ID=YOL139C;Name=YOL139C;Alias=CDC33 -chrXV SGD CDS 61325 65350 . - . ID=YOL138C;Name=YOL138C;Alias=RTC1 -chrXV SGD CDS 65621 67114 . + . ID=YOL137W;Name=YOL137W;Alias=BSC6 -chrXV SGD CDS 67561 68754 . - . ID=YOL136C;Name=YOL136C;Alias=PFK27 -chrXV SGD CDS 69376 70044 . - . ID=YOL135C;Name=YOL135C;Alias=MED7 -chrXV SGD CDS 70325 70690 . + . ID=YOL133W;Name=YOL133W;Alias=HRT1 -chrXV SGD CDS 71300 72715 . + . ID=YOL132W;Name=YOL132W;Alias=GAS4 -chrXV SGD CDS 73031 73357 . + . ID=YOL131W;Name=YOL131W;Alias= -chrXV SGD CDS 74400 76979 . + . ID=YOL130W;Name=YOL130W;Alias=ALR1 -chrXV SGD CDS 77560 78114 . + . ID=YOL129W;Name=YOL129W;Alias=VPS68 -chrXV SGD CDS 78352 79479 . - . ID=YOL128C;Name=YOL128C;Alias=YGK3 -chrXV SGD CDS 80348 81190 . + . ID=YOL127W;Name=YOL127W;Alias=RPL25 -chrXV SGD CDS 81787 82920 . - . ID=YOL126C;Name=YOL126C;Alias=MDH2 -chrXV SGD CDS 83834 85264 . + . ID=YOL125W;Name=YOL125W;Alias=TRM13 -chrXV SGD CDS 85456 86757 . - . ID=YOL124C;Name=YOL124C;Alias=TRM11 -chrXV SGD CDS 87844 89448 . + . ID=YOL123W;Name=YOL123W;Alias=HRP1 -chrXV SGD CDS 89692 91419 . - . ID=YOL122C;Name=YOL122C;Alias=SMF1 -chrXV SGD CDS 92026 92850 . - . ID=YOL121C;Name=YOL121C;Alias=RPS19A -chrXV SGD CDS 93395 94402 . - . ID=YOL120C;Name=YOL120C;Alias=RPL18A -chrXV SGD CDS 94856 96361 . - . ID=YOL119C;Name=YOL119C;Alias=MCH4 -chrXV SGD CDS 97551 99488 . + . ID=YOL117W;Name=YOL117W;Alias=RRI2 -chrXV SGD CDS 99809 100957 . + . ID=YOL116W;Name=YOL116W;Alias=MSN1 -chrXV SGD CDS 101475 103229 . + . ID=YOL115W;Name=YOL115W;Alias=PAP2 -chrXV SGD CDS 103317 103925 . - . ID=YOL114C;Name=YOL114C;Alias=PTH4 -chrXV SGD CDS 104326 106293 . + . ID=YOL113W;Name=YOL113W;Alias=SKM1 -chrXV SGD CDS 106710 108188 . + . ID=YOL112W;Name=YOL112W;Alias=MSB4 -chrXV SGD CDS 108258 108896 . - . ID=YOL111C;Name=YOL111C;Alias=MDY2 -chrXV SGD CDS 109176 109889 . + . ID=YOL110W;Name=YOL110W;Alias=SHR5 -chrXV SGD CDS 110297 110638 . + . ID=YOL109W;Name=YOL109W;Alias=ZEO1 -chrXV SGD CDS 111431 111886 . - . ID=YOL108C;Name=YOL108C;Alias=INO4 -chrXV SGD CDS 112102 113130 . + . ID=YOL107W;Name=YOL107W;Alias= -chrXV SGD CDS 114138 115808 . - . ID=YOL105C;Name=YOL105C;Alias=WSC3 -chrXV SGD CDS 116396 117454 . - . ID=YOL104C;Name=YOL104C;Alias=NDJ1 -chrXV SGD CDS 124001 125830 . + . ID=YOL103W;Name=YOL103W;Alias=ITR2 -chrXV SGD CDS 125997 126689 . - . ID=YOL102C;Name=YOL102C;Alias=TPT1 -chrXV SGD CDS 126982 127920 . - . ID=YOL101C;Name=YOL101C;Alias=IZH4 -chrXV SGD CDS 129237 132482 . + . ID=YOL100W;Name=YOL100W;Alias=PKH2 -chrXV SGD CDS 132725 135838 . - . ID=YOL098C;Name=YOL098C;Alias=SDD3 -chrXV SGD CDS 136220 136405 . + . ID=YOL097W-A;Name=YOL097W-A;Alias= -chrXV SGD CDS 136527 137825 . - . ID=YOL097C;Name=YOL097C;Alias=WRS1 -chrXV SGD CDS 138107 139045 . - . ID=YOL096C;Name=YOL096C;Alias=COQ3 -chrXV SGD CDS 139227 141347 . - . ID=YOL095C;Name=YOL095C;Alias=HMI1 -chrXV SGD CDS 141584 142555 . - . ID=YOL094C;Name=YOL094C;Alias=RFC4 -chrXV SGD CDS 142815 143696 . + . ID=YOL093W;Name=YOL093W;Alias=TRM10 -chrXV SGD CDS 144204 145130 . + . ID=YOL092W;Name=YOL092W;Alias=YPQ1 -chrXV SGD CDS 145334 147163 . + . ID=YOL091W;Name=YOL091W;Alias=SPO21 -chrXV SGD CDS 147382 150276 . + . ID=YOL090W;Name=YOL090W;Alias=MSH2 -chrXV SGD CDS 150398 153490 . - . ID=YOL089C;Name=YOL089C;Alias=HAL9 -chrXV SGD CDS 153912 154745 . - . ID=YOL088C;Name=YOL088C;Alias=MPD2 -chrXV SGD CDS 155287 158637 . - . ID=YOL087C;Name=YOL087C;Alias=DUF1 -chrXV SGD CDS 159173 159445 . + . ID=YOL086W-A;Name=YOL086W-A;Alias=MHF1 -chrXV SGD CDS 159548 160594 . - . ID=YOL086C;Name=YOL086C;Alias=ADH1 -chrXV SGD CDS 162356 165331 . + . ID=YOL084W;Name=YOL084W;Alias=PHM7 -chrXV SGD CDS 165714 166952 . + . ID=YOL083W;Name=YOL083W;Alias=ATG34 -chrXV SGD CDS 168727 169974 . + . ID=YOL082W;Name=YOL082W;Alias=ATG19 -chrXV SGD CDS 171070 180309 . + . ID=YOL081W;Name=YOL081W;Alias=IRA2 -chrXV SGD CDS 180558 181427 . - . ID=YOL080C;Name=YOL080C;Alias=REX4 -chrXV SGD CDS 181682 185212 . + . ID=YOL078W;Name=YOL078W;Alias=AVO1 -chrXV SGD CDS 185438 185644 . + . ID=YOL077W-A;Name=YOL077W-A;Alias=ATP19 -chrXV SGD CDS 185848 186723 . - . ID=YOL077C;Name=YOL077C;Alias=BRX1 -chrXV SGD CDS 187024 189414 . + . ID=YOL076W;Name=YOL076W;Alias=MDM20 -chrXV SGD CDS 189658 193542 . - . ID=YOL075C;Name=YOL075C;Alias= -chrXV SGD CDS 193832 194800 . - . ID=YOL073C;Name=YOL073C;Alias=DSC2 -chrXV SGD CDS 194970 196337 . + . ID=YOL072W;Name=YOL072W;Alias=THP1 -chrXV SGD CDS 196507 196995 . + . ID=YOL071W;Name=YOL071W;Alias=SDH5 -chrXV SGD CDS 197220 198725 . - . ID=YOL070C;Name=YOL070C;Alias=NBA1 -chrXV SGD CDS 198942 200297 . + . ID=YOL069W;Name=YOL069W;Alias=NUF2 -chrXV SGD CDS 200368 201879 . - . ID=YOL068C;Name=YOL068C;Alias=HST1 -chrXV SGD CDS 201985 202518 . - . ID=YOL067C;Name=YOL067C;Alias=RTG1 -chrXV SGD CDS 202696 204471 . - . ID=YOL066C;Name=YOL066C;Alias=RIB2 -chrXV SGD CDS 204731 205885 . - . ID=YOL065C;Name=YOL065C;Alias=INP54 -chrXV SGD CDS 206103 207176 . - . ID=YOL064C;Name=YOL064C;Alias=MET22 -chrXV SGD CDS 207392 210265 . - . ID=YOL063C;Name=YOL063C;Alias=CRT10 -chrXV SGD CDS 210520 211995 . - . ID=YOL062C;Name=YOL062C;Alias=APM4 -chrXV SGD CDS 212244 213734 . + . ID=YOL061W;Name=YOL061W;Alias=PRS5 -chrXV SGD CDS 214017 216137 . - . ID=YOL060C;Name=YOL060C;Alias=MAM3 -chrXV SGD CDS 217126 218448 . + . ID=YOL059W;Name=YOL059W;Alias=GPD2 -chrXV SGD CDS 219211 220473 . + . ID=YOL058W;Name=YOL058W;Alias=ARG1 -chrXV SGD CDS 220767 222902 . + . ID=YOL057W;Name=YOL057W;Alias= -chrXV SGD CDS 223268 224179 . + . ID=YOL056W;Name=YOL056W;Alias=GPM3 -chrXV SGD CDS 224420 226075 . - . ID=YOL055C;Name=YOL055C;Alias=THI20 -chrXV SGD CDS 228614 229834 . + . ID=YOL054W;Name=YOL054W;Alias=PSH1 -chrXV SGD CDS 230085 231272 . + . ID=YOL053W;Name=YOL053W;Alias=AIM39 -chrXV SGD CDS 231570 231755 . - . ID=YOL052C-A;Name=YOL052C-A;Alias=DDR2 -chrXV SGD CDS 232446 233636 . - . ID=YOL052C;Name=YOL052C;Alias=SPE2 -chrXV SGD CDS 234940 238185 . + . ID=YOL051W;Name=YOL051W;Alias=GAL11 -chrXV SGD CDS 238619 240094 . + . ID=YOL049W;Name=YOL049W;Alias=GSH2 -chrXV SGD CDS 240204 241310 . - . ID=YOL048C;Name=YOL048C;Alias=RRT8 -chrXV SGD CDS 241614 242747 . - . ID=YOL047C;Name=YOL047C;Alias=LDS2 -chrXV SGD CDS 243497 246802 . + . ID=YOL045W;Name=YOL045W;Alias=PSK2 -chrXV SGD CDS 247150 248301 . + . ID=YOL044W;Name=YOL044W;Alias=PEX15 -chrXV SGD CDS 248392 249534 . - . ID=YOL043C;Name=YOL043C;Alias=NTG2 -chrXV SGD CDS 249825 250916 . + . ID=YOL042W;Name=YOL042W;Alias=NGL1 -chrXV SGD CDS 251267 252646 . - . ID=YOL041C;Name=YOL041C;Alias=NOP12 -chrXV SGD CDS 253149 253577 . - . ID=YOL040C;Name=YOL040C;Alias=RPS15 -chrXV SGD CDS 254297 254617 . + . ID=YOL039W;Name=YOL039W;Alias=RPP2A -chrXV SGD CDS 254926 255021 . - . ID=YOL038C-A;Name=YOL038C-A;Alias= -chrXV SGD CDS 255337 256101 . + . ID=YOL038W;Name=YOL038W;Alias=PRE6 -chrXV SGD CDS 256745 259030 . + . ID=YOL036W;Name=YOL036W;Alias= -chrXV SGD CDS 259923 263204 . + . ID=YOL034W;Name=YOL034W;Alias=SMC5 -chrXV SGD CDS 263475 265085 . + . ID=YOL033W;Name=YOL033W;Alias=MSE1 -chrXV SGD CDS 265429 266169 . + . ID=YOL032W;Name=YOL032W;Alias=OPI10 -chrXV SGD CDS 266264 267529 . - . ID=YOL031C;Name=YOL031C;Alias=SIL1 -chrXV SGD CDS 268187 269641 . + . ID=YOL030W;Name=YOL030W;Alias=GAS5 -chrXV SGD CDS 269815 270420 . - . ID=YOL029C;Name=YOL029C;Alias= -chrXV SGD CDS 270633 271370 . - . ID=YOL028C;Name=YOL028C;Alias=YAP7 -chrXV SGD CDS 272003 273724 . - . ID=YOL027C;Name=YOL027C;Alias=MDM38 -chrXV SGD CDS 274012 274353 . - . ID=YOL026C;Name=YOL026C;Alias=MIM1 -chrXV SGD CDS 274957 276939 . + . ID=YOL025W;Name=YOL025W;Alias=LAG2 -chrXV SGD CDS 277086 277604 . + . ID=YOL024W;Name=YOL024W;Alias= -chrXV SGD CDS 278056 280086 . + . ID=YOL023W;Name=YOL023W;Alias=IFM1 -chrXV SGD CDS 280272 281498 . - . ID=YOL022C;Name=YOL022C;Alias=TSR4 -chrXV SGD CDS 282421 285426 . - . ID=YOL021C;Name=YOL021C;Alias=DIS3 -chrXV SGD CDS 286172 287950 . + . ID=YOL020W;Name=YOL020W;Alias=TAT2 -chrXV SGD CDS 288420 288572 . + . ID=YOL019W-A;Name=YOL019W-A;Alias= -chrXV SGD CDS 288898 290553 . + . ID=YOL019W;Name=YOL019W;Alias= -chrXV SGD CDS 290881 292074 . - . ID=YOL018C;Name=YOL018C;Alias=TLG2 -chrXV SGD CDS 292529 294673 . + . ID=YOL017W;Name=YOL017W;Alias=ESC8 -chrXV SGD CDS 294777 296120 . - . ID=YOL016C;Name=YOL016C;Alias=CMK2 -chrXV SGD CDS 297078 298838 . + . ID=YOL015W;Name=YOL015W;Alias=IRC10 -chrXV SGD CDS 299693 300067 . + . ID=YOL014W;Name=YOL014W;Alias= -chrXV SGD CDS 301047 301238 . + . ID=YOL013W-A;Name=YOL013W-A;Alias= -chrXV SGD CDS 301380 303035 . - . ID=YOL013C;Name=YOL013C;Alias=HRD1 -chrXV SGD CDS 303579 303983 . - . ID=YOL012C;Name=YOL012C;Alias=HTZ1 -chrXV SGD CDS 305349 307409 . + . ID=YOL011W;Name=YOL011W;Alias=PLB3 -chrXV SGD CDS 307938 309041 . + . ID=YOL010W;Name=YOL010W;Alias=RCL1 -chrXV SGD CDS 309324 310139 . - . ID=YOL009C;Name=YOL009C;Alias=MDM12 -chrXV SGD CDS 310312 310935 . + . ID=YOL008W;Name=YOL008W;Alias=COQ10 -chrXV SGD CDS 311342 312367 . - . ID=YOL007C;Name=YOL007C;Alias=CSI2 -chrXV SGD CDS 313078 315387 . - . ID=YOL006C;Name=YOL006C;Alias=TOP1 -chrXV SGD CDS 315813 316175 . - . ID=YOL005C;Name=YOL005C;Alias=RPB11 -chrXV SGD CDS 316938 321548 . + . ID=YOL004W;Name=YOL004W;Alias=SIN3 -chrXV SGD CDS 321858 322994 . - . ID=YOL003C;Name=YOL003C;Alias=PFA4 -chrXV SGD CDS 323411 324364 . - . ID=YOL002C;Name=YOL002C;Alias=IZH2 -chrXV SGD CDS 325249 326130 . + . ID=YOL001W;Name=YOL001W;Alias=PHO80 -chrXV SGD CDS 326832 329033 . + . ID=YOR001W;Name=YOR001W;Alias=RRP6 -chrXV SGD CDS 329417 331051 . + . ID=YOR002W;Name=YOR002W;Alias=ALG6 -chrXV SGD CDS 331455 332891 . + . ID=YOR003W;Name=YOR003W;Alias=YSP3 -chrXV SGD CDS 333592 334356 . + . ID=YOR004W;Name=YOR004W;Alias=UTP23 -chrXV SGD CDS 334509 337343 . - . ID=YOR005C;Name=YOR005C;Alias=DNL4 -chrXV SGD CDS 337680 338621 . - . ID=YOR006C;Name=YOR006C;Alias=TSR3 -chrXV SGD CDS 338938 339978 . - . ID=YOR007C;Name=YOR007C;Alias=SGT2 -chrXV SGD CDS 341278 342414 . - . ID=YOR008C;Name=YOR008C;Alias=SLG1 -chrXV SGD CDS 342857 343081 . - . ID=YOR008C-A;Name=YOR008C-A;Alias= -chrXV SGD CDS 344335 345798 . + . ID=YOR009W;Name=YOR009W;Alias=TIR4 -chrXV SGD CDS 346195 346950 . - . ID=YOR010C;Name=YOR010C;Alias=TIR2 -chrXV SGD CDS 349679 353863 . + . ID=YOR011W;Name=YOR011W;Alias=AUS1 -chrXV SGD CDS 355652 355858 . + . ID=YOR011W-A;Name=YOR011W-A;Alias= -chrXV SGD CDS 356543 356956 . + . ID=YOR012W;Name=YOR012W;Alias= -chrXV SGD CDS 357674 359947 . + . ID=YOR014W;Name=YOR014W;Alias=RTS1 -chrXV SGD CDS 360461 361084 . - . ID=YOR016C;Name=YOR016C;Alias=ERP4 -chrXV SGD CDS 361412 363814 . + . ID=YOR017W;Name=YOR017W;Alias=PET127 -chrXV SGD CDS 364369 366882 . + . ID=YOR018W;Name=YOR018W;Alias=ROD1 -chrXV SGD CDS 368127 370319 . + . ID=YOR019W;Name=YOR019W;Alias= -chrXV SGD CDS 370524 370844 . - . ID=YOR020C;Name=YOR020C;Alias=HSP10 -chrXV SGD CDS 371685 371957 . + . ID=YOR020W-A;Name=YOR020W-A;Alias= -chrXV SGD CDS 372798 373439 . - . ID=YOR021C;Name=YOR021C;Alias=SFM1 -chrXV SGD CDS 373710 375857 . - . ID=YOR022C;Name=YOR022C;Alias=DDL1 -chrXV SGD CDS 376012 377712 . - . ID=YOR023C;Name=YOR023C;Alias=AHC1 -chrXV SGD CDS 378219 379562 . + . ID=YOR025W;Name=YOR025W;Alias=HST3 -chrXV SGD CDS 379781 380806 . + . ID=YOR026W;Name=YOR026W;Alias=BUB3 -chrXV SGD CDS 381053 382822 . + . ID=YOR027W;Name=YOR027W;Alias=STI1 -chrXV SGD CDS 383533 384420 . - . ID=YOR028C;Name=YOR028C;Alias=CIN5 -chrXV SGD CDS 386825 388684 . + . ID=YOR030W;Name=YOR030W;Alias=DFG16 -chrXV SGD CDS 389771 391075 . - . ID=YOR032C;Name=YOR032C;Alias=HMS1 -chrXV SGD CDS 392176 392376 . + . ID=YOR032W-A;Name=YOR032W-A;Alias= -chrXV SGD CDS 392416 394524 . - . ID=YOR033C;Name=YOR033C;Alias=EXO1 -chrXV SGD CDS 394837 397086 . - . ID=YOR034C;Name=YOR034C;Alias=AKR2 -chrXV SGD CDS 397426 397668 . - . ID=YOR034C-A;Name=YOR034C-A;Alias= -chrXV SGD CDS 397735 400104 . - . ID=YOR035C;Name=YOR035C;Alias=SHE4 -chrXV SGD CDS 400348 401214 . + . ID=YOR036W;Name=YOR036W;Alias=PEP12 -chrXV SGD CDS 401555 402655 . + . ID=YOR037W;Name=YOR037W;Alias=CYC2 -chrXV SGD CDS 402761 405388 . - . ID=YOR038C;Name=YOR038C;Alias=HIR2 -chrXV SGD CDS 405768 406544 . + . ID=YOR039W;Name=YOR039W;Alias=CKB2 -chrXV SGD CDS 407064 407921 . + . ID=YOR040W;Name=YOR040W;Alias=GLO4 -chrXV SGD CDS 408425 409660 . + . ID=YOR042W;Name=YOR042W;Alias=CUE5 -chrXV SGD CDS 410870 412330 . + . ID=YOR043W;Name=YOR043W;Alias=WHI2 -chrXV SGD CDS 413007 413480 . + . ID=YOR044W;Name=YOR044W;Alias=IRC23 -chrXV SGD CDS 413852 414037 . + . ID=YOR045W;Name=YOR045W;Alias=TOM6 -chrXV SGD CDS 414459 415907 . - . ID=YOR046C;Name=YOR046C;Alias=DBP5 -chrXV SGD CDS 416347 417681 . - . ID=YOR047C;Name=YOR047C;Alias=STD1 -chrXV SGD CDS 418630 421650 . - . ID=YOR048C;Name=YOR048C;Alias=RAT1 -chrXV SGD CDS 422668 423732 . - . ID=YOR049C;Name=YOR049C;Alias=RSB1 -chrXV SGD CDS 424846 426084 . - . ID=YOR051C;Name=YOR051C;Alias=ETT1 -chrXV SGD CDS 426772 427224 . - . ID=YOR052C;Name=YOR052C;Alias=TMC1 -chrXV SGD CDS 427833 429857 . - . ID=YOR054C;Name=YOR054C;Alias=VHS3 -chrXV SGD CDS 430247 431626 . - . ID=YOR056C;Name=YOR056C;Alias=NOB1 -chrXV SGD CDS 432186 433373 . + . ID=YOR057W;Name=YOR057W;Alias=SGT1 -chrXV SGD CDS 433688 436345 . - . ID=YOR058C;Name=YOR058C;Alias=ASE1 -chrXV SGD CDS 438906 440258 . - . ID=YOR059C;Name=YOR059C;Alias=LPL1 -chrXV SGD CDS 440390 441163 . - . ID=YOR060C;Name=YOR060C;Alias=SLD7 -chrXV SGD CDS 441534 442553 . + . ID=YOR061W;Name=YOR061W;Alias=CKA2 -chrXV SGD CDS 442725 443531 . - . ID=YOR062C;Name=YOR062C;Alias= -chrXV SGD CDS 444686 445849 . + . ID=YOR063W;Name=YOR063W;Alias=RPL3 -chrXV SGD CDS 446079 446738 . - . ID=YOR064C;Name=YOR064C;Alias=YNG1 -chrXV SGD CDS 447439 448368 . + . ID=YOR065W;Name=YOR065W;Alias=CYT1 -chrXV SGD CDS 449436 451325 . + . ID=YOR066W;Name=YOR066W;Alias=MSA1 -chrXV SGD CDS 451729 453462 . - . ID=YOR067C;Name=YOR067C;Alias=ALG8 -chrXV SGD CDS 453768 455795 . + . ID=YOR069W;Name=YOR069W;Alias=VPS5 -chrXV SGD CDS 453869 454213 . - . ID=YOR068C;Name=YOR068C;Alias=VAM10 -chrXV SGD CDS 455907 457820 . - . ID=YOR070C;Name=YOR070C;Alias=GYP1 -chrXV SGD CDS 459480 461276 . - . ID=YOR071C;Name=YOR071C;Alias=NRT1 -chrXV SGD CDS 464469 464630 . + . ID=YOR072W-B;Name=YOR072W-B;Alias= -chrXV SGD CDS 464771 466543 . + . ID=YOR073W;Name=YOR073W;Alias=SGO1 -chrXV SGD CDS 466675 467589 . - . ID=YOR074C;Name=YOR074C;Alias=CDC21 -chrXV SGD CDS 468212 469252 . + . ID=YOR075W;Name=YOR075W;Alias=UFE1 -chrXV SGD CDS 469377 471620 . - . ID=YOR076C;Name=YOR076C;Alias=SKI7 -chrXV SGD CDS 471899 472597 . + . ID=YOR077W;Name=YOR077W;Alias=RTS2 -chrXV SGD CDS 472725 473369 . + . ID=YOR078W;Name=YOR078W;Alias=BUD21 -chrXV SGD CDS 473475 474416 . - . ID=YOR079C;Name=YOR079C;Alias=ATX2 -chrXV SGD CDS 474594 476792 . + . ID=YOR080W;Name=YOR080W;Alias=DIA2 -chrXV SGD CDS 476939 479188 . - . ID=YOR081C;Name=YOR081C;Alias=TGL5 -chrXV SGD CDS 479533 480420 . + . ID=YOR083W;Name=YOR083W;Alias=WHI5 -chrXV SGD CDS 480587 481750 . + . ID=YOR084W;Name=YOR084W;Alias=LPX1 -chrXV SGD CDS 482033 483085 . + . ID=YOR085W;Name=YOR085W;Alias=OST3 -chrXV SGD CDS 483219 486779 . - . ID=YOR086C;Name=YOR086C;Alias=TCB1 -chrXV SGD CDS 487707 489734 . + . ID=YOR087W;Name=YOR087W;Alias=YVC1 -chrXV SGD CDS 490196 490828 . - . ID=YOR089C;Name=YOR089C;Alias=VPS21 -chrXV SGD CDS 491123 492841 . - . ID=YOR090C;Name=YOR090C;Alias=PTC5 -chrXV SGD CDS 493433 494470 . + . ID=YOR091W;Name=YOR091W;Alias=TMA46 -chrXV SGD CDS 495127 496968 . + . ID=YOR092W;Name=YOR092W;Alias=ECM3 -chrXV SGD CDS 497506 502452 . - . ID=YOR093C;Name=YOR093C;Alias=CMR2 -chrXV SGD CDS 502795 503346 . + . ID=YOR094W;Name=YOR094W;Alias=ARF3 -chrXV SGD CDS 503552 504328 . - . ID=YOR095C;Name=YOR095C;Alias=RKI1 -chrXV SGD CDS 505794 506767 . + . ID=YOR096W;Name=YOR096W;Alias=RPS7A -chrXV SGD CDS 506978 507505 . - . ID=YOR097C;Name=YOR097C;Alias= -chrXV SGD CDS 507948 511178 . - . ID=YOR098C;Name=YOR098C;Alias=NUP1 -chrXV SGD CDS 511825 513006 . + . ID=YOR099W;Name=YOR099W;Alias=KTR1 -chrXV SGD CDS 513295 514278 . - . ID=YOR100C;Name=YOR100C;Alias=CRC1 -chrXV SGD CDS 515244 516173 . + . ID=YOR101W;Name=YOR101W;Alias=RAS1 -chrXV SGD CDS 516449 516841 . - . ID=YOR103C;Name=YOR103C;Alias=OST2 -chrXV SGD CDS 517642 518490 . + . ID=YOR104W;Name=YOR104W;Alias=PIN2 -chrXV SGD CDS 518195 518521 . + . ID=YOR105W;Name=YOR105W;Alias= -chrXV SGD CDS 519121 519972 . + . ID=YOR106W;Name=YOR106W;Alias=VAM3 -chrXV SGD CDS 521353 522282 . + . ID=YOR107W;Name=YOR107W;Alias=RGS2 -chrXV SGD CDS 523027 524841 . + . ID=YOR108W;Name=YOR108W;Alias=LEU9 -chrXV SGD CDS 525278 528601 . + . ID=YOR109W;Name=YOR109W;Alias=INP53 -chrXV SGD CDS 528941 530248 . + . ID=YOR110W;Name=YOR110W;Alias=TFC7 -chrXV SGD CDS 530429 531127 . + . ID=YOR111W;Name=YOR111W;Alias= -chrXV SGD CDS 531508 533793 . + . ID=YOR112W;Name=YOR112W;Alias=CEX1 -chrXV SGD CDS 534075 536819 . + . ID=YOR113W;Name=YOR113W;Alias=AZF1 -chrXV SGD CDS 537570 538454 . + . ID=YOR114W;Name=YOR114W;Alias= -chrXV SGD CDS 538659 539465 . - . ID=YOR115C;Name=YOR115C;Alias=TRS33 -chrXV SGD CDS 539763 544145 . - . ID=YOR116C;Name=YOR116C;Alias=RPO31 -chrXV SGD CDS 545029 546333 . + . ID=YOR117W;Name=YOR117W;Alias=RPT5 -chrXV SGD CDS 546857 548560 . + . ID=YOR118W;Name=YOR118W;Alias=RTC5 -chrXV SGD CDS 548792 550246 . - . ID=YOR119C;Name=YOR119C;Alias=RIO1 -chrXV SGD CDS 551114 552052 . + . ID=YOR120W;Name=YOR120W;Alias=GCY1 -chrXV SGD CDS 552298 552887 . - . ID=YOR122C;Name=YOR122C;Alias=PFY1 -chrXV SGD CDS 553176 554570 . - . ID=YOR123C;Name=YOR123C;Alias=LEO1 -chrXV SGD CDS 554824 558642 . - . ID=YOR124C;Name=YOR124C;Alias=UBP2 -chrXV SGD CDS 559030 559731 . - . ID=YOR125C;Name=YOR125C;Alias=CAT5 -chrXV SGD CDS 559961 560677 . - . ID=YOR126C;Name=YOR126C;Alias=IAH1 -chrXV SGD CDS 561170 564193 . + . ID=YOR127W;Name=YOR127W;Alias=RGA1 -chrXV SGD CDS 564476 566191 . - . ID=YOR128C;Name=YOR128C;Alias=ADE2 -chrXV SGD CDS 566877 569558 . - . ID=YOR129C;Name=YOR129C;Alias=AFI1 -chrXV SGD CDS 569929 570807 . - . ID=YOR130C;Name=YOR130C;Alias=ORT1 -chrXV SGD CDS 572182 572838 . - . ID=YOR131C;Name=YOR131C;Alias= -chrXV SGD CDS 573175 574830 . + . ID=YOR132W;Name=YOR132W;Alias=VPS17 -chrXV SGD CDS 575098 577626 . + . ID=YOR133W;Name=YOR133W;Alias=EFT1 -chrXV SGD CDS 578564 579793 . + . ID=YOR134W;Name=YOR134W;Alias=BAG7 -chrXV SGD CDS 580250 581359 . + . ID=YOR136W;Name=YOR136W;Alias=IDH2 -chrXV SGD CDS 581813 583681 . - . ID=YOR137C;Name=YOR137C;Alias=SIA1 -chrXV SGD CDS 584309 586324 . - . ID=YOR138C;Name=YOR138C;Alias=RUP1 -chrXV SGD CDS 586981 589281 . + . ID=YOR140W;Name=YOR140W;Alias=SFL1 -chrXV SGD CDS 589942 592587 . - . ID=YOR141C;Name=YOR141C;Alias=ARP8 -chrXV SGD CDS 593057 594046 . + . ID=YOR142W;Name=YOR142W;Alias=LSC1 -chrXV SGD CDS 601383 602342 . - . ID=YOR143C;Name=YOR143C;Alias=THI80 -chrXV SGD CDS 602717 605092 . - . ID=YOR144C;Name=YOR144C;Alias=ELG1 -chrXV SGD CDS 605347 606171 . - . ID=YOR145C;Name=YOR145C;Alias=PNO1 -chrXV SGD CDS 606607 608475 . + . ID=YOR147W;Name=YOR147W;Alias=MDM32 -chrXV SGD CDS 608640 609197 . - . ID=YOR148C;Name=YOR148C;Alias=SPP2 -chrXV SGD CDS 609838 611388 . - . ID=YOR149C;Name=YOR149C;Alias=SMP3 -chrXV SGD CDS 611999 612490 . + . ID=YOR150W;Name=YOR150W;Alias=MRPL23 -chrXV SGD CDS 612997 616671 . - . ID=YOR151C;Name=YOR151C;Alias=RPB2 -chrXV SGD CDS 617518 618288 . - . ID=YOR152C;Name=YOR152C;Alias=ATG40 -chrXV SGD CDS 619840 624375 . + . ID=YOR153W;Name=YOR153W;Alias=PDR5 -chrXV SGD CDS 624729 626492 . + . ID=YOR154W;Name=YOR154W;Alias=SLP1 -chrXV SGD CDS 626628 627980 . - . ID=YOR155C;Name=YOR155C;Alias=ISN1 -chrXV SGD CDS 628360 630540 . - . ID=YOR156C;Name=YOR156C;Alias=NFI1 -chrXV SGD CDS 630966 631751 . - . ID=YOR157C;Name=YOR157C;Alias=PUP1 -chrXV SGD CDS 632164 633120 . + . ID=YOR158W;Name=YOR158W;Alias=PET123 -chrXV SGD CDS 633282 633566 . - . ID=YOR159C;Name=YOR159C;Alias=SME1 -chrXV SGD CDS 633839 636757 . + . ID=YOR160W;Name=YOR160W;Alias=MTR10 -chrXV SGD CDS 636939 638558 . - . ID=YOR161C;Name=YOR161C;Alias=PNS1 -chrXV SGD CDS 639121 639267 . - . ID=YOR161C-C;Name=YOR161C-C;Alias= -chrXV SGD CDS 639560 641992 . - . ID=YOR162C;Name=YOR162C;Alias=YRR1 -chrXV SGD CDS 642741 643307 . + . ID=YOR163W;Name=YOR163W;Alias=DDP1 -chrXV SGD CDS 643394 644332 . - . ID=YOR164C;Name=YOR164C;Alias=GET4 -chrXV SGD CDS 644566 646896 . + . ID=YOR165W;Name=YOR165W;Alias=SEY1 -chrXV SGD CDS 647126 648502 . - . ID=YOR166C;Name=YOR166C;Alias=SWT1 -chrXV SGD CDS 648804 649007 . - . ID=YOR167C;Name=YOR167C;Alias=RPS28A -chrXV SGD CDS 649303 651732 . + . ID=YOR168W;Name=YOR168W;Alias=GLN4 -chrXV SGD CDS 652010 653884 . - . ID=YOR171C;Name=YOR171C;Alias=LCB4 -chrXV SGD CDS 654210 656570 . + . ID=YOR172W;Name=YOR172W;Alias=YRM1 -chrXV SGD CDS 657264 658325 . + . ID=YOR173W;Name=YOR173W;Alias=DCS2 -chrXV SGD CDS 658747 659601 . + . ID=YOR174W;Name=YOR174W;Alias=MED4 -chrXV SGD CDS 659815 661674 . - . ID=YOR175C;Name=YOR175C;Alias=ALE1 -chrXV SGD CDS 662401 663582 . + . ID=YOR176W;Name=YOR176W;Alias=HEM15 -chrXV SGD CDS 665785 667179 . - . ID=YOR177C;Name=YOR177C;Alias=MPC54 -chrXV SGD CDS 667860 670241 . - . ID=YOR178C;Name=YOR178C;Alias=GAC1 -chrXV SGD CDS 671845 672411 . - . ID=YOR179C;Name=YOR179C;Alias=SYC1 -chrXV SGD CDS 674352 675167 . - . ID=YOR180C;Name=YOR180C;Alias=DCI1 -chrXV SGD CDS 675939 677840 . + . ID=YOR181W;Name=YOR181W;Alias=LAS17 -chrXV SGD CDS 678191 678793 . - . ID=YOR182C;Name=YOR182C;Alias=RPS30B -chrXV SGD CDS 678872 679261 . + . ID=YOR183W;Name=YOR183W;Alias=FYV12 -chrXV SGD CDS 679357 680544 . + . ID=YOR184W;Name=YOR184W;Alias=SER1 -chrXV SGD CDS 681444 682106 . - . ID=YOR185C;Name=YOR185C;Alias=GSP2 -chrXV SGD CDS 683111 683545 . + . ID=YOR186W;Name=YOR186W;Alias= -chrXV SGD CDS 684030 685343 . + . ID=YOR187W;Name=YOR187W;Alias=TUF1 -chrXV SGD CDS 685767 689180 . + . ID=YOR188W;Name=YOR188W;Alias=MSB1 -chrXV SGD CDS 689624 689974 . + . ID=YOR189W;Name=YOR189W;Alias=IES4 -chrXV SGD CDS 690695 692032 . + . ID=YOR190W;Name=YOR190W;Alias=SPR1 -chrXV SGD CDS 692475 697334 . + . ID=YOR191W;Name=YOR191W;Alias=ULS1 -chrXV SGD CDS 698768 700567 . - . ID=YOR192C;Name=YOR192C;Alias=THI72 -chrXV SGD CDS 703988 704224 . - . ID=YOR192C-C;Name=YOR192C-C;Alias= -chrXV SGD CDS 710446 711576 . + . ID=YOR193W;Name=YOR193W;Alias=PEX27 -chrXV SGD CDS 711683 712543 . - . ID=YOR194C;Name=YOR194C;Alias=TOA1 -chrXV SGD CDS 712866 715331 . + . ID=YOR195W;Name=YOR195W;Alias=SLK19 -chrXV SGD CDS 715593 716837 . - . ID=YOR196C;Name=YOR196C;Alias=LIP5 -chrXV SGD CDS 717086 718384 . + . ID=YOR197W;Name=YOR197W;Alias=MCA1 -chrXV SGD CDS 718653 720065 . - . ID=YOR198C;Name=YOR198C;Alias=BFR1 -chrXV SGD CDS 720470 721708 . - . ID=YOR201C;Name=YOR201C;Alias=MRM1 -chrXV SGD CDS 721946 722608 . + . ID=YOR202W;Name=YOR202W;Alias=HIS3 -chrXV SGD CDS 722911 724725 . + . ID=YOR204W;Name=YOR204W;Alias=DED1 -chrXV SGD CDS 725564 727234 . - . ID=YOR205C;Name=YOR205C;Alias=GEP3 -chrXV SGD CDS 727512 729644 . + . ID=YOR206W;Name=YOR206W;Alias=NOC2 -chrXV SGD CDS 730008 733457 . - . ID=YOR207C;Name=YOR207C;Alias=RET1 -chrXV SGD CDS 733925 736177 . + . ID=YOR208W;Name=YOR208W;Alias=PTP2 -chrXV SGD CDS 736437 737726 . - . ID=YOR209C;Name=YOR209C;Alias=NPT1 -chrXV SGD CDS 738320 738532 . + . ID=YOR210W;Name=YOR210W;Alias=RPB10 -chrXV SGD CDS 738924 741569 . - . ID=YOR211C;Name=YOR211C;Alias=MGM1 -chrXV SGD CDS 742910 744181 . + . ID=YOR212W;Name=YOR212W;Alias=STE4 -chrXV SGD CDS 744535 745281 . - . ID=YOR213C;Name=YOR213C;Alias=SAS5 -chrXV SGD CDS 745593 746303 . - . ID=YOR214C;Name=YOR214C;Alias=SPR2 -chrXV SGD CDS 746725 747282 . - . ID=YOR215C;Name=YOR215C;Alias=AIM41 -chrXV SGD CDS 747525 748979 . - . ID=YOR216C;Name=YOR216C;Alias=RUD3 -chrXV SGD CDS 749301 751886 . + . ID=YOR217W;Name=YOR217W;Alias=RFC1 -chrXV SGD CDS 752214 755009 . - . ID=YOR219C;Name=YOR219C;Alias=STE13 -chrXV SGD CDS 755328 756125 . + . ID=YOR220W;Name=YOR220W;Alias=RCN2 -chrXV SGD CDS 756476 757558 . - . ID=YOR221C;Name=YOR221C;Alias=MCT1 -chrXV SGD CDS 758330 759253 . + . ID=YOR222W;Name=YOR222W;Alias=ODC2 -chrXV SGD CDS 759782 760660 . + . ID=YOR223W;Name=YOR223W;Alias=DSC3 -chrXV SGD CDS 760825 761265 . - . ID=YOR224C;Name=YOR224C;Alias=RPB8 -chrXV SGD CDS 761614 762084 . - . ID=YOR226C;Name=YOR226C;Alias=ISU2 -chrXV SGD CDS 762825 766565 . + . ID=YOR227W;Name=YOR227W;Alias=HER1 -chrXV SGD CDS 766869 767777 . - . ID=YOR228C;Name=YOR228C;Alias=MCP1 -chrXV SGD CDS 768409 769812 . + . ID=YOR229W;Name=YOR229W;Alias=WTM2 -chrXV SGD CDS 770800 772113 . + . ID=YOR230W;Name=YOR230W;Alias=WTM1 -chrXV SGD CDS 772601 774127 . + . ID=YOR231W;Name=YOR231W;Alias=MKK1 -chrXV SGD CDS 774573 775259 . + . ID=YOR232W;Name=YOR232W;Alias=MGE1 -chrXV SGD CDS 775846 778248 . + . ID=YOR233W;Name=YOR233W;Alias=KIN4 -chrXV SGD CDS 778555 779405 . - . ID=YOR234C;Name=YOR234C;Alias=RPL33B -chrXV SGD CDS 780906 781541 . + . ID=YOR236W;Name=YOR236W;Alias=DFR1 -chrXV SGD CDS 781994 783298 . + . ID=YOR237W;Name=YOR237W;Alias=HES1 -chrXV SGD CDS 783677 784588 . + . ID=YOR238W;Name=YOR238W;Alias= -chrXV SGD CDS 784857 786744 . + . ID=YOR239W;Name=YOR239W;Alias=ABP140 -chrXV SGD CDS 786995 788641 . + . ID=YOR241W;Name=YOR241W;Alias=MET7 -chrXV SGD CDS 788742 789857 . - . ID=YOR242C;Name=YOR242C;Alias=SSP2 -chrXV SGD CDS 790211 792241 . - . ID=YOR243C;Name=YOR243C;Alias=PUS7 -chrXV SGD CDS 792531 793868 . + . ID=YOR244W;Name=YOR244W;Alias=ESA1 -chrXV SGD CDS 794076 795332 . - . ID=YOR245C;Name=YOR245C;Alias=DGA1 -chrXV SGD CDS 795801 796793 . - . ID=YOR246C;Name=YOR246C;Alias=ENV9 -chrXV SGD CDS 797676 798308 . + . ID=YOR247W;Name=YOR247W;Alias=SRL1 -chrXV SGD CDS 798674 800731 . - . ID=YOR249C;Name=YOR249C;Alias=APC5 -chrXV SGD CDS 800970 802307 . - . ID=YOR250C;Name=YOR250C;Alias=CLP1 -chrXV SGD CDS 802550 803464 . - . ID=YOR251C;Name=YOR251C;Alias=TUM1 -chrXV SGD CDS 803667 804203 . + . ID=YOR252W;Name=YOR252W;Alias=TMA16 -chrXV SGD CDS 804377 804907 . + . ID=YOR253W;Name=YOR253W;Alias=NAT5 -chrXV SGD CDS 805032 807023 . - . ID=YOR254C;Name=YOR254C;Alias=SEC63 -chrXV SGD CDS 807271 808107 . + . ID=YOR255W;Name=YOR255W;Alias=OSW1 -chrXV SGD CDS 808254 810683 . - . ID=YOR256C;Name=YOR256C;Alias=TRE2 -chrXV SGD CDS 811008 811493 . + . ID=YOR257W;Name=YOR257W;Alias=CDC31 -chrXV SGD CDS 811671 812324 . + . ID=YOR258W;Name=YOR258W;Alias=HNT3 -chrXV SGD CDS 812395 813708 . - . ID=YOR259C;Name=YOR259C;Alias=RPT4 -chrXV SGD CDS 813984 815720 . + . ID=YOR260W;Name=YOR260W;Alias=GCD1 -chrXV SGD CDS 815915 816931 . - . ID=YOR261C;Name=YOR261C;Alias=RPN8 -chrXV SGD CDS 817292 818335 . + . ID=YOR262W;Name=YOR262W;Alias=GPN2 -chrXV SGD CDS 818866 820158 . + . ID=YOR264W;Name=YOR264W;Alias=DSE3 -chrXV SGD CDS 820454 820774 . + . ID=YOR265W;Name=YOR265W;Alias=RBL2 -chrXV SGD CDS 821023 822294 . + . ID=YOR266W;Name=YOR266W;Alias=PNT1 -chrXV SGD CDS 822588 824867 . - . ID=YOR267C;Name=YOR267C;Alias=HRK1 -chrXV SGD CDS 825534 825932 . - . ID=YOR268C;Name=YOR268C;Alias= -chrXV SGD CDS 826385 827869 . + . ID=YOR269W;Name=YOR269W;Alias=PAC1 -chrXV SGD CDS 828052 830574 . - . ID=YOR270C;Name=YOR270C;Alias=VPH1 -chrXV SGD CDS 831059 832042 . - . ID=YOR271C;Name=YOR271C;Alias=FSF1 -chrXV SGD CDS 832813 834195 . + . ID=YOR272W;Name=YOR272W;Alias=YTM1 -chrXV SGD CDS 834452 836431 . - . ID=YOR273C;Name=YOR273C;Alias=TPO4 -chrXV SGD CDS 837674 838960 . + . ID=YOR274W;Name=YOR274W;Alias=MOD5 -chrXV SGD CDS 839084 841069 . - . ID=YOR275C;Name=YOR275C;Alias=RIM20 -chrXV SGD CDS 841333 841818 . + . ID=YOR276W;Name=YOR276W;Alias=CAF20 -chrXV SGD CDS 842817 843644 . + . ID=YOR278W;Name=YOR278W;Alias=HEM4 -chrXV SGD CDS 843698 844630 . - . ID=YOR279C;Name=YOR279C;Alias=RFM1 -chrXV SGD CDS 844992 845792 . - . ID=YOR280C;Name=YOR280C;Alias=FSH3 -chrXV SGD CDS 846269 847129 . - . ID=YOR281C;Name=YOR281C;Alias=PLP2 -chrXV SGD CDS 847453 848145 . + . ID=YOR283W;Name=YOR283W;Alias= -chrXV SGD CDS 848478 849209 . + . ID=YOR284W;Name=YOR284W;Alias=HUA2 -chrXV SGD CDS 849635 850054 . + . ID=YOR285W;Name=YOR285W;Alias=RDL1 -chrXV SGD CDS 850280 850729 . + . ID=YOR286W;Name=YOR286W;Alias=RDL2 -chrXV SGD CDS 850937 851839 . - . ID=YOR287C;Name=YOR287C;Alias=RRP36 -chrXV SGD CDS 852121 853077 . - . ID=YOR288C;Name=YOR288C;Alias=MPD1 -chrXV SGD CDS 853357 854112 . + . ID=YOR289W;Name=YOR289W;Alias= -chrXV SGD CDS 855147 860258 . - . ID=YOR290C;Name=YOR290C;Alias=SNF2 -chrXV SGD CDS 861175 865593 . + . ID=YOR291W;Name=YOR291W;Alias=YPK9 -chrXV SGD CDS 865653 866582 . - . ID=YOR292C;Name=YOR292C;Alias= -chrXV SGD CDS 867098 867852 . + . ID=YOR293W;Name=YOR293W;Alias=RPS10A -chrXV SGD CDS 867998 868147 . - . ID=YOR293C-A;Name=YOR293C-A;Alias= -chrXV SGD CDS 868340 868951 . + . ID=YOR294W;Name=YOR294W;Alias=RRS1 -chrXV SGD CDS 869208 869894 . + . ID=YOR295W;Name=YOR295W;Alias=UAF30 -chrXV SGD CDS 870202 874071 . + . ID=YOR296W;Name=YOR296W;Alias= -chrXV SGD CDS 874743 875321 . - . ID=YOR297C;Name=YOR297C;Alias=TIM18 -chrXV SGD CDS 875599 877038 . + . ID=YOR298W;Name=YOR298W;Alias=MUM3 -chrXV SGD CDS 877230 877685 . - . ID=YOR298C-A;Name=YOR298C-A;Alias=MBF1 -chrXV SGD CDS 878435 880675 . + . ID=YOR299W;Name=YOR299W;Alias=BUD7 -chrXV SGD CDS 880965 882272 . + . ID=YOR301W;Name=YOR301W;Alias=RAX1 -chrXV SGD CDS 882765 882842 . + . ID=YOR302W;Name=YOR302W;Alias= -chrXV SGD CDS 882899 884134 . + . ID=YOR303W;Name=YOR303W;Alias=CPA1 -chrXV SGD CDS 884514 887876 . + . ID=YOR304W;Name=YOR304W;Alias=ISW2 -chrXV SGD CDS 888520 888750 . - . ID=YOR304C-A;Name=YOR304C-A;Alias=BIL1 -chrXV SGD CDS 889022 889750 . + . ID=YOR305W;Name=YOR305W;Alias=RRG7 -chrXV SGD CDS 889867 891432 . - . ID=YOR306C;Name=YOR306C;Alias=MCH5 -chrXV SGD CDS 892731 894092 . - . ID=YOR307C;Name=YOR307C;Alias=SLY41 -chrXV SGD CDS 894624 896387 . - . ID=YOR308C;Name=YOR308C;Alias=SNU66 -chrXV SGD CDS 896825 898360 . - . ID=YOR310C;Name=YOR310C;Alias=NOP58 -chrXV SGD CDS 899056 899928 . - . ID=YOR311C;Name=YOR311C;Alias=DGK1 -chrXV SGD CDS 900250 901194 . - . ID=YOR312C;Name=YOR312C;Alias=RPL20B -chrXV SGD CDS 901858 902874 . - . ID=YOR313C;Name=YOR313C;Alias=SPS4 -chrXV SGD CDS 904760 905800 . + . ID=YOR315W;Name=YOR315W;Alias=SFG1 -chrXV SGD CDS 906236 907555 . - . ID=YOR316C;Name=YOR316C;Alias=COT1 -chrXV SGD CDS 907726 907935 . - . ID=YOR316C-A;Name=YOR316C-A;Alias= -chrXV SGD CDS 909343 911445 . + . ID=YOR317W;Name=YOR317W;Alias=FAA1 -chrXV SGD CDS 912822 913463 . + . ID=YOR319W;Name=YOR319W;Alias=HSH49 -chrXV SGD CDS 913619 915094 . - . ID=YOR320C;Name=YOR320C;Alias=GNT1 -chrXV SGD CDS 916030 918291 . + . ID=YOR321W;Name=YOR321W;Alias=PMT3 -chrXV SGD CDS 918606 921062 . - . ID=YOR322C;Name=YOR322C;Alias=LDB19 -chrXV SGD CDS 921535 922905 . - . ID=YOR323C;Name=YOR323C;Alias=PRO2 -chrXV SGD CDS 923232 925040 . - . ID=YOR324C;Name=YOR324C;Alias=FRT1 -chrXV SGD CDS 925721 930445 . + . ID=YOR326W;Name=YOR326W;Alias=MYO2 -chrXV SGD CDS 930734 931081 . - . ID=YOR327C;Name=YOR327C;Alias=SNC2 -chrXV SGD CDS 931803 936497 . + . ID=YOR328W;Name=YOR328W;Alias=PDR10 -chrXV SGD CDS 936731 939349 . - . ID=YOR329C;Name=YOR329C;Alias=SCD5 -chrXV SGD CDS 939621 943385 . - . ID=YOR330C;Name=YOR330C;Alias=MIP1 -chrXV SGD CDS 943656 944357 . + . ID=YOR332W;Name=YOR332W;Alias=VMA4 -chrXV SGD CDS 944596 946008 . + . ID=YOR334W;Name=YOR334W;Alias=MRS2 -chrXV SGD CDS 946233 949109 . - . ID=YOR335C;Name=YOR335C;Alias=ALA1 -chrXV SGD CDS 949773 953870 . + . ID=YOR336W;Name=YOR336W;Alias=KRE5 -chrXV SGD CDS 954344 956623 . + . ID=YOR337W;Name=YOR337W;Alias=TEA1 -chrXV SGD CDS 956898 957989 . + . ID=YOR338W;Name=YOR338W;Alias= -chrXV SGD CDS 958362 958832 . - . ID=YOR339C;Name=YOR339C;Alias=UBC11 -chrXV SGD CDS 959202 960182 . - . ID=YOR340C;Name=YOR340C;Alias=RPA43 -chrXV SGD CDS 960987 965981 . + . ID=YOR341W;Name=YOR341W;Alias=RPA190 -chrXV SGD CDS 966666 967625 . - . ID=YOR342C;Name=YOR342C;Alias= -chrXV SGD CDS 977194 978069 . - . ID=YOR344C;Name=YOR344C;Alias=TYE7 -chrXV SGD CDS 981828 984785 . + . ID=YOR346W;Name=YOR346W;Alias=REV1 -chrXV SGD CDS 984942 986462 . - . ID=YOR347C;Name=YOR347C;Alias=PYK2 -chrXV SGD CDS 986899 988782 . - . ID=YOR348C;Name=YOR348C;Alias=PUT4 -chrXV SGD CDS 989789 992833 . + . ID=YOR349W;Name=YOR349W;Alias=CIN1 -chrXV SGD CDS 992864 994855 . - . ID=YOR350C;Name=YOR350C;Alias=MNE1 -chrXV SGD CDS 995018 996511 . - . ID=YOR351C;Name=YOR351C;Alias=MEK1 -chrXV SGD CDS 997213 998244 . + . ID=YOR352W;Name=YOR352W;Alias=TFB6 -chrXV SGD CDS 998453 1000828 . - . ID=YOR353C;Name=YOR353C;Alias=SOG2 -chrXV SGD CDS 1001147 1003225 . - . ID=YOR354C;Name=YOR354C;Alias=MSC6 -chrXV SGD CDS 1005137 1006705 . + . ID=YOR355W;Name=YOR355W;Alias=GDS1 -chrXV SGD CDS 1007221 1009116 . + . ID=YOR356W;Name=YOR356W;Alias=CIR2 -chrXV SGD CDS 1009224 1009712 . - . ID=YOR357C;Name=YOR357C;Alias=SNX3 -chrXV SGD CDS 1010161 1010889 . + . ID=YOR358W;Name=YOR358W;Alias=HAP5 -chrXV SGD CDS 1011189 1012760 . + . ID=YOR359W;Name=YOR359W;Alias=VTS1 -chrXV SGD CDS 1013241 1014821 . - . ID=YOR360C;Name=YOR360C;Alias=PDE2 -chrXV SGD CDS 1015361 1017652 . - . ID=YOR361C;Name=YOR361C;Alias=PRT1 -chrXV SGD CDS 1017880 1018746 . - . ID=YOR362C;Name=YOR362C;Alias=PRE10 -chrXV SGD CDS 1020222 1023212 . - . ID=YOR363C;Name=YOR363C;Alias=PIP2 -chrXV SGD CDS 1023461 1025572 . - . ID=YOR365C;Name=YOR365C;Alias= -chrXV SGD CDS 1026007 1026609 . + . ID=YOR367W;Name=YOR367W;Alias=SCP1 -chrXV SGD CDS 1026843 1028048 . + . ID=YOR368W;Name=YOR368W;Alias=RAD17 -chrXV SGD CDS 1028194 1028625 . - . ID=YOR369C;Name=YOR369C;Alias=RPS12 -chrXV SGD CDS 1029183 1030994 . - . ID=YOR370C;Name=YOR370C;Alias=MRS6 -chrXV SGD CDS 1031489 1034182 . - . ID=YOR371C;Name=YOR371C;Alias=GPB1 -chrXV SGD CDS 1034807 1036471 . - . ID=YOR372C;Name=YOR372C;Alias=NDD1 -chrXV SGD CDS 1036834 1039389 . + . ID=YOR373W;Name=YOR373W;Alias=NUD1 -chrXV SGD CDS 1039840 1041399 . + . ID=YOR374W;Name=YOR374W;Alias=ALD4 -chrXV SGD CDS 1041678 1043042 . - . ID=YOR375C;Name=YOR375C;Alias=GDH1 -chrXV SGD CDS 1045196 1045351 . + . ID=YOR376W-A;Name=YOR376W-A;Alias= -chrXV SGD CDS 1046226 1047803 . + . ID=YOR377W;Name=YOR377W;Alias=ATF1 -chrXV SGD CDS 1049511 1051058 . + . ID=YOR378W;Name=YOR378W;Alias=AMF1 -chrXV SGD CDS 1051290 1052930 . + . ID=YOR380W;Name=YOR380W;Alias=RDR1 -chrXV SGD CDS 1055545 1057680 . + . ID=YOR381W;Name=YOR381W;Alias=FRE3 -chrXV SGD CDS 1058423 1058590 . + . ID=YOR381W-A;Name=YOR381W-A;Alias= -chrXV SGD CDS 1059531 1059992 . + . ID=YOR382W;Name=YOR382W;Alias=FIT2 -chrXV SGD CDS 1060441 1061055 . - . ID=YOR383C;Name=YOR383C;Alias=FIT3 -chrXV SGD CDS 1061564 1063648 . + . ID=YOR384W;Name=YOR384W;Alias=FRE5 -chrXV SGD CDS 1065043 1065915 . + . ID=YOR385W;Name=YOR385W;Alias= -chrXV SGD CDS 1066839 1068536 . + . ID=YOR386W;Name=YOR386W;Alias=PHR1 -chrXV SGD CDS 1069621 1070241 . - . ID=YOR387C;Name=YOR387C;Alias= -chrXV SGD CDS 1071793 1072923 . - . ID=YOR388C;Name=YOR388C;Alias=FDH1 -chrXV SGD CDS 1074213 1076087 . + . ID=YOR389W;Name=YOR389W;Alias= -chrXV SGD CDS 1076784 1077911 . + . ID=YOR390W;Name=YOR390W;Alias=FEX1 -chrXV SGD CDS 1078545 1079258 . - . ID=YOR391C;Name=YOR391C;Alias=HSP33 -chrXV SGD CDS 1080276 1081589 . + . ID=YOR393W;Name=YOR393W;Alias=ERR1 -chrXV SGD CDS 1082718 1083212 . + . ID=YOR394W;Name=YOR394W;Alias=PAU21 -chrXV SGD CDS 1084202 1084369 . - . ID=YOR394C-A;Name=YOR394C-A;Alias= -chrXV SGD CDS 1085473 1090863 . + . ID=YOR396W;Name=YOR396W;Alias=YRF1-8 -chrXVI SGD CDS 280 6007 . - . ID=YPL283C;Name=YPL283C;Alias=YRF1-7 -chrXVI SGD CDS 7933 8427 . - . ID=YPL282C;Name=YPL282C;Alias=PAU22 -chrXVI SGD CDS 9557 10870 . - . ID=YPL281C;Name=YPL281C;Alias=ERR2 -chrXVI SGD CDS 11887 12600 . + . ID=YPL280W;Name=YPL280W;Alias=HSP32 -chrXVI SGD CDS 13228 14355 . - . ID=YPL279C;Name=YPL279C;Alias=FEX2 -chrXVI SGD CDS 15053 15355 . - . ID=YPL278C;Name=YPL278C;Alias= -chrXVI SGD CDS 15405 16868 . - . ID=YPL277C;Name=YPL277C;Alias= -chrXVI SGD CDS 22938 24701 . + . ID=YPL274W;Name=YPL274W;Alias=SAM3 -chrXVI SGD CDS 25087 26064 . + . ID=YPL273W;Name=YPL273W;Alias=SAM4 -chrXVI SGD CDS 26611 28164 . - . ID=YPL272C;Name=YPL272C;Alias=PBI1 -chrXVI SGD CDS 30079 30267 . + . ID=YPL271W;Name=YPL271W;Alias=ATP15 -chrXVI SGD CDS 30482 32803 . + . ID=YPL270W;Name=YPL270W;Alias=MDL2 -chrXVI SGD CDS 33013 34947 . + . ID=YPL269W;Name=YPL269W;Alias=KAR9 -chrXVI SGD CDS 35236 37845 . + . ID=YPL268W;Name=YPL268W;Alias=PLC1 -chrXVI SGD CDS 38169 38798 . + . ID=YPL267W;Name=YPL267W;Alias=ACM1 -chrXVI SGD CDS 39121 40077 . + . ID=YPL266W;Name=YPL266W;Alias=DIM1 -chrXVI SGD CDS 41043 42869 . + . ID=YPL265W;Name=YPL265W;Alias=DIP5 -chrXVI SGD CDS 43283 44344 . - . ID=YPL264C;Name=YPL264C;Alias= -chrXVI SGD CDS 44551 46506 . - . ID=YPL263C;Name=YPL263C;Alias=KEL3 -chrXVI SGD CDS 47336 48802 . + . ID=YPL262W;Name=YPL262W;Alias=FUM1 -chrXVI SGD CDS 49303 50958 . + . ID=YPL260W;Name=YPL260W;Alias=CUB1 -chrXVI SGD CDS 51244 52671 . - . ID=YPL259C;Name=YPL259C;Alias=APM1 -chrXVI SGD CDS 53498 55153 . - . ID=YPL258C;Name=YPL258C;Alias=THI21 -chrXVI SGD CDS 63279 63860 . + . ID=YPL257W;Name=YPL257W;Alias= -chrXVI SGD CDS 64977 66614 . - . ID=YPL256C;Name=YPL256C;Alias=CLN2 -chrXVI SGD CDS 67725 68882 . + . ID=YPL255W;Name=YPL255W;Alias=BBP1 -chrXVI SGD CDS 69485 70951 . + . ID=YPL254W;Name=YPL254W;Alias=HFI1 -chrXVI SGD CDS 71063 73006 . - . ID=YPL253C;Name=YPL253C;Alias=VIK1 -chrXVI SGD CDS 73363 73881 . - . ID=YPL252C;Name=YPL252C;Alias=YAH1 -chrXVI SGD CDS 74309 74719 . - . ID=YPL250C;Name=YPL250C;Alias=ATG41 -chrXVI SGD CDS 75699 76239 . - . ID=YPL249C-A;Name=YPL249C-A;Alias=RPL36B -chrXVI SGD CDS 76669 79353 . - . ID=YPL249C;Name=YPL249C;Alias=GYP5 -chrXVI SGD CDS 79711 82356 . - . ID=YPL248C;Name=YPL248C;Alias=GAL4 -chrXVI SGD CDS 82625 84196 . - . ID=YPL247C;Name=YPL247C;Alias= -chrXVI SGD CDS 84509 85297 . - . ID=YPL246C;Name=YPL246C;Alias=RBD2 -chrXVI SGD CDS 85586 86950 . + . ID=YPL245W;Name=YPL245W;Alias= -chrXVI SGD CDS 87014 88033 . - . ID=YPL244C;Name=YPL244C;Alias=HUT1 -chrXVI SGD CDS 88517 90316 . + . ID=YPL243W;Name=YPL243W;Alias=SRP68 -chrXVI SGD CDS 90622 95109 . - . ID=YPL242C;Name=YPL242C;Alias=IQG1 -chrXVI SGD CDS 95372 96258 . - . ID=YPL241C;Name=YPL241C;Alias=CIN2 -chrXVI SGD CDS 96496 98625 . - . ID=YPL240C;Name=YPL240C;Alias=HSP82 -chrXVI SGD CDS 99484 100086 . + . ID=YPL239W;Name=YPL239W;Alias=YAR1 -chrXVI SGD CDS 100496 101353 . + . ID=YPL237W;Name=YPL237W;Alias=SUI3 -chrXVI SGD CDS 101608 102702 . - . ID=YPL236C;Name=YPL236C;Alias=ENV7 -chrXVI SGD CDS 103232 104647 . + . ID=YPL235W;Name=YPL235W;Alias=RVB2 -chrXVI SGD CDS 104946 105440 . - . ID=YPL234C;Name=YPL234C;Alias=VMA11 -chrXVI SGD CDS 106172 106822 . + . ID=YPL233W;Name=YPL233W;Alias=NSL1 -chrXVI SGD CDS 107275 108147 . + . ID=YPL232W;Name=YPL232W;Alias=SSO1 -chrXVI SGD CDS 108652 114315 . + . ID=YPL231W;Name=YPL231W;Alias=FAS2 -chrXVI SGD CDS 115219 116487 . + . ID=YPL230W;Name=YPL230W;Alias=USV1 -chrXVI SGD CDS 117067 117687 . + . ID=YPL229W;Name=YPL229W;Alias= -chrXVI SGD CDS 118382 120031 . + . ID=YPL228W;Name=YPL228W;Alias=CET1 -chrXVI SGD CDS 120163 121167 . - . ID=YPL227C;Name=YPL227C;Alias=ALG5 -chrXVI SGD CDS 121767 125357 . + . ID=YPL226W;Name=YPL226W;Alias=NEW1 -chrXVI SGD CDS 126006 126446 . + . ID=YPL225W;Name=YPL225W;Alias= -chrXVI SGD CDS 126634 128088 . - . ID=YPL224C;Name=YPL224C;Alias=MMT2 -chrXVI SGD CDS 128632 129138 . - . ID=YPL223C;Name=YPL223C;Alias=GRE1 -chrXVI SGD CDS 130162 132228 . + . ID=YPL222W;Name=YPL222W;Alias=FMP40 -chrXVI SGD CDS 133043 135424 . + . ID=YPL221W;Name=YPL221W;Alias=FLC1 -chrXVI SGD CDS 135790 136443 . + . ID=YPL220W;Name=YPL220W;Alias=RPL1A -chrXVI SGD CDS 136750 138228 . + . ID=YPL219W;Name=YPL219W;Alias=PCL8 -chrXVI SGD CDS 138698 139409 . + . ID=YPL218W;Name=YPL218W;Alias=SAR1 -chrXVI SGD CDS 139620 143171 . - . ID=YPL217C;Name=YPL217C;Alias=BMS1 -chrXVI SGD CDS 143821 147129 . + . ID=YPL216W;Name=YPL216W;Alias= -chrXVI SGD CDS 147416 148423 . + . ID=YPL215W;Name=YPL215W;Alias=CBP3 -chrXVI SGD CDS 148569 150191 . - . ID=YPL214C;Name=YPL214C;Alias=THI6 -chrXVI SGD CDS 150614 151330 . + . ID=YPL213W;Name=YPL213W;Alias=LEA1 -chrXVI SGD CDS 151515 153149 . - . ID=YPL212C;Name=YPL212C;Alias=PUS1 -chrXVI SGD CDS 153495 154040 . + . ID=YPL211W;Name=YPL211W;Alias=NIP7 -chrXVI SGD CDS 154290 156212 . - . ID=YPL210C;Name=YPL210C;Alias=SRP72 -chrXVI SGD CDS 156490 157593 . - . ID=YPL209C;Name=YPL209C;Alias=IPL1 -chrXVI SGD CDS 157842 159593 . + . ID=YPL208W;Name=YPL208W;Alias=RKM1 -chrXVI SGD CDS 159909 162341 . + . ID=YPL207W;Name=YPL207W;Alias=TYW1 -chrXVI SGD CDS 162632 163597 . - . ID=YPL206C;Name=YPL206C;Alias=PGC1 -chrXVI SGD CDS 164276 165760 . + . ID=YPL204W;Name=YPL204W;Alias=HRR25 -chrXVI SGD CDS 166256 167398 . + . ID=YPL203W;Name=YPL203W;Alias=TPK2 -chrXVI SGD CDS 168088 169338 . - . ID=YPL202C;Name=YPL202C;Alias=AFT2 -chrXVI SGD CDS 169770 171155 . - . ID=YPL201C;Name=YPL201C;Alias=YIG1 -chrXVI SGD CDS 171484 171954 . + . ID=YPL200W;Name=YPL200W;Alias=CSM4 -chrXVI SGD CDS 172033 172755 . - . ID=YPL199C;Name=YPL199C;Alias= -chrXVI SGD CDS 173152 174702 . + . ID=YPL198W;Name=YPL198W;Alias=RPL7B -chrXVI SGD CDS 175043 175864 . + . ID=YPL196W;Name=YPL196W;Alias=OXR1 -chrXVI SGD CDS 176223 179021 . + . ID=YPL195W;Name=YPL195W;Alias=APL5 -chrXVI SGD CDS 179277 181115 . + . ID=YPL194W;Name=YPL194W;Alias=DDC1 -chrXVI SGD CDS 181403 182548 . + . ID=YPL193W;Name=YPL193W;Alias=RSA1 -chrXVI SGD CDS 182655 183056 . - . ID=YPL192C;Name=YPL192C;Alias=PRM3 -chrXVI SGD CDS 183597 184679 . - . ID=YPL191C;Name=YPL191C;Alias= -chrXVI SGD CDS 185317 187725 . - . ID=YPL190C;Name=YPL190C;Alias=NAB3 -chrXVI SGD CDS 188307 188513 . - . ID=YPL189C-A;Name=YPL189C-A;Alias=COA2 -chrXVI SGD CDS 189154 190983 . + . ID=YPL189W;Name=YPL189W;Alias=GUP2 -chrXVI SGD CDS 191406 192650 . + . ID=YPL188W;Name=YPL188W;Alias=POS5 -chrXVI SGD CDS 193648 194145 . + . ID=YPL187W;Name=YPL187W;Alias=MF%28ALPHA%291 -chrXVI SGD CDS 194512 195426 . - . ID=YPL186C;Name=YPL186C;Alias=UIP4 -chrXVI SGD CDS 195950 197788 . - . ID=YPL184C;Name=YPL184C;Alias=MRN1 -chrXVI SGD CDS 199095 199376 . + . ID=YPL183W-A;Name=YPL183W-A;Alias=RTC6 -chrXVI SGD CDS 199495 202536 . - . ID=YPL183C;Name=YPL183C;Alias=RTT10 -chrXVI SGD CDS 203421 204941 . + . ID=YPL181W;Name=YPL181W;Alias=CTI6 -chrXVI SGD CDS 205248 207647 . + . ID=YPL180W;Name=YPL180W;Alias=TCO89 -chrXVI SGD CDS 208157 209806 . + . ID=YPL179W;Name=YPL179W;Alias=PPQ1 -chrXVI SGD CDS 212158 212784 . + . ID=YPL178W;Name=YPL178W;Alias=CBC2 -chrXVI SGD CDS 213042 213962 . - . ID=YPL177C;Name=YPL177C;Alias=CUP9 -chrXVI SGD CDS 216012 218363 . - . ID=YPL176C;Name=YPL176C;Alias=TRE1 -chrXVI SGD CDS 218630 220088 . + . ID=YPL175W;Name=YPL175W;Alias=SPT14 -chrXVI SGD CDS 220167 222773 . - . ID=YPL174C;Name=YPL174C;Alias=NIP100 -chrXVI SGD CDS 223143 224036 . + . ID=YPL173W;Name=YPL173W;Alias=MRPL40 -chrXVI SGD CDS 224353 225741 . - . ID=YPL172C;Name=YPL172C;Alias=COX10 -chrXVI SGD CDS 226169 227371 . - . ID=YPL171C;Name=YPL171C;Alias=OYE3 -chrXVI SGD CDS 228314 228772 . + . ID=YPL170W;Name=YPL170W;Alias=DAP1 -chrXVI SGD CDS 229039 230838 . - . ID=YPL169C;Name=YPL169C;Alias=MEX67 -chrXVI SGD CDS 231217 232509 . + . ID=YPL168W;Name=YPL168W;Alias=MRX4 -chrXVI SGD CDS 232593 237107 . - . ID=YPL167C;Name=YPL167C;Alias=REV3 -chrXVI SGD CDS 237338 237979 . + . ID=YPL166W;Name=YPL166W;Alias=ATG29 -chrXVI SGD CDS 237956 239077 . - . ID=YPL165C;Name=YPL165C;Alias=SET6 -chrXVI SGD CDS 239350 241497 . - . ID=YPL164C;Name=YPL164C;Alias=MLH3 -chrXVI SGD CDS 241918 242700 . - . ID=YPL163C;Name=YPL163C;Alias=SVS1 -chrXVI SGD CDS 243206 244027 . - . ID=YPL162C;Name=YPL162C;Alias= -chrXVI SGD CDS 244319 246220 . - . ID=YPL161C;Name=YPL161C;Alias=BEM4 -chrXVI SGD CDS 246990 250262 . + . ID=YPL160W;Name=YPL160W;Alias=CDC60 -chrXVI SGD CDS 250907 251668 . - . ID=YPL159C;Name=YPL159C;Alias=PET20 -chrXVI SGD CDS 252034 254310 . - . ID=YPL158C;Name=YPL158C;Alias=AIM44 -chrXVI SGD CDS 254814 255761 . + . ID=YPL157W;Name=YPL157W;Alias=TGS1 -chrXVI SGD CDS 255913 256767 . - . ID=YPL156C;Name=YPL156C;Alias=PRM4 -chrXVI SGD CDS 257216 259336 . - . ID=YPL155C;Name=YPL155C;Alias=KIP2 -chrXVI SGD CDS 259714 260931 . - . ID=YPL154C;Name=YPL154C;Alias=PEP4 -chrXVI SGD CDS 261727 264192 . - . ID=YPL153C;Name=YPL153C;Alias=RAD53 -chrXVI SGD CDS 264602 264700 . + . ID=YPL152W-A;Name=YPL152W-A;Alias= -chrXVI SGD CDS 265028 266104 . + . ID=YPL152W;Name=YPL152W;Alias=RRD2 -chrXVI SGD CDS 266180 267535 . - . ID=YPL151C;Name=YPL151C;Alias=PRP46 -chrXVI SGD CDS 268188 270893 . + . ID=YPL150W;Name=YPL150W;Alias= -chrXVI SGD CDS 271310 272194 . + . ID=YPL149W;Name=YPL149W;Alias=ATG5 -chrXVI SGD CDS 272294 272815 . - . ID=YPL148C;Name=YPL148C;Alias=PPT2 -chrXVI SGD CDS 273255 275867 . + . ID=YPL147W;Name=YPL147W;Alias=PXA1 -chrXVI SGD CDS 276162 277529 . - . ID=YPL146C;Name=YPL146C;Alias=NOP53 -chrXVI SGD CDS 278395 279699 . - . ID=YPL145C;Name=YPL145C;Alias=KES1 -chrXVI SGD CDS 280480 280926 . + . ID=YPL144W;Name=YPL144W;Alias=POC4 -chrXVI SGD CDS 282122 282970 . + . ID=YPL143W;Name=YPL143W;Alias=RPL33A -chrXVI SGD CDS 283464 286061 . - . ID=YPL141C;Name=YPL141C;Alias=FRK1 -chrXVI SGD CDS 287514 289034 . - . ID=YPL140C;Name=YPL140C;Alias=MKK2 -chrXVI SGD CDS 289669 291051 . - . ID=YPL139C;Name=YPL139C;Alias=UME1 -chrXVI SGD CDS 291366 292427 . - . ID=YPL138C;Name=YPL138C;Alias=SPP1 -chrXVI SGD CDS 292817 296647 . - . ID=YPL137C;Name=YPL137C;Alias=GIP3 -chrXVI SGD CDS 297553 298050 . + . ID=YPL135W;Name=YPL135W;Alias=ISU1 -chrXVI SGD CDS 298571 299503 . - . ID=YPL134C;Name=YPL134C;Alias=ODC1 -chrXVI SGD CDS 299888 301228 . - . ID=YPL133C;Name=YPL133C;Alias=RDS2 -chrXVI SGD CDS 301716 302618 . + . ID=YPL132W;Name=YPL132W;Alias=COX11 -chrXVI SGD CDS 303121 304014 . + . ID=YPL131W;Name=YPL131W;Alias=RPL5 -chrXVI SGD CDS 304387 305058 . + . ID=YPL130W;Name=YPL130W;Alias=SPO19 -chrXVI SGD CDS 305298 306137 . + . ID=YPL129W;Name=YPL129W;Alias=TAF14 -chrXVI SGD CDS 306533 308221 . - . ID=YPL128C;Name=YPL128C;Alias=TBF1 -chrXVI SGD CDS 308828 309604 . - . ID=YPL127C;Name=YPL127C;Alias=HHO1 -chrXVI SGD CDS 310210 312900 . + . ID=YPL126W;Name=YPL126W;Alias=NAN1 -chrXVI SGD CDS 313388 316486 . + . ID=YPL125W;Name=YPL125W;Alias=KAP120 -chrXVI SGD CDS 316755 317516 . + . ID=YPL124W;Name=YPL124W;Alias=SPC29 -chrXVI SGD CDS 317641 318945 . - . ID=YPL123C;Name=YPL123C;Alias=RNY1 -chrXVI SGD CDS 319226 320767 . - . ID=YPL122C;Name=YPL122C;Alias=TFB2 -chrXVI SGD CDS 320962 321630 . - . ID=YPL121C;Name=YPL121C;Alias=MEI5 -chrXVI SGD CDS 322071 323744 . + . ID=YPL120W;Name=YPL120W;Alias=VPS30 -chrXVI SGD CDS 324024 324287 . - . ID=YPL119C-A;Name=YPL119C-A;Alias= -chrXVI SGD CDS 324411 326264 . - . ID=YPL119C;Name=YPL119C;Alias=DBP1 -chrXVI SGD CDS 326628 327662 . + . ID=YPL118W;Name=YPL118W;Alias=MRP51 -chrXVI SGD CDS 327864 328730 . - . ID=YPL117C;Name=YPL117C;Alias=IDI1 -chrXVI SGD CDS 329606 331699 . + . ID=YPL116W;Name=YPL116W;Alias=HOS3 -chrXVI SGD CDS 332100 335486 . - . ID=YPL115C;Name=YPL115C;Alias=BEM3 -chrXVI SGD CDS 335953 337143 . - . ID=YPL113C;Name=YPL113C;Alias= -chrXVI SGD CDS 337436 338620 . - . ID=YPL112C;Name=YPL112C;Alias=PEX25 -chrXVI SGD CDS 339944 340945 . + . ID=YPL111W;Name=YPL111W;Alias=CAR1 -chrXVI SGD CDS 341068 344739 . - . ID=YPL110C;Name=YPL110C;Alias=GDE1 -chrXVI SGD CDS 345264 347389 . - . ID=YPL109C;Name=YPL109C;Alias= -chrXVI SGD CDS 348446 348952 . + . ID=YPL108W;Name=YPL108W;Alias= -chrXVI SGD CDS 349119 349865 . + . ID=YPL107W;Name=YPL107W;Alias= -chrXVI SGD CDS 350194 352275 . - . ID=YPL106C;Name=YPL106C;Alias=SSE1 -chrXVI SGD CDS 352863 355412 . - . ID=YPL105C;Name=YPL105C;Alias=SYH1 -chrXVI SGD CDS 355700 357676 . + . ID=YPL104W;Name=YPL104W;Alias=MSD1 -chrXVI SGD CDS 358000 359406 . - . ID=YPL103C;Name=YPL103C;Alias=FMP30 -chrXVI SGD CDS 360209 361579 . + . ID=YPL101W;Name=YPL101W;Alias=ELP4 -chrXVI SGD CDS 361872 363362 . + . ID=YPL100W;Name=YPL100W;Alias=ATG21 -chrXVI SGD CDS 363520 364068 . - . ID=YPL099C;Name=YPL099C;Alias=INA17 -chrXVI SGD CDS 364386 364727 . - . ID=YPL098C;Name=YPL098C;Alias=MGR2 -chrXVI SGD CDS 364952 366430 . + . ID=YPL097W;Name=YPL097W;Alias=MSY1 -chrXVI SGD CDS 366529 366735 . - . ID=YPL096C-A;Name=YPL096C-A;Alias=ERI1 -chrXVI SGD CDS 366927 368018 . + . ID=YPL096W;Name=YPL096W;Alias=PNG1 -chrXVI SGD CDS 368071 369441 . - . ID=YPL095C;Name=YPL095C;Alias=EEB1 -chrXVI SGD CDS 369839 370663 . - . ID=YPL094C;Name=YPL094C;Alias=SEC62 -chrXVI SGD CDS 370978 372921 . + . ID=YPL093W;Name=YPL093W;Alias=NOG1 -chrXVI SGD CDS 373793 375169 . + . ID=YPL092W;Name=YPL092W;Alias=SSU1 -chrXVI SGD CDS 375502 376953 . + . ID=YPL091W;Name=YPL091W;Alias=GLR1 -chrXVI SGD CDS 377291 378395 . - . ID=YPL090C;Name=YPL090C;Alias=RPS6A -chrXVI SGD CDS 379120 381150 . - . ID=YPL089C;Name=YPL089C;Alias=RLM1 -chrXVI SGD CDS 381965 382993 . + . ID=YPL088W;Name=YPL088W;Alias= -chrXVI SGD CDS 383455 384408 . + . ID=YPL087W;Name=YPL087W;Alias=YDC1 -chrXVI SGD CDS 384773 386446 . - . ID=YPL086C;Name=YPL086C;Alias=ELP3 -chrXVI SGD CDS 387067 393654 . + . ID=YPL085W;Name=YPL085W;Alias=SEC16 -chrXVI SGD CDS 394038 396572 . + . ID=YPL084W;Name=YPL084W;Alias=BRO1 -chrXVI SGD CDS 396702 398105 . - . ID=YPL083C;Name=YPL083C;Alias=SEN54 -chrXVI SGD CDS 398480 404083 . - . ID=YPL082C;Name=YPL082C;Alias=MOT1 -chrXVI SGD CDS 404950 406044 . + . ID=YPL081W;Name=YPL081W;Alias=RPS9A -chrXVI SGD CDS 406636 407539 . + . ID=YPL079W;Name=YPL079W;Alias=RPL21B -chrXVI SGD CDS 408010 408744 . - . ID=YPL078C;Name=YPL078C;Alias=ATP4 -chrXVI SGD CDS 409368 410090 . - . ID=YPL077C;Name=YPL077C;Alias= -chrXVI SGD CDS 410443 411285 . + . ID=YPL076W;Name=YPL076W;Alias=GPI2 -chrXVI SGD CDS 412254 415362 . + . ID=YPL075W;Name=YPL075W;Alias=GCR1 -chrXVI SGD CDS 415763 418027 . + . ID=YPL074W;Name=YPL074W;Alias=YTA6 -chrXVI SGD CDS 418512 420011 . + . ID=YPL072W;Name=YPL072W;Alias=UBP16 -chrXVI SGD CDS 420048 420518 . - . ID=YPL071C;Name=YPL071C;Alias= -chrXVI SGD CDS 420948 422786 . + . ID=YPL070W;Name=YPL070W;Alias=MUK1 -chrXVI SGD CDS 422885 423892 . - . ID=YPL069C;Name=YPL069C;Alias=BTS1 -chrXVI SGD CDS 424215 425096 . - . ID=YPL068C;Name=YPL068C;Alias= -chrXVI SGD CDS 425251 425847 . - . ID=YPL067C;Name=YPL067C;Alias= -chrXVI SGD CDS 426233 427672 . + . ID=YPL066W;Name=YPL066W;Alias=RGL1 -chrXVI SGD CDS 427927 428655 . + . ID=YPL065W;Name=YPL065W;Alias=VPS28 -chrXVI SGD CDS 428711 429616 . - . ID=YPL064C;Name=YPL064C;Alias=CWC27 -chrXVI SGD CDS 429939 431369 . + . ID=YPL063W;Name=YPL063W;Alias=TIM50 -chrXVI SGD CDS 432588 434090 . + . ID=YPL061W;Name=YPL061W;Alias=ALD6 -chrXVI SGD CDS 434523 435764 . + . ID=YPL060W;Name=YPL060W;Alias=MFM1 -chrXVI SGD CDS 444579 445031 . + . ID=YPL059W;Name=YPL059W;Alias=GRX5 -chrXVI SGD CDS 445842 450377 . - . ID=YPL058C;Name=YPL058C;Alias=PDR12 -chrXVI SGD CDS 451909 453057 . - . ID=YPL057C;Name=YPL057C;Alias=SUR1 -chrXVI SGD CDS 453430 453735 . - . ID=YPL056C;Name=YPL056C;Alias=LCL1 -chrXVI SGD CDS 453992 454990 . - . ID=YPL055C;Name=YPL055C;Alias=LGE1 -chrXVI SGD CDS 455759 456664 . + . ID=YPL054W;Name=YPL054W;Alias=LEE1 -chrXVI SGD CDS 457118 458458 . - . ID=YPL053C;Name=YPL053C;Alias=KTR6 -chrXVI SGD CDS 458799 459678 . + . ID=YPL052W;Name=YPL052W;Alias=OAZ1 -chrXVI SGD CDS 459963 460559 . + . ID=YPL051W;Name=YPL051W;Alias=ARL3 -chrXVI SGD CDS 460779 461966 . - . ID=YPL050C;Name=YPL050C;Alias=MNN9 -chrXVI SGD CDS 462481 463839 . - . ID=YPL049C;Name=YPL049C;Alias=DIG1 -chrXVI SGD CDS 464401 465648 . + . ID=YPL048W;Name=YPL048W;Alias=CAM1 -chrXVI SGD CDS 465962 466261 . + . ID=YPL047W;Name=YPL047W;Alias=SGF11 -chrXVI SGD CDS 466644 466943 . - . ID=YPL046C;Name=YPL046C;Alias=ELC1 -chrXVI SGD CDS 467260 469656 . + . ID=YPL045W;Name=YPL045W;Alias=VPS16 -chrXVI SGD CDS 469939 471996 . + . ID=YPL043W;Name=YPL043W;Alias=NOP4 -chrXVI SGD CDS 473040 474707 . - . ID=YPL042C;Name=YPL042C;Alias=SSN3 -chrXVI SGD CDS 475118 475741 . - . ID=YPL041C;Name=YPL041C;Alias=MRX11 -chrXVI SGD CDS 475993 479001 . - . ID=YPL040C;Name=YPL040C;Alias=ISM1 -chrXVI SGD CDS 479225 480175 . + . ID=YPL039W;Name=YPL039W;Alias= -chrXVI SGD CDS 480182 480373 . + . ID=YPL038W-A;Name=YPL038W-A;Alias= -chrXVI SGD CDS 480535 481068 . + . ID=YPL038W;Name=YPL038W;Alias=MET31 -chrXVI SGD CDS 481428 481901 . - . ID=YPL037C;Name=YPL037C;Alias=EGD1 -chrXVI SGD CDS 482843 485686 . + . ID=YPL036W;Name=YPL036W;Alias=PMA2 -chrXVI SGD CDS 486712 487209 . + . ID=YPL034W;Name=YPL034W;Alias= -chrXVI SGD CDS 487362 488207 . - . ID=YPL033C;Name=YPL033C;Alias=SRL4 -chrXVI SGD CDS 488887 491364 . - . ID=YPL032C;Name=YPL032C;Alias=SVL3 -chrXVI SGD CDS 492018 493037 . - . ID=YPL031C;Name=YPL031C;Alias=PHO85 -chrXVI SGD CDS 493543 495246 . + . ID=YPL030W;Name=YPL030W;Alias=TRM44 -chrXVI SGD CDS 495506 497719 . + . ID=YPL029W;Name=YPL029W;Alias=SUV3 -chrXVI SGD CDS 498096 499292 . + . ID=YPL028W;Name=YPL028W;Alias=ERG10 -chrXVI SGD CDS 499665 500402 . + . ID=YPL027W;Name=YPL027W;Alias=SMA1 -chrXVI SGD CDS 500675 502183 . - . ID=YPL026C;Name=YPL026C;Alias=SKS1 -chrXVI SGD CDS 503517 504242 . + . ID=YPL024W;Name=YPL024W;Alias=RMI1 -chrXVI SGD CDS 504339 506312 . - . ID=YPL023C;Name=YPL023C;Alias=MET12 -chrXVI SGD CDS 506697 509999 . + . ID=YPL022W;Name=YPL022W;Alias=RAD1 -chrXVI SGD CDS 511101 511664 . + . ID=YPL021W;Name=YPL021W;Alias=ECM23 -chrXVI SGD CDS 512313 514178 . - . ID=YPL020C;Name=YPL020C;Alias=ULP1 -chrXVI SGD CDS 514511 517018 . - . ID=YPL019C;Name=YPL019C;Alias=VTC3 -chrXVI SGD CDS 517651 518760 . + . ID=YPL018W;Name=YPL018W;Alias=CTF19 -chrXVI SGD CDS 518734 520233 . - . ID=YPL017C;Name=YPL017C;Alias=IRC15 -chrXVI SGD CDS 521014 524958 . + . ID=YPL016W;Name=YPL016W;Alias=SWI1 -chrXVI SGD CDS 525810 526883 . - . ID=YPL015C;Name=YPL015C;Alias=HST2 -chrXVI SGD CDS 527547 528692 . + . ID=YPL014W;Name=YPL014W;Alias=CIP1 -chrXVI SGD CDS 528985 529350 . - . ID=YPL013C;Name=YPL013C;Alias=MRPS16 -chrXVI SGD CDS 529723 533409 . + . ID=YPL012W;Name=YPL012W;Alias=RRP12 -chrXVI SGD CDS 533642 534703 . - . ID=YPL011C;Name=YPL011C;Alias=TAF3 -chrXVI SGD CDS 535018 535587 . + . ID=YPL010W;Name=YPL010W;Alias=RET3 -chrXVI SGD CDS 535820 538936 . - . ID=YPL009C;Name=YPL009C;Alias=RQC2 -chrXVI SGD CDS 539385 541970 . + . ID=YPL008W;Name=YPL008W;Alias=CHL1 -chrXVI SGD CDS 542082 543848 . - . ID=YPL007C;Name=YPL007C;Alias=TFC8 -chrXVI SGD CDS 544631 548143 . + . ID=YPL006W;Name=YPL006W;Alias=NCR1 -chrXVI SGD CDS 548486 550306 . + . ID=YPL005W;Name=YPL005W;Alias=AEP3 -chrXVI SGD CDS 550632 551657 . - . ID=YPL004C;Name=YPL004C;Alias=LSP1 -chrXVI SGD CDS 552020 553408 . + . ID=YPL003W;Name=YPL003W;Alias=ULA1 -chrXVI SGD CDS 553627 554328 . - . ID=YPL002C;Name=YPL002C;Alias=SNF8 -chrXVI SGD CDS 554605 555729 . + . ID=YPL001W;Name=YPL001W;Alias=HAT1 -chrXVI SGD CDS 556377 557837 . + . ID=YPR001W;Name=YPR001W;Alias=CIT3 -chrXVI SGD CDS 558385 559935 . + . ID=YPR002W;Name=YPR002W;Alias=PDH1 -chrXVI SGD CDS 561504 563768 . - . ID=YPR003C;Name=YPR003C;Alias= -chrXVI SGD CDS 564007 565041 . - . ID=YPR004C;Name=YPR004C;Alias=AIM45 -chrXVI SGD CDS 565787 566671 . - . ID=YPR005C;Name=YPR005C;Alias=HAL1 -chrXVI SGD CDS 567269 568996 . - . ID=YPR006C;Name=YPR006C;Alias=ICL2 -chrXVI SGD CDS 569336 571378 . - . ID=YPR007C;Name=YPR007C;Alias=REC8 -chrXVI SGD CDS 573018 575102 . + . ID=YPR008W;Name=YPR008W;Alias=HAA1 -chrXVI SGD CDS 576552 577358 . + . ID=YPR009W;Name=YPR009W;Alias=SUT2 -chrXVI SGD CDS 577585 581196 . - . ID=YPR010C;Name=YPR010C;Alias=RPA135 -chrXVI SGD CDS 582373 582734 . - . ID=YPR010C-A;Name=YPR010C-A;Alias= -chrXVI SGD CDS 583062 584042 . - . ID=YPR011C;Name=YPR011C;Alias= -chrXVI SGD CDS 584632 585585 . - . ID=YPR013C;Name=YPR013C;Alias=CMR3 -chrXVI SGD CDS 590283 591026 . - . ID=YPR015C;Name=YPR015C;Alias= -chrXVI SGD CDS 592332 593069 . - . ID=YPR016C;Name=YPR016C;Alias=TIF6 -chrXVI SGD CDS 593486 593917 . - . ID=YPR017C;Name=YPR017C;Alias=DSS4 -chrXVI SGD CDS 594476 596296 . + . ID=YPR018W;Name=YPR018W;Alias=RLF2 -chrXVI SGD CDS 596750 599551 . + . ID=YPR019W;Name=YPR019W;Alias=MCM4 -chrXVI SGD CDS 599870 600217 . + . ID=YPR020W;Name=YPR020W;Alias=ATP20 -chrXVI SGD CDS 600649 603357 . - . ID=YPR021C;Name=YPR021C;Alias=AGC1 -chrXVI SGD CDS 603911 607312 . - . ID=YPR022C;Name=YPR022C;Alias=SDD4 -chrXVI SGD CDS 608826 610031 . - . ID=YPR023C;Name=YPR023C;Alias=EAF3 -chrXVI SGD CDS 610481 612724 . + . ID=YPR024W;Name=YPR024W;Alias=YME1 -chrXVI SGD CDS 613377 614558 . - . ID=YPR025C;Name=YPR025C;Alias=CCL1 -chrXVI SGD CDS 615379 619014 . + . ID=YPR026W;Name=YPR026W;Alias=ATH1 -chrXVI SGD CDS 620425 621258 . - . ID=YPR027C;Name=YPR027C;Alias= -chrXVI SGD CDS 623527 624202 . + . ID=YPR028W;Name=YPR028W;Alias=YOP1 -chrXVI SGD CDS 624469 626967 . - . ID=YPR029C;Name=YPR029C;Alias=APL4 -chrXVI SGD CDS 627880 631245 . + . ID=YPR030W;Name=YPR030W;Alias=CSR2 -chrXVI SGD CDS 631515 633761 . + . ID=YPR031W;Name=YPR031W;Alias=NTO1 -chrXVI SGD CDS 634123 637224 . + . ID=YPR032W;Name=YPR032W;Alias=SRO7 -chrXVI SGD CDS 637379 639019 . - . ID=YPR033C;Name=YPR033C;Alias=HTS1 -chrXVI SGD CDS 639525 640958 . + . ID=YPR034W;Name=YPR034W;Alias=ARP7 -chrXVI SGD CDS 642208 643320 . + . ID=YPR035W;Name=YPR035W;Alias=GLN1 -chrXVI SGD CDS 643836 645272 . + . ID=YPR036W;Name=YPR036W;Alias=VMA13 -chrXVI SGD CDS 645950 646153 . + . ID=YPR036W-A;Name=YPR036W-A;Alias=SPO24 -chrXVI SGD CDS 646448 647038 . - . ID=YPR037C;Name=YPR037C;Alias=ERV2 -chrXVI SGD CDS 647305 648375 . + . ID=YPR040W;Name=YPR040W;Alias=TIP41 -chrXVI SGD CDS 648704 649921 . + . ID=YPR041W;Name=YPR041W;Alias=TIF5 -chrXVI SGD CDS 650435 653662 . - . ID=YPR042C;Name=YPR042C;Alias=PUF2 -chrXVI SGD CDS 654166 654847 . + . ID=YPR043W;Name=YPR043W;Alias=RPL43A -chrXVI SGD CDS 655140 656552 . - . ID=YPR045C;Name=YPR045C;Alias=THP3 -chrXVI SGD CDS 656799 657344 . + . ID=YPR046W;Name=YPR046W;Alias=MCM16 -chrXVI SGD CDS 657529 658938 . + . ID=YPR047W;Name=YPR047W;Alias=MSF1 -chrXVI SGD CDS 659182 661053 . + . ID=YPR048W;Name=YPR048W;Alias=TAH18 -chrXVI SGD CDS 661137 664673 . - . ID=YPR049C;Name=YPR049C;Alias=ATG11 -chrXVI SGD CDS 664960 665490 . + . ID=YPR051W;Name=YPR051W;Alias=MAK3 -chrXVI SGD CDS 665693 665974 . - . ID=YPR052C;Name=YPR052C;Alias=NHP6A -chrXVI SGD CDS 666280 667446 . + . ID=YPR054W;Name=YPR054W;Alias=SMK1 -chrXVI SGD CDS 667676 670873 . + . ID=YPR055W;Name=YPR055W;Alias=SEC8 -chrXVI SGD CDS 671126 672142 . + . ID=YPR056W;Name=YPR056W;Alias=TFB4 -chrXVI SGD CDS 672471 673496 . + . ID=YPR057W;Name=YPR057W;Alias=BRR1 -chrXVI SGD CDS 673751 674674 . + . ID=YPR058W;Name=YPR058W;Alias=YMC1 -chrXVI SGD CDS 674861 675631 . - . ID=YPR060C;Name=YPR060C;Alias=ARO7 -chrXVI SGD CDS 675977 676882 . - . ID=YPR061C;Name=YPR061C;Alias=JID1 -chrXVI SGD CDS 677165 677641 . + . ID=YPR062W;Name=YPR062W;Alias=FCY1 -chrXVI SGD CDS 677812 678320 . - . ID=YPR063C;Name=YPR063C;Alias= -chrXVI SGD CDS 679693 680799 . + . ID=YPR065W;Name=YPR065W;Alias=ROX1 -chrXVI SGD CDS 681213 682112 . + . ID=YPR066W;Name=YPR066W;Alias=UBA3 -chrXVI SGD CDS 682220 682777 . + . ID=YPR067W;Name=YPR067W;Alias=ISA2 -chrXVI SGD CDS 682941 684353 . - . ID=YPR068C;Name=YPR068C;Alias=HOS1 -chrXVI SGD CDS 684556 685437 . - . ID=YPR069C;Name=YPR069C;Alias=SPE3 -chrXVI SGD CDS 685898 687598 . + . ID=YPR070W;Name=YPR070W;Alias=MED1 -chrXVI SGD CDS 688172 688807 . + . ID=YPR071W;Name=YPR071W;Alias= -chrXVI SGD CDS 690107 691789 . + . ID=YPR072W;Name=YPR072W;Alias=NOT5 -chrXVI SGD CDS 691933 692418 . - . ID=YPR073C;Name=YPR073C;Alias=LTP1 -chrXVI SGD CDS 692796 694838 . - . ID=YPR074C;Name=YPR074C;Alias=TKL1 -chrXVI SGD CDS 695737 696819 . - . ID=YPR075C;Name=YPR075C;Alias=OPY2 -chrXVI SGD CDS 697147 698265 . - . ID=YPR078C;Name=YPR078C;Alias= -chrXVI SGD CDS 698869 700014 . + . ID=YPR079W;Name=YPR079W;Alias=MRL1 -chrXVI SGD CDS 700594 701970 . + . ID=YPR080W;Name=YPR080W;Alias=TEF1 -chrXVI SGD CDS 702114 703970 . - . ID=YPR081C;Name=YPR081C;Alias=GRS2 -chrXVI SGD CDS 704225 704656 . - . ID=YPR082C;Name=YPR082C;Alias=DIB1 -chrXVI SGD CDS 704854 706593 . + . ID=YPR083W;Name=YPR083W;Alias=MDM36 -chrXVI SGD CDS 706972 708342 . + . ID=YPR084W;Name=YPR084W;Alias= -chrXVI SGD CDS 708497 709828 . - . ID=YPR085C;Name=YPR085C;Alias=ASA1 -chrXVI SGD CDS 710101 711138 . + . ID=YPR086W;Name=YPR086W;Alias=SUA7 -chrXVI SGD CDS 711403 713028 . - . ID=YPR088C;Name=YPR088C;Alias=SRP54 -chrXVI SGD CDS 713275 715941 . + . ID=YPR089W;Name=YPR089W;Alias= -chrXVI SGD CDS 716156 718468 . - . ID=YPR091C;Name=YPR091C;Alias=NVJ2 -chrXVI SGD CDS 719558 720424 . - . ID=YPR093C;Name=YPR093C;Alias=ASR1 -chrXVI SGD CDS 720637 720960 . + . ID=YPR094W;Name=YPR094W;Alias=RDS3 -chrXVI SGD CDS 721037 724717 . - . ID=YPR095C;Name=YPR095C;Alias=SYT1 -chrXVI SGD CDS 724842 725144 . - . ID=YPR096C;Name=YPR096C;Alias= -chrXVI SGD CDS 725394 728615 . + . ID=YPR097W;Name=YPR097W;Alias= -chrXVI SGD CDS 728947 729528 . - . ID=YPR098C;Name=YPR098C;Alias= -chrXVI SGD CDS 729791 730213 . + . ID=YPR100W;Name=YPR100W;Alias=MRPL51 -chrXVI SGD CDS 730492 731019 . + . ID=YPR101W;Name=YPR101W;Alias=SNT309 -chrXVI SGD CDS 731224 731748 . - . ID=YPR102C;Name=YPR102C;Alias=RPL11A -chrXVI SGD CDS 732349 733212 . + . ID=YPR103W;Name=YPR103W;Alias=PRE2 -chrXVI SGD CDS 733623 736433 . - . ID=YPR104C;Name=YPR104C;Alias=FHL1 -chrXVI SGD CDS 736984 739569 . - . ID=YPR105C;Name=YPR105C;Alias=COG4 -chrXVI SGD CDS 740061 741392 . + . ID=YPR106W;Name=YPR106W;Alias=ISR1 -chrXVI SGD CDS 741438 742064 . - . ID=YPR107C;Name=YPR107C;Alias=YTH1 -chrXVI SGD CDS 742454 743743 . + . ID=YPR108W;Name=YPR108W;Alias=RPN7 -chrXVI SGD CDS 744175 744387 . + . ID=YPR108W-A;Name=YPR108W-A;Alias= -chrXVI SGD CDS 744689 745573 . + . ID=YPR109W;Name=YPR109W;Alias= -chrXVI SGD CDS 745828 746835 . - . ID=YPR110C;Name=YPR110C;Alias=RPC40 -chrXVI SGD CDS 747306 749000 . + . ID=YPR111W;Name=YPR111W;Alias=DBF20 -chrXVI SGD CDS 749256 751919 . - . ID=YPR112C;Name=YPR112C;Alias=MRD1 -chrXVI SGD CDS 752257 752919 . + . ID=YPR113W;Name=YPR113W;Alias=PIS1 -chrXVI SGD CDS 753301 754248 . + . ID=YPR114W;Name=YPR114W;Alias= -chrXVI SGD CDS 754877 758128 . + . ID=YPR115W;Name=YPR115W;Alias=RGC1 -chrXVI SGD CDS 758648 759481 . + . ID=YPR116W;Name=YPR116W;Alias=RRG8 -chrXVI SGD CDS 760025 767494 . + . ID=YPR117W;Name=YPR117W;Alias= -chrXVI SGD CDS 767752 768987 . + . ID=YPR118W;Name=YPR118W;Alias=MRI1 -chrXVI SGD CDS 771653 773128 . + . ID=YPR119W;Name=YPR119W;Alias=CLB2 -chrXVI SGD CDS 773875 775182 . - . ID=YPR120C;Name=YPR120C;Alias=CLB5 -chrXVI SGD CDS 778583 780301 . + . ID=YPR121W;Name=YPR121W;Alias=THI22 -chrXVI SGD CDS 782045 785671 . + . ID=YPR122W;Name=YPR122W;Alias=AXL1 -chrXVI SGD CDS 786208 787428 . + . ID=YPR124W;Name=YPR124W;Alias=CTR1 -chrXVI SGD CDS 787961 789325 . + . ID=YPR125W;Name=YPR125W;Alias=YLH47 -chrXVI SGD CDS 790083 791120 . + . ID=YPR127W;Name=YPR127W;Alias= -chrXVI SGD CDS 791218 792204 . - . ID=YPR128C;Name=YPR128C;Alias=ANT1 -chrXVI SGD CDS 792687 793736 . + . ID=YPR129W;Name=YPR129W;Alias=SCD6 -chrXVI SGD CDS 793911 794498 . - . ID=YPR131C;Name=YPR131C;Alias=NAT3 -chrXVI SGD CDS 794965 795767 . + . ID=YPR132W;Name=YPR132W;Alias=RPS23B -chrXVI SGD CDS 795978 797210 . - . ID=YPR133C;Name=YPR133C;Alias=SPN1 -chrXVI SGD CDS 797557 797709 . + . ID=YPR133W-A;Name=YPR133W-A;Alias=TOM5 -chrXVI SGD CDS 798051 798857 . + . ID=YPR134W;Name=YPR134W;Alias=MSS18 -chrXVI SGD CDS 799234 802017 . + . ID=YPR135W;Name=YPR135W;Alias=CTF4 -chrXVI SGD CDS 802359 804080 . + . ID=YPR137W;Name=YPR137W;Alias=RRP9 -chrXVI SGD CDS 810984 812453 . - . ID=YPR138C;Name=YPR138C;Alias=MEP3 -chrXVI SGD CDS 813156 814058 . - . ID=YPR139C;Name=YPR139C;Alias=LOA1 -chrXVI SGD CDS 814391 815536 . + . ID=YPR140W;Name=YPR140W;Alias=TAZ1 -chrXVI SGD CDS 815734 817923 . - . ID=YPR141C;Name=YPR141C;Alias=KAR3 -chrXVI SGD CDS 818323 819075 . + . ID=YPR143W;Name=YPR143W;Alias=RRP15 -chrXVI SGD CDS 819765 821423 . - . ID=YPR144C;Name=YPR144C;Alias=NOC4 -chrXVI SGD CDS 822620 824338 . + . ID=YPR145W;Name=YPR145W;Alias=ASN1 -chrXVI SGD CDS 824690 824926 . - . ID=YPR145C-A;Name=YPR145C-A;Alias= -chrXVI SGD CDS 825645 826559 . - . ID=YPR147C;Name=YPR147C;Alias= -chrXVI SGD CDS 826833 828140 . - . ID=YPR148C;Name=YPR148C;Alias= -chrXVI SGD CDS 829918 830439 . + . ID=YPR149W;Name=YPR149W;Alias=NCE102 -chrXVI SGD CDS 831055 831675 . - . ID=YPR151C;Name=YPR151C;Alias=SUE1 -chrXVI SGD CDS 832061 833458 . - . ID=YPR152C;Name=YPR152C;Alias=URN1 -chrXVI SGD CDS 833689 834245 . + . ID=YPR153W;Name=YPR153W;Alias=MAY24 -chrXVI SGD CDS 834565 835212 . + . ID=YPR154W;Name=YPR154W;Alias=PIN3 -chrXVI SGD CDS 835563 837413 . - . ID=YPR155C;Name=YPR155C;Alias=NCA2 -chrXVI SGD CDS 837909 839777 . - . ID=YPR156C;Name=YPR156C;Alias=TPO3 -chrXVI SGD CDS 841266 842669 . + . ID=YPR157W;Name=YPR157W;Alias=TDA6 -chrXVI SGD CDS 843262 844020 . + . ID=YPR158W;Name=YPR158W;Alias=CUR1 -chrXVI SGD CDS 857583 859745 . + . ID=YPR159W;Name=YPR159W;Alias=KRE6 -chrXVI SGD CDS 860314 860415 . - . ID=YPR159C-A;Name=YPR159C-A;Alias= -chrXVI SGD CDS 861306 864014 . + . ID=YPR160W;Name=YPR160W;Alias=GPH1 -chrXVI SGD CDS 864449 866422 . - . ID=YPR161C;Name=YPR161C;Alias=SGV1 -chrXVI SGD CDS 866715 868304 . - . ID=YPR162C;Name=YPR162C;Alias=ORC4 -chrXVI SGD CDS 868645 869955 . - . ID=YPR163C;Name=YPR163C;Alias=TIF3 -chrXVI SGD CDS 870703 874926 . + . ID=YPR164W;Name=YPR164W;Alias=MMS1 -chrXVI SGD CDS 875368 875997 . + . ID=YPR165W;Name=YPR165W;Alias=RHO1 -chrXVI SGD CDS 876282 876629 . - . ID=YPR166C;Name=YPR166C;Alias=MRP2 -chrXVI SGD CDS 876847 877632 . - . ID=YPR167C;Name=YPR167C;Alias=MET16 -chrXVI SGD CDS 878076 878549 . + . ID=YPR168W;Name=YPR168W;Alias=NUT2 -chrXVI SGD CDS 878690 880168 . + . ID=YPR169W;Name=YPR169W;Alias=JIP5 -chrXVI SGD CDS 883239 883595 . + . ID=YPR170W-B;Name=YPR170W-B;Alias= -chrXVI SGD CDS 883828 885558 . + . ID=YPR171W;Name=YPR171W;Alias=BSP1 -chrXVI SGD CDS 885796 886398 . + . ID=YPR172W;Name=YPR172W;Alias= -chrXVI SGD CDS 886524 887837 . - . ID=YPR173C;Name=YPR173C;Alias=VPS4 -chrXVI SGD CDS 888043 888708 . - . ID=YPR174C;Name=YPR174C;Alias= -chrXVI SGD CDS 888974 891043 . + . ID=YPR175W;Name=YPR175W;Alias=DPB2 -chrXVI SGD CDS 891101 892078 . - . ID=YPR176C;Name=YPR176C;Alias=BET2 -chrXVI SGD CDS 892332 893729 . + . ID=YPR178W;Name=YPR178W;Alias=PRP4 -chrXVI SGD CDS 893797 895764 . - . ID=YPR179C;Name=YPR179C;Alias=HDA3 -chrXVI SGD CDS 895961 897004 . + . ID=YPR180W;Name=YPR180W;Alias=AOS1 -chrXVI SGD CDS 897361 899667 . - . ID=YPR181C;Name=YPR181C;Alias=SEC23 -chrXVI SGD CDS 900194 900454 . + . ID=YPR182W;Name=YPR182W;Alias=SMX3 -chrXVI SGD CDS 900755 901558 . + . ID=YPR183W;Name=YPR183W;Alias=DPM1 -chrXVI SGD CDS 902044 906654 . + . ID=YPR184W;Name=YPR184W;Alias=GDB1 -chrXVI SGD CDS 907218 909434 . + . ID=YPR185W;Name=YPR185W;Alias=ATG13 -chrXVI SGD CDS 909733 911022 . - . ID=YPR186C;Name=YPR186C;Alias=PZF1 -chrXVI SGD CDS 911257 911800 . + . ID=YPR187W;Name=YPR187W;Alias=RPO26 -chrXVI SGD CDS 911988 912479 . - . ID=YPR188C;Name=YPR188C;Alias=MLC2 -chrXVI SGD CDS 912664 916962 . + . ID=YPR189W;Name=YPR189W;Alias=SKI3 -chrXVI SGD CDS 917077 919041 . - . ID=YPR190C;Name=YPR190C;Alias=RPC82 -chrXVI SGD CDS 919381 920487 . + . ID=YPR191W;Name=YPR191W;Alias=QCR2 -chrXVI SGD CDS 921860 922777 . + . ID=YPR192W;Name=YPR192W;Alias=AQY1 -chrXVI SGD CDS 922909 923379 . - . ID=YPR193C;Name=YPR193C;Alias=HPA2 -chrXVI SGD CDS 924304 926937 . - . ID=YPR194C;Name=YPR194C;Alias=OPT2 -chrXVI SGD CDS 931376 932788 . + . ID=YPR196W;Name=YPR196W;Alias= -chrXVI SGD CDS 934034 935665 . + . ID=YPR198W;Name=YPR198W;Alias=SGE1 -chrXVI SGD CDS 938148 939032 . - . ID=YPR199C;Name=YPR199C;Alias=ARR1 -chrXVI SGD CDS 939279 939671 . - . ID=YPR200C;Name=YPR200C;Alias=ARR2 -chrXVI SGD CDS 939922 941136 . + . ID=YPR201W;Name=YPR201W;Alias=ARR3 -chrXVI SGD CDS 943032 943896 . + . ID=YPR202W;Name=YPR202W;Alias= -chrXVI SGD CDS 943880 944188 . + . ID=YPR203W;Name=YPR203W;Alias= -chrXVI SGD CDS 944603 947701 . + . ID=YPR204W;Name=YPR204W;Alias= -chrmt SGD CDS 13818 16322 . + . ID=Q0050;Name=Q0050;Alias=AI1 -chrmt SGD CDS 13818 18830 . + . ID=Q0055;Name=Q0055;Alias=AI2 -chrmt SGD CDS 13818 19996 . + . ID=Q0060;Name=Q0060;Alias=AI3 -chrmt SGD CDS 13818 21935 . + . ID=Q0065;Name=Q0065;Alias=AI4 -chrmt SGD CDS 13818 23167 . + . ID=Q0070;Name=Q0070;Alias=AI5_ALPHA -chrmt SGD CDS 13818 26701 . + . ID=Q0045;Name=Q0045;Alias=COX1 -chrmt SGD CDS 24156 25255 . + . ID=Q0075;Name=Q0075;Alias=AI5_BETA -chrmt SGD CDS 27666 27812 . + . ID=Q0080;Name=Q0080;Alias=ATP8 -chrmt SGD CDS 28487 29266 . + . ID=Q0085;Name=Q0085;Alias=ATP6 -chrmt SGD CDS 36540 38579 . + . ID=Q0110;Name=Q0110;Alias=BI2 -chrmt SGD CDS 36540 40265 . + . ID=Q0115;Name=Q0115;Alias=BI3 -chrmt SGD CDS 36540 42251 . + . ID=Q0120;Name=Q0120;Alias=BI4 -chrmt SGD CDS 36540 43647 . + . ID=Q0105;Name=Q0105;Alias=COB -chrmt SGD CDS 46723 46953 . + . ID=Q0130;Name=Q0130;Alias=OLI1 -chrmt SGD CDS 48901 50097 . + . ID=Q0140;Name=Q0140;Alias=VAR1 -chrmt SGD CDS 61022 61729 . + . ID=Q0160;Name=Q0160;Alias=SCEI -chrmt SGD CDS 73758 74513 . + . ID=Q0250;Name=Q0250;Alias=COX2 -chrmt SGD CDS 74495 75984 . + . ID=Q0255;Name=Q0255;Alias= -chrmt SGD CDS 79213 80022 . + . ID=Q0275;Name=Q0275;Alias=COX3 diff --git a/data/SGDref.PoFF.gff.gz b/data/SGDref.PoFF.gff.gz new file mode 100644 index 0000000..0b7373e Binary files /dev/null and b/data/SGDref.PoFF.gff.gz differ diff --git a/data/TE_lib.LTRonly.tidy.fa b/data/TE_lib.LTRonly.tidy.fa new file mode 100644 index 0000000..a7b6c29 --- /dev/null +++ b/data/TE_lib.LTRonly.tidy.fa @@ -0,0 +1,76 @@ +>TY1/TY2-LTR#LTR/Copia/TY1 +TGTTGGAATAAAAATCCACTATCGTCTATCAACTAATAGTTATATTATCAATATATTATC +ATATACGGTGTTAAGATGATGACATAAGTTATGAGAAGCTGTCATCGAAGTTAGAGGAAG +CTGAAACGCAAGGATTGATAATGTAATAGGATCAATGAATATAAACATATAAAACGGAAT +GAGGAATAATCGTAATATTAGTATGTAGAAATATAGATTCCATTTTGAGGATTCCTATAT +CCTCGAGGAGAACTTCTAGTATATTCTGTATACCTAATATTATAGCCTTTATCAACAATG +GAATCCCAACAATTATCTCAACATTCACATATTTCTCA +>TY1/TY2-LTR#LTR/Copia/TY1p +TGTTGGAATGAAATTCTAATATCATCTATTTAATAGTATATTATAATATGCGGTGCAAGA +GGATGACATAAAGATTGAGAAACAGTCATCCAATCTAATGGAAGCTGAAATGCAAGGATT +GATAATGTAATAGGATAATGAATAACAACATATAAAAAGAAAGAAGATAAAATAATAACA +CTATGTAGAACTATCGATTCCCTTTTGTGGATTCCTATATCCTCGAGGAGAACTTCTAGT +ATATTCTATATACCTAATATTATAGCCTTTAGTAACAATGGAATCCCAACAATTATCTAA +TTACCCACACAATTCTCA +>TY1/TY2-LTR#LTR/Copia/TY2 +TGTTGGAATAAAAATCAACTATCATCTACTAACTAGTATTTACGTTACTAGTATATTATC +ATATACGGTGTTAGAAGATGACGCAAATGATGAGAAATAGTCATCTAAATTAGTGGAAGC +TGAAACGCAAGGATTGATAATGTAATAGGATCAATGAATATTAACATATAAAATGATGAT +AATAATATTTATAGAATTGTGTAGAATTGCAGATTCCCTTTTATGGATTCCTAAATCCTC +GAGGAGAACTTCTAGTATATCTACATACCTAATATTATTGCCTTATTAAAAATGGAATCC +CAACAATTACATCAAAATCCACATTCTCTTCA +>TY3-LTR#LTR/Gypsy/TY3 +TGTTGTATCTCAAAATGAGATATGTCAGTATGACAATACGTCACCCTGAACGTTCATAAA +ACACATATGAAACAACCTTATAACAAAACGAACAACATGAGACAAAACCCGACCTTCCCT +AGCTGAACTACCCAAAGTATAAATGCCTGAACAATTAGTTTAGATCCGAGATTCCGCGCT +TCCACCACTTAGTATGATTCATATTTTATATAATATATAAGATAAGTAACATTCCGTGAA +TTAATCTGATAAACTGTTTTGACAACTGGTTACTTCCCTAAGACTGTTTATATTAGGATT +GTCAAGACACTCCGGTATTACTCGAGCCCGTAATACAACA +>TY3-LTR#LTR/Gypsy/TY3p +TGTTGTATCTCAAGATGAGATACCTCAGCATTACTAGATTTACCAACCTAGACATAAAAC +ATGTATGAAACACGTACGAAACAATAGACAAGATTGAGTATACTAGGCAACCTACTTGCC +TAAGATGAACCAAACTAACCAAACGTATAAATACCTGAACAATTAGTTTAGATCCGAGAT +TCCGCGCTTCCACCCTTTAGTTAGATTCAGATCTTATATAGATTATATAGGATAAGTAAC +ATTCTGTGAATCACGATAATAATAAGTCTGACAACAAGTTACTCTCCTAAACGACTTTAG +GATTGTCAAGACATCCGGTATTACTCGAGCCCGTAATACAACA +>TY4-LTR#LTR/Copia/TY4 +TGTTGGAACGAGAGTAATTAATAGTGACATGAGTTGCTATGGTAACAATCTAATGCTTAC +ATCGTATATTAATGTACAACTCGTATACGTTTAAGTGTGATTGCGCCTATTGCAGAAGGA +ATGTTAAACGAGAAGCTCAGACAATACTGAAGCTGTGTTAAAGACCTATTAGTTGAACAT +GTTATGGTAGGTACATATATGAGGAATATGAGTCGTCACATCAATGTATAGTAACTACCG +GAATCACTATTATATTGGTCATAATTAATATGACCAATCGGCGTGTGTTTTATATACCTC +TCTTATTTAGTATAAGAAGATCAGTACTCACTTCTTCATTAATACTAATTTTTAACCTCT +AATTATCAACA +>TY4-LTR#LTR/Copia/TY4p +TGTTGGAACGAGAGTAATTAATAGTGACATGAGTTGCTATAGTAACAATCTAATGCTTAC +ATCGTATATTAATGTACACCTCGTATACGTTTAAGTGTGATTGCACCTATTGCAGAAGGA +ATGTTAAACGAGAAGCTCAGACAATACTGAAGCTGAGTTAAAAATCTATTAGTTGAACAT +GATATGGTAGGTACATATATGAGGAATATGAGTCGTCACATCAATGTATAGTAACTACCG +GAATCACTATTATATTGGTCATAATTAATATGACCAATCGGCGTGTGTTTTATATACCTC +TCTTATTTAGTATAAGAAGATCAGTACTTATTTCTTCATTAGTACTATATTTTAACCTCT +AATTATCAACA +>TY5-LTR#LTR/Copia/TY5 +TGTTGAATGTGATAACCCAAAAGCATGATATGGGTAATGTTTCAGTACTGTTTCAGAATT +GTTTCAGTAATGTTTTAGACAAGGAAAACATAGAGCAGCAAACCTCCGATCCGACAGTAC +TTAAGAAACCATAGTTTCTGTGTACAAGAGTAGTACCTATGTAATTCTTACATTTACATA +ACATATAGAAAGGTCCAATAAACTTACAACATTATGACATATAAGCTAGATCGTAATTCA +CTACGTCAACA +>TY5-LTR#LTR/Copia/TY5p +TGTTGAATGTGATAACCCAAAAGCATGATATGGGTAATGTTTCAGTACTGTTTCAGAATT +GTTTCAGTAATGTTTTAGACAAGGAAAACATAGAGCAGCAAACCTCCGATCCGACAGTAC +TTAAGAAACCATAGTTTCTGTGTACAAGAGTAGTACCTATGTAATTCTTACATTTTACAT +AACATATAGAAAGGTCCAATAAACTTACAACATTATGACATATAAGCTAGATCGTAATTC +ACTACGTCAACA +>TSU4-LTR#LTR/Copia/TSU4p +TGTTGGAATATGTGACTTCGGACATTCCTTAGCGTGAGTCAAAAGTTAATGAAGAGGGCA +AATTCTAATTATAGAATTTTCCGGACAATAAAGATCTATTAATTGATCAGAACTCAGTAT +ATAAGAGAATGAGTTACACCTGTTAACTTATTATTAATGTTCTGAGTTATGTCTAAACCA +TTGGGTTTCATATAACCAATCAGCGTGTGTTTTTATACCTCTCTTATATAATAATAAGAA +AGAACTGCTTATTCTTAATTATTACAACTTACTAAACCAACTAATTATCAACA +>TSU4-LTR#LTR/Copia/TSU4b +TGTTGGAATAAAGTGATCTTGGACATAACATTCTTATGTCAAAACAGGCGATCTCAACAT +TCCTAATATGATATTAATTATGTTGTTCTGAAACAAACATACTTAATGAAGACGAGTTTA +AAGACCTATTAATTGATCAAGAATTAGTATATAAGAAGATGATTTATACCTGAGAACCTA +TTATCAATGTTCTGAATTATACTTGAACCATTGGGTTTCATATAACCAATCAGCGTGCGT +TTTATATACCTCTCTTATATAATAAGAAAGAACTGCTTATTCTTAATTATTACTACCTAC +TAAACTTACTAATTATCAACA diff --git a/data/TE_lib.tidy.fa b/data/TE_lib.tidy.fa new file mode 100644 index 0000000..2fc55ea --- /dev/null +++ b/data/TE_lib.tidy.fa @@ -0,0 +1,1039 @@ +>TY1-I#LTR/Copia +TGGTAGCGCCTGTGCTTCGGTTACTTCTAAGGAAGTCCACACAAATCAAGATCCGTTAGA +CGTTTCAGCTTCCAAAACAGAAGAATGTGAGAAGGCTTCCACTAAGGCTAACTCTCAACA +GACAACAACACCTGCTTCATCAGCTGTTCCAGAGAACCCCCATCATGCCTCTCCTCAAAC +TGCTCAGTCACATTCACCACAGAATGGGCCGTACCCACAGCAGTGCATGATGACCCAAAA +CCAAGCCAATCCATCTGGTTGGTCATTTTACGGACACCCATCTATGATTCCGTATACACC +TTATCAAATGTCGCCTATGTACTTTCCACCTGGGCCACAATCACAGTTTCCGCAGTATCC +ATCATCAGTTGGAACGCCTCTGAGCACTCCATCACCTGAGTCAGGTAATACATTTACTGA +TTCATCCTCAGCGGACTCTGATATGACATCCACTAAAAAATATGTCAGACCACCACCAAT +GTTAACCTCACCTAATGACTTTCCAAATTGGGTTAAAACATACATCAAATTTTTACAAAA +CTCGAATCTCGGTGGTATTATTCCGACAGTAAACGGAAAACCCGTACGTCAGATCACTGA +TGATGAACTCACCTTCTTGTATAACACTTTTCAAATATTTGCTCCCTCTCAATTCCTACC +TACCTGGGTCAAAGACATCCTATCCGTTGATTATACGGATATCATGAAAATTCTTTCCAA +AAGTATTGAAAAAATGCAATCTGATACCCAAGAGGCAAACGACATTGTGACCCTGGCAAA +TTTGCAATATAATGGCAGTACACCTGCAGATGCATTTGAAACAAAAGTCACAAACATTAT +CGACAGACTGAACAATAATGGCATTCATATCAATAACAAGGTCGCATGCCAATTAATTAT +GAGAGGTCTATCTGGCGAATATAAATTTTTACGCTACACACGTCATCGACATCTAAATAT +GACAGTCGCTGAACTGTTCTTAGATATCCATGCTATTTATGAAGAACAACAGGGATCGAG +AAACAGCAAACCTAATTACAGGAGAAATCTGAGTGATGAGAAGAATGATTCTCGCAGCTA +TACGAATACAACCAAACCCAAAGTTATAGCTCGGAATCCTCAAAAAACAAATAATTCGAA +ATCGAAAACAGCCAGGGCTCACAATGTATCCACATCTAATAACTCTCCCAGCACGGACAA +CGATTCCATCAGTAAATCAACTACTGAACCGATTCAATTGAACAATAAGCACGACCTTCA +CCTAGGCCAGGAACTTACTGAATCTACGGTAAATCACACTAATCATTCTGATGATGAACT +CCCTGGACACCTCCTTCTCGATTCAGGAGCATCACGAACCCTTATAAGATCTGCTCATCA +CATACACTCAGCATCATCTAATCCTGACATAAACGTAGTTGATGCTCAAAAAAGAAATAT +ACCAATTAACGCTATTGGTGACCTACAATTTCACTTCCAGGACAACACCAAAACATCAAT +AAAGGTATTGCACACTCCTAACATAGCCTATGACTTACTCAGTTTGAATGAATTGGCTGC +AGTAGATATCACAGCATGCTTTACCAAAAACGTCTTAGAACGATCTGACGGCACTGTACT +TGCACCTATCGTACAATATGGAGACTTTTACTGGGTATCTAAAAGGTACTTGCTTCCATC +AAATATCTCCGTACCCACCATCAATAATGTCCATACAAGTGAAAGTACACGCAAATATCC +TTATCCTTTCATTCATCGAATGCTTGCGCATGCCAATGCACAGACAATTCGATACTCACT +TAAAAATAACACCATCACGTATTTTAACGAATCAGATGTCGACTGGTCTAGTGCTATTGA +CTATCAATGTCCTGATTGTTTAATCGGCAAAAGCACCAAACACAGACATATCAAAGGTTC +ACGACTAAAATACCAAAATTCATACGAACCCTTTCAATACCTACATACTGACATATTTGG +TCCAGTTCACAACCTACCAAAAAGTGCACCATCCTATTTCATCTCATTTACTGATGAGAC +AACAAAATTCCGTTGGGTTTATCCATTGCACGACCGTCGCGAGGACTCTATCCTCGATGT +ATTTACCACGATACTAGCTTTCATTAAAAACCAATTTCAGGCCAGTGTCTTGGTTATACA +AATGGACCGTGGTTCTGAGTATACTAACAGAACTCTCCATAAATTCCTTGAAAAAAATGG +TATAACTCCATGCTATACAACCACAGCGGATTCCCGAGCACATGGAGTCGCTGAACGGCT +AAACCGTACCTTATTAGATGACTGCCGTACTCAACTGCAATGTAGTGGTTTACCGAACCA +TTTATGGTTCTCTGCAATCGAATTTTCTACTATTGTGAGAAATTCACTAGCTTCACCTAA +AAGCAAAAAATCTGCAAGACAACATGCTGGCTTGGCAGGACTTGATATCAGTACTTTGTT +ACCTTTCGGTCAACCTGTTATCGTCAATGATCACAACCCTAACTCCAAAATACATCCTCG +TGGCATCCCAGGCTACGCTCTACATCCGTCTCGAAACTCTTATGGATATATCATCTATCT +TCCATCCTTAAAGAAGACAGTAGATACAACTAACTATGTTATTCTTCAGGGCAAGGAATC +CAGATTAGATCAATTCAATTACGACGCACTCACTTTCGATGAAGACTTAAACCGTTTAAC +TGCTTCATATCATTCGTTCATTGCGTCAAATGAGATCCAAGAATCCAATGATCTTAACAT +AGAATCTGACCATGACTTCCAATCCGACATTGAACTACATCCTGAGCAACCGAGAAATGT +CCTTTCAAAAGCTGTGAGTCCAACCGATTCCACACCTCCGTCAACTCATACTGAAGATTC +GAAACGTGTTTCTAAAACCAATATTCGCGCACCCAGAGAAGTTGACCCCAACATATCTGA +ATCTAATATTCTTCCATCAAAGAAGAGATCTAGCACCCCCCAAATTTCCAATATCGAGAG +TACCGGTTCGGGTGGTATGCATAAATTAAATGTTCCTTTACTTGCTCCCATGTCCCAATC +TAACACACATGAGTCGTCGCACGCCAGTAAATCTAAAGATTTCAGACACTCAGACTCGTA +CAGTGAAAATGAGACTAATCATACAAACGTACCAATATCCAGTACGGGTGGTACCAACAA +CAAAACTGTTCCGCAGATAAGTGACCAAGAGACTGAGAAAAGGATTATACACCGTTCACC +TTCAATCGATGCTTCTCCACCGGAAAATAATTCATCGCACAATATTGTTCCTATCAAAAC +GCCAACTACTGTTTCTGAACAGAATACCGAGGAATCTATCATCGCTGATCTCCCACTCCC +TGATCTACCTCCAGAATCTCCTACCGAATTCCCTGACCCATTTAAAGAACTCCCACCGAT +CAATTCTCGTCAAACTAATTCCAGTTTGGGTGGTATTGGTGACTCTAATGCCTATACTAC +TATCAACAGTAAGAAAAGATCATTAGAAGATAATGAAACTGAAATTAAGGTATCACGAGA +CACATGGAATACTAAGAATATGCGTAGTTTAGAACCTCCGAGATCGAAGAAACGAATTCA +CCTGATTGCAGCTGTAAAAGCAGTAAAATCAATCAAACCAATACGGACAACCTTACGATA +CGATGAGGCAATCACCTATAATAAAGATATTAAAGAAAAAGAAAAATATATCGAGGCATA +CCACAAAGAAGTCAATCAACTGTTGAAGATGAAAACTTGGGACACTGACGAATATTATGA +CAGAAAAGAAATAGACCCTAAAAGAGTAATAAACTCAATGTTTATCTTCAACAAGAAACG +TGACGGTACTCATAAAGCTAGATTTGTTGCAAGAGGTGATATTCAGCATCCTGACACTTA +CGACTCAGGCATGCAATCCAATACCGTACATCACTATGCATTAATGACATCCCTGTCACT +TGCATTAGACAATAACTACTATATTACACAATTAGACATATCTTCGGCATATTTGTATGC +AGACATCAAAGAAGAATTATACATAAGACCTCCACCACATTTAGGAATGAATGATAAGTT +GATACGTTTGAAGAAATCACTTTATGGATTGAAACAAAGTGGAGCGAACTGGTACGAAAC +TATCAAATCATACCTGATACAACAATGTGGTATGGAAGAAGTTCGTGGATGGTCATGCGT +ATTTAAAAACAGTCAAGTGACAATTTGTTTATTCGTAGATGATATGGTATTGTTTAGCAA +AAATCTAAATTCAAACAAAAGAATTATAGACAAGCTTAAGATGCAATACGACACCAAGAT +TATAAATCTAGGCGAAAGTGATGAGGAAATTCAATATGACATTCTTGGCTTGGAAATCAA +ATACCAAAGAGGTAAATACATGAAATTGGGTATGGAAAACTCATTAACTGAAAAAATACC +CAAACTAAACGTACCTTTGAACCCAAAAGGAAGGAAACTTAGCGCTCCAGGTCAACCAGG +TCTATATATAGACCAGCAAGAACTAGAGCTAGAAGAAGATGATTACAAAATGAAGGTACA +TGAAATGCAAAAGCTGATAGGTCTAGCATCATATGTTGGATATAAATTTAGATTTGACCT +ATTATACTACATCAACACACTTGCACAACATATACTATTTCCGTCCAAGCAAGTGTTAGA +TATGACATATGAATTGATACAGTTCATATGGAATACGAGAGATAAGCAATTAATATGGCA +CAAAAGCAAACCTGTTAAGCCAACAAATAAATTAGTTGTTATAAGCGATGCCTCGTATGG +CAACCAACCGTATTATAAATCACAAATTGGCAACATATATTTACTTAATGGAAAGGTAAT +TGGAGGAAAGTCCACCAAGGCTTCATTAACATGTACTTCAACTACGGAAGCAGAAATACA +CGCGATAAGTGAATCTGTCCCATTATTAAATAATCTAAGTTACCTGATACAAGAACTTGA +CAAGAAACCAATTACCAAAGGATTACTAACCGACAGTAAATCTACAATCAGTATAATTAT +ATCCAATAATGAAGAGAAATTTAGGAACAGATTTTTTGGTACTAAAGCAATGAGATTGAG +AGATGAAGTATCAGGAAATCATCTGCACGTATGCTATATCGAAACCAAAAAGAATATTGC +AGACGTAATGACCAAACCTCTTCCGATAAAAACATTCAAACTATTAACAAACAAATGGAT +TCATTAGATCTATTACATTATGGGTGGTA +>TY1-LTR#LTR/Copia +TGTTGGAATAAAAATCCACTATCGTCTATCAACTAATAGTTATATTATCAATATATTATC +ATATACGGTGTTAAGATGATGACATAAGTTATGAGAAGCTGTCATCGAAGTTAGAGGAAG +CTGAAACGCAAGGATTGATAATGTAATAGGATCAATGAATATAAACATATAAAACGGAAT +GAGGAATAATCGTAATATTAGTATGTAGAAATATAGATTCCATTTTGAGGATTCCTATAT +CCTCGAGGAGAACTTCTAGTATATTCTGTATACCTAATATTATAGCCTTTATCAACAATG +GAATCCCAACAATTATCTCAACATTCACATATTTCTCA +>TY1p-I#LTR/Copia +TGGTAGCGCCTGTGCTTCGGTTACTTCTAAGGAAGTCCACACAAATCAAGATCCGTTAGA +CGTTTCAGCTTCCAAAATTCAAGAATATGATAAGGCTTCCACTAAGGCTAACTCTCAACA +GACAACAACACCTGCTTCATCAGCTGTTCCAGAGAACCCCCATCATGCCTCTCCTCAAAC +TGCTCAGTCACATTCACCACAGAATGGGCCGTACCCACAGCAGTGCATGATGACCCAAAA +CCAAGCCAATCCATCTGGTTGGTCATTTTACGGACACCCATCTATGATTCCGTATACACC +TTATCAAATGTCGCCTATGTACTTTCCACCTGGGCCACAATCACAGTTTCCGCAGTATCC +ACCATCAGTTGGAACGCCTCTGAGCACCCCATCACCTGAGTCAGGTAATACATTTACTGA +TTCATCCTCAGCGGACTCTGATATGACATCCACTAAAAAATATGTCAGACCACCACCAAT +GTTAACCTCACCTAATGACTTTCTAAATTGGGTTAAAACATACATCAAATTTTTACAAAA +CTCGAATCTCGGTGATATTATTCCGACAGTATACGGAAAACCCGTACGTCAGATCACTGA +TGATGAACTCACCTTCTTGTATAACACTTTTCAAATATTTGCTCCCTCTCAATTCCTACC +TACCTGGGTCAAAGACATCCTATCTGTTGATTATACGGATATCATGAAAATTCTTTCCAA +AAGTATTGAAAAAACGCAATCTGATACCCAAGAGGCAAATGACATTGTGACCCTGGCAAA +TTTGCAATATAATGGCAGTACACCTGCAGATGCATTTGAAACAAAAGTCACAAACATTAT +CGACAGACTAAATAATAATGGCATTCATATCAATAACAAGGTCGCATGCCAATTAATTAT +GAGAGGTCTATCTGGCGAATATAAATTTTTACGCTACACACGTCATCGACATCTAAATAT +GACAGTCGCTGAACTGTTCTTAGATATCCATGCTATTTATGAAGAACAACAGGGATCGAG +AAACAGTAAACCCAATTACAGGAGAAATCCGAGTGATGAGAAGAATGATTCTCGCAGCTA +TACGAATACAACCAAACCCAAAGTTATAGCTCGGAATCCTCAAAAAACAAATAATTCGAA +ATCGAAAACAGCCAGGGCTCATAATGTATCCACATCTAATAACTCTCCCAGCACTGACAA +CGATTCCATCAGTAAATCAACTACTGAACCGATTCAATTGAACAATAAGCACGACCTTCA +TCTTAGGCCAGAAACTTACTGAATCTACAGTAAATCATACGAATCATTCCGATGATGAAC +TTCCTGGACACCTTCTTCTTGATTCAGGAGCATCACGAACTCTTATAAGATCTGCCCATC +ACATACACTCAGCGATATCTAATCCCGACATAAGCGTAGTTGATGTTCAAAAAAACAATA +TACCAATTAACGCTGTTGGTGATCTTCAATTTCACTTCCAGGACGACACCAAAACAACAA +TAAAGGTATTGCACACACCTAACATAGCCTATGACTTACTCAGTTTGAATGAACTGGCTG +CACTAAATATTACAGCGTGCTTTACCAAAAACGTCTTAGAACGACCTGACGGCACCGTAC +TTGCACCTATCGTAAAACATGGAGACTTTTACTGGGTGTCTAAAAGGTACTTGCTTCCGT +CGAATATCTCAGTACCCACAATTAATAACGTTCACACAAGTGAAAACACACGTAAGTATC +CTTATCCTTTCATTCATCGGATGCTTGCGCATGCCAATGCCCAGACAATTAGATATTCAC +TTAAAAAGAACACTATTACGTATTTCAATGAATCAGATGTTGACTGGTCTAACGCTACTG +ATTATCAATGTCCCGATTGTTTAATCGGCAAAAGCACCAAACATAGACATATCATAGGAT +CACGGCTAAAATACCAAAGTTCATATGAACCTTTTCAATACTTACATACTGACATATTTG +GGCCTGTTCACAACCTACCAAAGAGTGCACCATCCTATTTCATCTCATTCACTGATGAGA +AAACAAAATTCCGTTGGGTTTATCCATTACACGACCGTCGCGAGGACTCTATTCTCGATA +TCTTTACTAAGATACTAGCTTTCATTAAAAACCAGTTTCAGTCCAATGTTTTGGTTATTC +AAATGGACCGTGGTTCTGAGTACACTAACAAAACTCTCCATAAATTCCTTGAAAAATATG +GCATAACCCCATGTTATACAACCACAGCGGATTCCCGAGCACATGGTGTCGCTGAACGGC +TGAACCGTACCTTATTAGATGACTGTCGTACTCAACTGCAATGTAGTGGTCTACCGAATC +ATCTATGGTTCTCGGCAGTCGAATTTTCTACTATCGTACGGAACTCACTAGCTTCACCTA +AAAGCAAAAAATCCGCAAGACAACTCGCTGGGTTGGCAGGACTCGACATCAGTACTTTAT +TACCTTTCGGTCAACCCGTTATAGTCAATAATCATAACCCTGACTCCAAAATTCATCCTC +GTGGCATTCCTGGCTACGCTCTACATCCATCTCGAAACTCTTATGGATATATCATCTATG +TCCCGTCTTTGAAGAAGACAGTAGATACAACTAATTACGTTATTCTTCAGGGCAAGGAAT +CCAGATTAGACCAATTCAATTACGACGCACTCACCTTCGATGAAGACGTGAATCGTATAA +CTGCTTCATATCAATCGTTCATTGCTTCAAATGAGATCCAACAATCTAACGATCTTAACA +TAGAATCTGACCATGATTTTCAATCTGACGTAGAACTGAACCCTGACCACCAGAGAAATG +TCCCTTCAAACGTTCCGATTCCAACTGACTCTCCACCTCCATCAACTCATACTGAAGATT +CAAAACCTATATCTGAAATCAATCTTCGTGCACCCAAAGAAGTTGATCCTAACATATCTG +AATCTAATATTCTTCCATCTAAGAAGAGATCTAACATCCCCCAAATTTCTGCTACCGACA +GTGCCGGTTCGGGTGGTATAAATAAATCAGATGTTCCTTTACTTACTCCTTTGTCCAAAT +CTGACACACAAAATTCATACCAAGCCAGTGAATCTGATGATTTCAGTGACTCAGACTCAC +ACAGCGACATCGATACTGACTCTACAAACGTGACAATACCCAGTTTGGGTGGTATCAACA +ACAAAACTGTTCCGCAGACAAGTGACCAAGAGACTGAGAAAAGGATTATACATCGTTCAC +CTTCAATCGATGCTTCTCCACCGGAAAATAATTCATCGCACAATATTGTTCCTATCAAAA +CGCCAACTAATGTTTCTGAACAGAATACCGAGGAATCTATTATCGCTGATCTCCCACTCC +CTGATCTATCTCCAGAATCTCCTACCGAATTCCCTGACCCATTTAAAGAACTCCCACCGA +TAAATTCTCATCAAACTAATTCCAGTTTGGGTGGTATGGATGACTCTAATATCTCTGCTA +CTATCACTAGTAAGAAAAGATCATTAGAAGATAATGAAACTGAAATTGAGGTATCACGAG +ACACATGGAATAGTAAGAATATGCGTAGCTTAGAACCTCCAAGGTCAAAGAAACGAATAC +ATCTAATCGCGGCTGTAAAAGCAGTAAAATCAATCAAACCAATACGAACAACCTTAAGAT +ACGATGAGGCAATCACCTATAATAAAGATATTAAAGAAAAGGAAAAATATATCGAAGCAT +ACCACAAAGAAGTCAACCAACTGTTGAAAATGAATACTTGGGACACTGACAAATATTATG +ACAGAAAAGAAATAGACCCTAAAAGAGTAATAAACTCAATGTTTATCTTCAACAAGAAAC +GTGACGGAACTCATAAAGCTAGATTTGTTGCAAGAGGTGACATTCAGCATCCTGATACGT +ACGATACAGGTATGCAATCCAACACTGTACATCATTATGCGTTGATGACATCCCTATCAC +TTGCATTAGACGATGACTCCTTCATTACACAATTAGACATATCTTCGGCGTACTTGTATG +CAGACATCAAAGAAGAATTATACATAAGACCTCCACCACATTTAGGAATGAACAACAAGT +TAATACGGTTGAGGAAATCACTTTATGGTTTGAAACAAAGTGGTGCAAACTGGTATGAAA +CGATCAAATCATATCTGATTGAACAATGTGATATGGAAGAAGTTCGCGGATGGTCATGCG +TATTTAAGAACAATCAAGTAACAATCTGCTTATTCGTTGATGATATGATATTGTTCAGCA +AAGACTTAAATTCAAATAAAAGAATTATAGCAAAACTCAAGATGCAATACGATACCAAGA +TTATAAATCTAGGTGAAAGCGATGATGAAATTCAATACGACATCCTTGGCTTAGAAATCA +AATATCAAAGAGGTAAATACATGAAATTAGGTATGGAAAACTCACTAACTGAGAAAATAC +CCAAATTAAACGTACCTTTGAATCCAAAAGGAAGAAAACTTGGTGCTCCAGGTCAACCAG +GTCTCTATATAAACCAGAAGGAGCTAGAGCTAGAAGAAGACGACTACAACATGAAGGTGC +ATGAAATGCAAAAGTTGATAGGTCTAGCGTCATATGTTGGATATAAATTCAGATTTGACC +TATTATACTATATCAACACACTTGCACAACATATACTATTTCCGTCCAAACAAGTGTTAA +ACATGACATATGAATTGATACAATTCTTATGGGACACTAGAGACAAACAATTAATATGGC +ACAAAAGCAAATCTGCAAAACCAGAAAATAAATTAGTTGTAATAAGCGATGCCTCTTATG +GCAACCAACCATATTACAAATCTCAGATTGGTAATATCTATTTACTAAATGGAAAGGTGA +TCGGAGGAAAATCAACAAAAGCTTCATTAACATGTACTTCAACCACAGAAGCAGAAATAC +ACGCAATCAGTGAAGCCATTCCATTATTAAATAACTTGAGTCACCTTATACAAGAACTAA +ATGGGAAATCAATCATTAAAGGCTTACTTACTGACAGCAGATCTACAATCAGTATAGTTA +TGTCCAAAAATGAAGAGAAACTTAGAAACAGATTTTTCGGTACCAAAGCAATGAGACTTC +GGGACGAAGTATCAAATAATAACCTCCACGTATGCTACGTGGATACCAAAAGGAACATTG +CTGACGTGATGACAAAACCCCTCCCAATAAAAACATTTAAACTATTAACAAACAAGTGGA +TTCATTAGATCTATTACATTATGGGTGGTA +>TY1p-LTR#LTR/Copia +TGTTGGAATGAAATTCTAATATCATCTATTTAATAGTATATTATAATATGCGGTGCAAGA +GGATGACATAAAGATTGAGAAACAGTCATCCAATCTAATGGAAGCTGAAATGCAAGGATT +GATAATGTAATAGGATAATGAATAACAACATATAAAAAGAAAGAAGATAAAATAATAACA +CTATGTAGAACTATCGATTCCCTTTTGTGGATTCCTATATCCTCGAGGAGAACTTCTAGT +ATATTCTATATACCTAATATTATAGCCTTTAGTAACAATGGAATCCCAACAATTATCTAA +TTACCCACACAATTCTCA +>TY2-I#LTR/Copia +TGGTAGCGCCTATGCTTCGGTTACTTCTAAGGAAGTCCCATCAAATCAAGATCCGTTAGC +CGTTTCAGCTTCCAATTTACCGGAATTTGATAGAGATTCCACTAAGGTTAATTCTCAACA +AGAGACAACACCTGGGACATCAGCTGTTCCAGAGAACCATCATCATGTCTCTCCTCAACC +TGCTTCAGTACCACCTCCACAGAATGGACAGTACCAACAGCACGGCATGATGACCCCAAA +CAAAGCTATGGCCTCTAACTGGGCACATTACCAACAACCATCTATGATGACGTGTTCACA +TTATCAAACGTCACCTGCGTATTATCAACCGGACCCACACTATCCGTTGCCACAGTATAT +CCCACCACTGAGTACTTCCTCACCTGATCCAATCGATTTAAAAAATCAACACTCTGAAAT +ACCTCAAGCTAAGACAAAGGTGGGAAATAACGTCTTACCACCACACACTTTAACATCAGA +AGAAAACTTTTCTACATGGGTTAAATTTTACATCAGATTTTTGAAGAACTCTAATCTCGG +TGACATCATTCCAAATGACCAGGGTGAAATCAAAAGACAAATGACTTATGAAGAACATGC +GTATATATACAATACCTTCCAAGCATTTGCCCCATTTCATTTATTGCCAACATGGGTAAA +ACAAATTTTAGAAATTAATTATGCTGACATCCTTACAGTCCTTTGTAAAAGTGTGTCCAA +AATGCAAACTAACAATCAAGAATTAAAGGATTGGATAGCTCTTGCCAACCTTGAGTACGA +CGGAAGTACATCTGCTGATACATTTGAAATTACAGTCAGTACGATCATTCAGAGGCTAAA +AGAAAACAATATCAATGTTAGCGACAGATTGGCCTGTCAACTAATACTTAAAGGTCTATC +CGGTGACTTCAAATACCTACGTAATCAATATCGTACCAAAACGAACATGAAACTTTCCCA +ATTATTCGCTGAAATTCAATTAATATATGACGAAAATAAAATCATGAATCTAAATAAACC +GTCCCAATACAAACAACACAGCGAATACAAAAATGTTTCTCGCACATCTCCAAACACGAC +TAACACAAAGGTTACAACTCGTAATTATCATAGAACAAATAGTTCAAAACCAAGAGCAGC +AAAAGCTCACAATATTGCTACATCTAGTAAATTCTCAAGGGTGAACAATGATCACATTAA +TGAATCAACCGTTTCATCACAATACTTAAGCGATGACAACGAACTTAGTCTTAGGCCAGC +AACAGAAAGAATCTAAGCCAACACACACAATAGACTCGAATGACGAACTACCTGATCACC +TTCTTATTGATTCAGGAGCTTCGCAAACGCTTGTCAGATCAGCCCATTATTTACACCATG +CAACACCCAATTCTGAAATAAACATAGTCGATGCTCAAAAACAAGACATTCCTATAAATG +CCATTGGTAATCTTCACTTCAACTTTCAGAACGGCACCAAAACATCAATAAAAGCACTAC +ACACACCAAACATAGCCTATGATCTATTAAGTTTGAGTGAGCTGGCTAACCAAAATATTA +CTGCCTGCTTTACCAGAAACACTTTAGAAAGATCGGATGGTACAGTACTAGCTCCCATAG +TCAAACATGGAGACTTTTACTGGTTATCTAAAAAATACCTAATTCCTTCGCACATTTCAA +AGCTAACAATAAACAACGTCAACAAAAGCAAAAGCGTAAATAAATATCCATATCCGTTAA +TACATCGAATGCTTGGACATGCTAACTTCCGAAGTATTCAGAAGTCTCTTAAGAAGAATG +CAGTTACATATTTGAAGGAATCGGATATTGAATGGTCTAACGCTAGCACATATCAATGTC +CTGACTGTCTAATCGGCAAAAGCACGAAACATAGACATGTCAAAGGATCACGACTAAAGT +ACCAAGAATCATATGAGCCTTTTCAGTACTTGCATACCGATATATTTGGTCCTGTACATC +ACTTACCGAAAAGTGCACCTTCTTACTTTATATCGTTTACAGATGAGAAAACCAGATTCC +AATGGGTGTACCCATTACACGACCGTCGTGAAGAATCTATCCTCAATGTTTTTACATCGA +TATTAGCATTTATTAAGAACCAATTCAATGCTCGCGTTCTAGTTATCCAGATGGATCGTG +GCTCCGAGTACACTAACAAAACTCTTCATAAGTTCTTTACGAACAGAGGTATTACTGCAT +GCTATACAACCACGGCAGATTCTAGAGCACACGGTGTCGCTGAACGATTAAATCGTACTT +TATTAAACGATTGTCGCACACTGCTTCATTGCAGTGGTCTACCAAATCATCTATGGTTCT +CAGCAGTCGAATTTTCTACTATAATCAGAAATTCATTAGTCTCACCAAAAAACGATAAAT +CTGCAAGACAACATGCAGGTTTAGCTGGACTGGACATTACTACTATACTACCTTTCGGTC +AACCGGTTATAGTTAACAACCATAATCCCGACTCGAAAATACATCCTCGTGGCATTCCAG +GTTACGCCTTACATCCGTCACGAAACTCTTATGGCTATATTATCTATCTTCCATCATTAA +AAAAGACAGTAGATACTACCAATTACGTTATATTACAAGACAACCAATCCAAATTGGACC +AATTCAATTATGATACACTCACCTTTGATGATGATCTCAATCGTTTAACAGCCCATAACC +AATCTTTTATTGAACAAAATGAAACAGAGCAGTCATATGATCAAAATACAGAATCTGATC +ATGACTATCAATCGGAGATTGAAATAAACTCTGATCCTCTAGTGAACGACTTCTCGTCCC +AATCAATGAACCCCTTACAATTAGACCACGAACCAGTCCAAAAAGTACGTGCACCAAAAG +AAGTTGATGCCGACATATCTGAATACAATATTCTTCCATCTCCTGTACGATCTCGTACAC +CCCATATCATTAATAAAGAGAGTACCGAAATGGGTGGTACCATTGAATCAGATACTACTT +CACCTAGACACTCGTCTACCTTCACTGCACGAAACCAAAAGCGACCTGGTAGTCCCAATG +ATATGATTGATTTGACCTCACAGGATAGAGTTAATTATGGACTTGAAAACATCAAAACTA +CACGTTTGGGTGGTACGGAGGAACCATATATTCAACGAAATAGTGATACAAATATCAAAT +ACAGGACTACAAATAGTACGCCCTCAATAGATGACCGTTCGTCCAACAGTGAATCCACTA +CTCCCATCATCTCCATAGAAACAAAGGCTGTATGTGATAATACACCCTCCATTGATACGG +ATCCGCCAGAATATCGATCTTCTGACCATGCGACTCCTAATATAATGCCTGACAAATCCT +CAAAAAATGTTACGGCTGATTCTATTCTTGACGACCTCCCACTTCCTGACTTAACCCATA +AATCTCCTACGGACACTTCTGATGTTTCAAAAGATATTCCACACATACACTCTCGTCAGA +CTAATTCCAGTTTGGGTGGTATGGATGATTCTAATGTTCTGACTACTACCAAAAGTAAGA +AAAGATCATTAGAAGATAATGAAACTGAAATTGAGGTATCCCGAGACACATGGAATAATA +AGAATATGAGAAGTCTGGAACCACCAAGATCGAAGAAACGCATAAATTTAATTGCAGCAA +TAAAAGGAGTGAAATCGATCAAACCAGTTCGAACGACCTTAAGATATGATGAAGCAATTA +CATATAATAAAGACAACAAAGAAAAAGACAGATATGTTGAAGCTTATCATAAAGAAATTA +GCCAACTATTGAAAATGAACACTTGGGATACAAACAAATATTATGATAGAAATGACATAG +ATCCTAAAAAAGTAATAAACTCAATGTTTATATTTAACAAGAAACGTGATGGTACACACA +AAGCTAGATTTGTTGCAAGAGGCGACATTCAACACCCCGATACATATGATTCTGATATGC +AATCCAATACCGTACATCACTATGCACTGATGACGTCACTGTCAATCGCATTAGACAACG +ACTATTATATCACACAGCTGGACATATCCTCTGCTTACTTATATGCTGATATCAAAGAAG +AATTATACATAAGACCTCCACCACATTTAGGTTTGAATGATAAATTACTACGTTTGAGAA +AATCACTCTATGGTTTGAAACAAAGTGGTGCAAACTGGTATGAAACCATTAAATCATATT +TAATAAATTGTTGCGACATGCAAGAAGTTCGCGGATGGTCATGCGTATTTAAGAATAGTC +AAGTAACAATTTGCTTATTCGTTGATGATATGATATTATTCAGCAAAGACTTAAATGCAA +ATAAGAAAATCATAACAACACTCAAGAAACAATACGATACAAAGATAATAAATCTGGGTG +AAAGAGATAACGAAATTCAGTACGACATACTTGGATTAGAGATCAAATATCAAAGAAGCA +AGTACATGAAATTAGGTATGGAAAAATCCTTGACAGAAAAATTACCCAAACTAAACGTAC +CTTTGAACCCAAAAGGAAAGAAACTTAGAGCTCCAGGTCAACCAGGTCATTATATAGACC +AGGATGAACTAGAAATAGATGAAGATGAATACAAAGAGAAGGTACATGAAATGCAAAAGT +TGATTGGTCTAGCTTCATATGTTGGATATAAATTTAGATTTGACTTACTATACTACATCA +ACACACTTGCTCAACATATACTATTCCCCTCTAGACAAGTTTTAGACATGACATATGAGT +TAATACAATTCATGTGGGACACTAGAGATAAACAATTAATATGGCACAAAAACAAACCTA +CCAAGCCAGATAATAAACTAGTCGCAATAAGCGATGCTTCATATGGTAACCAACCATATT +ACAAGTCACAAATTGGTAACATTTTCCTACTCAACGGAAAAGTGATTGGAGGAAAGTCGA +CAAAGGCTTCGTTAACATGCACTTCAACTACAGAAGCAGAAATACACGCAGTCAGTGAAG +CTATACCGCTATTGAATAACCTCAGTCACCTTGTGCAAGAACTTAACAAGAAACCAATTA +TTAAAGGCTTACTTACTGATAGTAGATCAACGATCAGTATAATTAAGTCTACAAATGAAG +AGAAATTTAGAAACAGATTTTTTGGCACAAAGGCAATGAGACTTAGAGATGAAGTATCAG +GTAATAATTTATACGTATACTACATCGAGACCAAGAAGAACATTGCTGATGTGATGACAA +AACCTCTTCCGATAAAAACATTTAAACTATTAACAAACAAATGGATTCATTAGATCTATT +ACATTATGGGTGGTA +>TY2-LTR#LTR/Copia +TGTTGGAATAAAAATCAACTATCATCTACTAACTAGTATTTACGTTACTAGTATATTATC +ATATACGGTGTTAGAAGATGACGCAAATGATGAGAAATAGTCATCTAAATTAGTGGAAGC +TGAAACGCAAGGATTGATAATGTAATAGGATCAATGAATATTAACATATAAAATGATGAT +AATAATATTTATAGAATTGTGTAGAATTGCAGATTCCCTTTTATGGATTCCTAAATCCTC +GAGGAGAACTTCTAGTATATCTACATACCTAATATTATTGCCTTATTAAAAATGGAATCC +CAACAATTACATCAAAATCCACATTCTCTTCA +>TY3-I#LTR/Gypsy +CCTGGTAGCGTTAAAGGTTACTAATTGTTCAAACGAACCATCGAAAAGCCGAACCTAGCT +ACACCACACCCCAGTATGAGCTTTATGGATCAAATCCCAGGAGGAGGAAATTATCCAAAA +CTCCCAGTAGAATGCCTTCCTAACTTCCCGATCCAACCATCTTTGACCTTCAGAGGTAGA +AATGACTCGCATAAACTGAAAAACTTTATCTCCGAAATAATGTTAAACATGTCTATGATA +TCTTGGCCGAATGATGCCAGTCGTATTGTGTACTGCAGAAGACATTTATTAAACCCCGCT +GCTCAGTGGGCTAATGACTTTGTACAAGAACAAGGTATACTTGAAATAACATTCGACACA +TTCATACAAGGATTATATCAGCATTTCTATAAGCCACCAGATATCAATAAAATCTTTAAT +GCAATCACGCAACTTTCCGAAGCTAAACTTGGTATTGAGCGTCTCAACCAACGATTCAGA +AAGATTTGGGACAGAATGCCACCAGACTTCATGACCGAAAAAGCTGCCATAATGACATAT +ACTAGGCTATTGACAAAGGAAACCTATAATATTGTCAGAATGCACAAACCAGAGACATTA +AAAGACGCCATGGAAGAGGCTTACCAGACAACTGCACTAACTGAAAGATTCTTCCCAGGA +TTCGAACTTGATGCTGATGGAGACACTATCATCGGTGCCACAACCCACTTACAAGAAGAA +TACGACTCTGACTATGATTCAGAAGATAATCTGACCCAGAATGGATACGTCCATACCGTA +AGGACAAGAAGATCTTACAATAAACCAATGTCAAATCATCGAAACAGGAGAAATAACAAC +CCATCTAGAGAAGAATGTATAAAAAATCGGCTATGCTTCTATTGTAAGAAAGAGGGACAT +CGCCTGAACGAATGTAGAGCACGTAAGGCGAGTTCTAACCGATCTTGAACTCGAATCAAA +AGACCAACAAACTCCTTTTATCAAAACCTTACCAATTGTACACTATATCGCCATCCCCGA +GATGGACAATACCGCCGAAAAAACCATAAAAATACAAAACACGAAAGTAAAAACCCTGTT +TGACAGTGGATCACCCACGTCATTTATCCGAAGAGATATTGTAGAACTTCTCAAATACGA +AATCTACGAGACCCCTCCACTCCGTTTTAGAGGATTCGTAGCCACCAAATCCGCCGTTAC +ATCCGAAGCAGTCACCATTGACCTCAAAATCAATGACCTGCATATAACTTTAGCCGCGTA +CATACTGGATAACATGGACTACCAATTGTTAATTGGAAATCCAATCTTACGCCGCTACCC +GAAAATCCTGCACACAGTACTGAATACCAGAGAGAGCCCCGACTCCTTAAAGCCCAAGAC +TTATCGCTCCGAAACCGTTAATAACGTTAGAACCTACTCCGCTGGTAATCGTGGTAACCC +CAGAAACATAAAACTGTCTTTTGCCCCCACCATTCTCGAAGCAACTGACCCGAAATCCGC +TGGTAATCGTGGTGACTCCAGAACCAAAACCCTGTCTCTTGCAACCACTACTCCTGCAGC +AATTGACCCGCTTACGACCCTTGATAACCCAGGTAGTACTCAAAGTACATTTGCGCAATT +CCCGATACCTGAAGAAGCGAGCATCCTAGAAGAGGATGGAAAATACTCCAACGTTGTCTC +AACCATTCAGAGTGTAGAACCTAATGCTACTGATCACAGCAATAAGGACACCTTTTGCAC +TTTGCCAGTTTGGTTACAACAGAAGTATAGAGAGATCATACGTAATGATCTCCCACCAAG +ACCTGCCGACATTAATAACATCCCCGTAAAACATGATATTGAAATTAAACCTGGCGCAAG +ACTACCTCGACTACAGCCATACCATGTTACAGAAAAGAACGAACAAGAAATCAACAAAAT +AGTTCAAAAACTGCTCGATAACAAGTTCATTGTTCCCTCAAAGTCGCCTTGCAGCTCCCC +TGTAGTCCTCGTCCCGAAGAAAGACGGTACCTTCCGACTCTGCGTCGATTACCGCACCCT +GAACAAAGCTACCATCTCCGACCCATTCCCATTACCCAGAATCGACAACCTATTGAGCCG +TATTGGAAATGCCCAGATATTTACCACGCTAGATTTGCATAGTGGTTACCACCAGATCCC +GATGGAACCCAAAGACCGCTACAAAACCGCCTTTGTCACACCATCCGGTAAGTATGAATA +TACCGTCATGCCATTTGGCTTAGTCAATGCACCTAGTACATTCGCAAGATACATGGCTGA +TACATTTAGAGACCTGAGATTCGTCAATGTTTACCTTGATGATATATTAATATTCTCCGA +ATCTCCAGAAGAACATTGGAAACATTTAGACACGGTACTAGAAAGATTAAAGAACGAGAA +CCTCATTGTTAAGAAGAAAAAATGTAAATTTGCATCTGAAGAAACTGAGTTTTTAGGCTA +TAGTATTGGAATCCAGAAAATAGCTCCACTACAGCACAAATGTGCAGCAATCCGAGACTT +TCCGACGCCTAAAACAGTAAAACAAGCACAGAGATTTTTAGGAATGATTAATTACTACAG +ACGATTCATTCCAAATTGCTCCAAGATTGCACAGCCAATCCAACTGTTTATTTGTGACAA +AAGTCAATGGACAGAAAAACAAGACAAGGCAATTGATAAACTAAAAGACGCCTTGTGTAA +CTCCCCCGTCCTAGTACCATTCAACAACAAAGCAAACTACCGACTTACAACAGACGCCTC +AAAAGACGGCATTGGTGCTGTTCTAGAAGAAGTCGACAACAAGAACAAACTTGTTGGTGT +CGTCGGTTACTTCTCTAAATCCTTAGAGAGTGCCCAGAAAAACTATCCTGCTGGCGAATT +AGAACTACTTGGAATTATCAAAGCACTCCACCACTTCCGATATATGCTTCACGGAAAGCA +TTTCACGTTAAGAACAGACCACATTAGTTTGTTATCATTACAAAACAAGAACGAACCCGC +ACGACGCGTGCAACGCTGGTTAGATGACCTAGCCACATATGACTTCACCTTAGAATACCT +AGCTGGACCCAAGAACGTTGTCGCAGATGCCATATCCCGTGCCGTATATACTATAACCCC +CGAAACATCCCGACCTATCGACACAGAAAGCTGGAAATCTTACTACAAATCAGACCCATT +ATGTAGTGCTGTCTTAATTCATATGAAAGAATTGACACAACACAACGTCACACCTGAAGA +TATGTCAGCCTTCCGTAGTTACCAGAAGAAACTCGAACTATCAGAGACCTTCCGAAAGAA +TTATTCCCTAGAAGACGAAATGATCTATTACCAAGACCGACTAGTAGTACCAATAAAACA +ACAGAACGCAGTTATGAGACTATATCATGACCATACCTTATTTGGAGGACATTTTGGTGT +AACAGTGACCCTTGCGAAAATCAGCCCAATTTACTATTGGCCAAAATTACAACATTCGAT +CATACAATACATCAGGACCTGCGTACAATGTCAACTAATAAAATCACACCGACCACGCTT +ACATGGACTATTACAACCACTCCCTATAGCAGAAGGAAGATGGCTTGATATATCAATGGA +TTTTGTGACAGGATTACCCCCGACATCAAATAACTTGAATATGATCCTCGTCGTAGTTGA +TCGTTTTTCGAAACGCGCTCACTTCATAGCTACAAGGAAAACCTTAGACGCAACACAACT +AATAGATCTACTCTTTCGATACATTTTTTCATATCATGGTTTTCCCAGGACAATAACCAG +TGATAGAGATGTCCGTATGACCGCCGACAAATATCAAGAACTCACGAAAAGACTAGGAAT +AAAATCGACAATGTCTTCCGCGAACCACCCCCAAACAGATGGACAATCCGAACGAACGAT +ACAGACATTAAACAGGTTACTAAGAGCCTATGCTTCAACCAATATTCAGAATTGGCATGT +ATATTTACCACAAATCGAATTTGTTTACAATTCTACACCTACTAGAACACTTGGAAAATC +ACCATTTGAAATTGATTTAGGATATTTACCGAATACCCCTGCTATTAAGTCAGATGACGA +AGTCAACGCAAGAAGTTTTACTGCCGTAGAACTTGCCAAACACCTCAAAGCCCTTACCAT +CCAAACGAAGGAACAGCTAGAACACGCTCAAATCGAAATGGAAACTAATAACAATCAAAG +ACGTAAACCCTTATTGTTAAACATAGGAGATCACGTATTAGTGCATAGAGATGCATACTT +CAAGAAAGGTGCTTATATGAAAGTACAACAAATATACGTCGGACCATTTCGAGTTGTCAA +GAAAATAAACGATAACGCCTACGAACTAGATTTAAACTCTCACAAGAAAAAGCACAGAGT +TATTAATGTACAATTCCTGAAAAAGTTTGTATACCGTCCAGACGCGTACCCAAAGAATAA +ACCAATCAGCTCCACTGAAAGAATTAAGAGAGCACACGAAGTTACTGCACTCATAGGAAT +AGATACTACACACAAAACTTACTTATGTCACATGCAAGATGTAGACCCAACACTTTCAGT +AGAATACTCAGAAGCTGAATTTTGCCAAATTCCCGAAAGAACACGAAGATCAATATTAGC +CAACTTTAGACAACTCTACGAAACACAAGACAACCCTGAGAGAGAGGAAGA +>TY3-LTR#LTR/Gypsy +TGTTGTATCTCAAAATGAGATATGTCAGTATGACAATACGTCACCCTGAACGTTCATAAA +ACACATATGAAACAACCTTATAACAAAACGAACAACATGAGACAAAACCCGACCTTCCCT +AGCTGAACTACCCAAAGTATAAATGCCTGAACAATTAGTTTAGATCCGAGATTCCGCGCT +TCCACCACTTAGTATGATTCATATTTTATATAATATATAAGATAAGTAACATTCCGTGAA +TTAATCTGATAAACTGTTTTGACAACTGGTTACTTCCCTAAGACTGTTTATATTAGGATT +GTCAAGACACTCCGGTATTACTCGAGCCCGTAATACAACA +>TY3p-I#LTR/Gypsy +TCTGGTAGCGTTAAAGGTTACTAATTGTTCAAGCAAACCAACGAATCCCTGAACCTAGCT +ACACCAACATCTGTCATGAGCTTTATGGATCAAATCCCAGGAGGAGGAAGTTACCCAAAG +CTTCCGGTGGAATGTCTTCCCAATTTCCCGATCCAACCAGCACTAACCTTCAGAGGTAGA +AATGACTCGCACAAGTTGAAAAACTTCATCTCTGAAATAATGTTAAACATGTCTATGATT +CCTTGGCCCAACGAAGCCAGTCGTATTGTCTATTGTAGAAAACACTTACTGAACCCTGCT +GCTCAATGGGCTAATGATTTTGTCCAAGAGCAAGGCATACTGGAAATAACATTCGACACC +TTCATACAAGGACTCTATCAGCATTTCTATAAGCCACCAGACATCAACAAAATCTTCAAT +ACGATCAATCAACTATCTGAAGCAAAACTGGGTATTGAACGTCTCAACAAACAATTCAAA +ATGATTTGGGACAGAATGCCACCAGACTTTATGACCGAAAAAGCCGCTATTATGACATAT +ACCCGCTTACTGACAAAGGAAACCTACAATATAGTTAGATTGCATAAACCAAAAACGTTG +AGAGGAGCCATGGAGGAGGCTTACCAAACAACAGCACTAACTCAGAGATTCTTCCCAGAA +TTTGAGCTAGACGCCGATGGAGATACTATAATCGCAGCCGCAACTCGTTTACACGAACAG +TACGACTACGACAGTGACCCACAAGAAAACTTTTTGGTCCAGAAGAGACACGTCCACGCA +GTTCGGACAAGAAGATCATACAATAAACCGACCGCGACTTATCACAACAGGAGAAGCAAT +AATCCATCTAGAGAAGAGTGTGTAAAGAACCGTCTCTGTTTTTATTGTAAGAAAGAAGGA +CACCGTCTGAACGAGTGTAGAGCTCGTAATGCGAGTTCTAGCCGATCCTGAACTTAAGTC +GAAAGACCACACGAAACTTTCTATCACATCCCGACCTATTGTACATTATATCGCCATACC +TGAAATGGACAAAACTGCCGAAAAACACATAAAAATAAAAAACACGAAAATAAAAACCCT +GTTTGATAGTGGATCGCCCACATCATTTATCCGAAGAGATACCGTAAATCTCCTGAATCT +GCCAACCCATGATACTCCACCGCTCCGCTTTAGAGGATTCATATCCACCGAATCCGCCAC +CACTTCAGAAGCAGTTACGCTCGACCTTACAGTCGACAATCTGCAAATCAATGTAGCCGC +GTATGTACTCGATAAAATGGACTACCAACTTCTAATCGGAAATCCAATTCTACGCCGCTA +CCCAAAACTCCTGTACACAATCCTGAACACTAAGCAGTGTACCTCCGCCCAGAAGCCCAA +GGCTTACCATCCCGAAAACATTAACTATGTGAAAGCAAAATCCGCTGGTAATCGTGGTAA +CTCCAGAAACAAAACACTGTCCTTTGCCCCCACTATTCCTGAAGCAACTGACCAGAAATC +CGCTGGTAATCGTAGTAACTCCAGAACAAATACTATGTCTTTTGCAACTACCAATCCAGA +AACAACTGACCCGCTTACGACCCTCGACAATCCAGGTAGTACTCAAAGTACATTTGCGCA +ATTCCCGATACCTGAAGAAGCGACCATCCTAGAAGAGGATGGAAAATACTCCAACGTTGT +TTCAACCATACAGAACGTAGAACCTAAAGCTACTGATCACAGCAACAAGGACACATTTTC +AACGTTGCCTGTTTGGTTACAACAGAAGTATATAGAGATTATACGTAATGATCTCCCGCC +AAGACCGGCCAATATCCACAACATGCCCGTAAAACACGACATTGAAATTAAACTTGACAC +AAGACTACCTCGACTACAGCCATATCATGTTACAGAAAGGAACGAACAAGAAATTAACAA +GATCGTTCAAGAACTGCTCGACAACAAGTTCATTGTCCCCTCTAAATCTCCGTGCAGTTC +CCCTGTAGTCCTTGTCCCGAAGAAAGATGGTACGTTTAGACTTTGCGTTGACTACCGTGC +CCTGAACAAGGTTACCATCTCCGACCCATTCCCATTACCCAGAATCGACAACCTATTAAG +CCGTATTGGGAATGCCCAAATATTCACCACGCTAGATTTGCACAGTGGTTATCACCAGAT +TCCAATGGAACCAAAAGACCGCTACAAAACCGCTTTTGTCACCCCGTCCGGTAAATATGA +ATACACTGTCATGCCATTTGGTCTAGTGAATGCACCTAGCACCTTTGCAAGATACATGGC +CGACATTTTCAGAGACTTGAGATTTGTCAATGTCTACCTTGATGATATACTAATCTTCTC +TGAATCCCAAGAAGAACACTGGAAACATTTAGACACAGTTCTTGGAAGACTTAAGAAGGA +AAACCTTATTGTCAAAAAGAAAAAATGCAAGTTTGCATCAGAACAAATTGAATTTCTAGG +TTATAATATTGGAATTCAGAAAATAACCCCATTACAACACAAATGTGCTGCCATTCGAGA +TTTTCCGAAACCCAGAACAGTAAAGCAAGCACAACGATTTTTAGGAATGATTAATTACTA +TAGACGATTCATTCCAAATTGCTCTAAGATTGCACAACCAATCCAGCTCTTTATATGCGA +CAAGAGTCAATGGACAGAAGAGCAGGACAAGGCAATCGAGAAATTAAAATCCGCCCTATG +TAATTCCCCTGTTCTAGTACCATTTAACAACAAAGCAATTTACCGATTAACTACAGACGC +ATCAAAAGATGGCATCGGTGCCGTTCTAGAAGAAGTCAATGCCAAAAACGCACTTGTCGG +TGTCGTCGGTTATTTCTCTAAATCCTTAGAAAGTGCTCAAAAGAACTACCCCGCCGGTGA +ACTAGAACTACTTGGAATTATTAAGGCACTTCACCACTTCCGTTATATGCTCCATGGAAA +ACATTTTACATTGAGAACGGATCACATTAGCTTACTGTCACTGCAGAATAAGAATGAACC +TGCACGAAGAGTTCAAAGATGGTTGGATGACCTAGCCACTTATAACTTCACCCTAGAATA +CTTAGCTGGACCCAAAAACGTCGTCGCAGATGCTATATCCCGTGCCGTGTACACTATAAT +CCCAGAAATACCCCAACCTATCGACCCAGAAAATTGGAAAACTCATTACAAATCAGACCC +ATTATGCAGTGCCACCTTGATTTACATGGAAGAATTGACACAACACAATGTCATGCCTGA +GGATATGTCCGCATTCCGTAGCTATCACAAGAAATTTCAGTTATCAGAGACCTTCCGAAA +GAACTACTCCCTAGAAAATGGAATAATCTACTATCGAGACCGATTAGTAGTCCCGGTAAA +ACAACAGAACGAAGTCATAAAACTGTATCACGATCATACTTTATTCGGAGGCCATTTTGG +TGTAACTGTAACATTTGGAAAGATTGCTCCAATTTTTTACTGGCCGAAATTGCAACATTC +GATTACACAATACATCCGTACCTGCGTACAATGTCAACTCACAAAATCACATCGACCACG +TTCACAAGGACTATTGCAACCGCTTCCCGTAGCAGAAGGAAGATGGCTTAATATATCAAT +GGATTTCGTGACTGGACTACCCGTAACAACAAACGATTTGAATATGATCCTCGTTGTTGT +TGACCGCTTCTCGAAACGCGCTCACTTCATAGCTACAAGGAAAACAGCAGACGCATCACA +GCTAATAAATACGCTATTCCGCTATATCTTTTCATATCATGGTTTCCCGAAAACAATAAC +CAGTGATAGAGACATCCGTATAACCGCAGAAAAATATCAAGAACTTACAAAAAGATTAGG +GATAAAATCGACAATGTCTTCTGCAAACCACCCCCAAACAGATGGACAATCCGAAAGAAC +GATTCAAACATTGAACCGATTGATAAGAGCTTATGCCTCCACCAATACCCGGAACTGGCA +CACCTACTTACCACAAATTGAATTTGTCTATAACTCCACACCGACCAGAACACTTGGAAA +GTCACCATTCGAAATTGATTTAGGATATACTCCCAATGCACCTACCATTAAAACGGATTG +CGAAATCAATGCAAGAAGTTTTACCGCCGTAGAACTGGCCCGACACCTCAAAGCTATTAC +GATCCAAACAAAAGAACGACTAGAGTCTGCTCAGATTGAAATGGAAACTAATAACAACCA +AAGACGTAAAACTTTGTTACTGAACATAGGAGATCACGTACTAGTGCATAGAGATGCATA +CTTCAAGAAAGGAACGTATATGAAGGTACAACCTATATACGTTGGACCATTTCGAGTTGT +CAAGAAAATAAATGATAACGCTTACGAACTCGACCTGGATTCACACAAGAGAAAACATAG +AGTTATTAACGTACAATACCTAAAGAAATTTGTATACCGACCCGACGCATATCCAAAGAA +TAAACCAATCAGTTCCGTTGAAAGAATCAACAGAGCCAATGAAGTCATTGCAGTTATAGG +GATAGATACCACACACAAAACATACTTATGTCGTATGCAGGATGTGGACCCGACAATCTC +AGTAGAATATTCAGAAGCTGAATTCTACCAAATCCCAGAGGAAATACGAAAGTCAATATT +AGCCAATTTTAGACAACTGTACGAAACTCAAGACAACTCCGAGAGAGAGGAAGAT +>TY3p-LTR#LTR/Gypsy +TGTTGTATCTCAAGATGAGATACCTCAGCATTACTAGATTTACCAACCTAGACATAAAAC +ATGTATGAAACACGTACGAAACAATAGACAAGATTGAGTATACTAGGCAACCTACTTGCC +TAAGATGAACCAAACTAACCAAACGTATAAATACCTGAACAATTAGTTTAGATCCGAGAT +TCCGCGCTTCCACCCTTTAGTTAGATTCAGATCTTATATAGATTATATAGGATAAGTAAC +ATTCTGTGAATCACGATAATAATAAGTCTGACAACAAGTTACTCTCCTAAACGACTTTAG +GATTGTCAAGACATCCGGTATTACTCGAGCCCGTAATACAACA +>TY4-I#LTR/Copia +TGGCGACCCCAGTGAGGGGTGAAACAAGAAATGTTATTGACGACAACATTTCTGCGCGGA +TTCAATCGAAAGTCAAAACAAATGATACTGTCAGACAGACGCCATCATCATTAAGAAAAG +TTTCTATTAAAGATGAACAGGTGAGACAATATCAAAGAAACTTAAATAGGTTTAAAACCA +TACTAAATGGTTTAAAGGCAGAAGAGGAAAAACTTTCTGAGGCTGATGATATTCAGATGC +TAGCTGAAAAATTATTAAAACTCGGAGAAACCATTGACAAGGTTGAGAATAGGATTGTGG +ATCTAGTTGAAAAGATACAATTATTGGAAACAAACGAGAACAATAATATATTACATGAAC +ATATAGATGCTACAGGGACTTACTATTTATTCGATACGTTAACTTCAACCAACAAAAGAT +TCTACCCTAAGGATTGTGTTTTTGATTATAGGACTAATAATGTCGAGAACATTCCTATTC +TCTTAAACAATTTTAAAAAATTCATCAAGAAATATCAATTTGATGATGTCTTTGAAAATG +ATATCATAGAAATCGATCCTCGTGAAAATGAAATCTTGTGCAAGATAATCAAAGAAGGAC +TCGGTGAAAGTTTAGATATCATGAACACAAATACAACTGACATTTTTAGGATAATCGATG +GTTTAAAAAAACAAAATATAGAAGTTTGCATGGTAGAGATGTCAGAATTAGAGCCTGGGG +AAAAGGTTTTGGTTGATACAACATGTAGAAATTCCGCATTGTTAATGAATAAACTTCAAA +AGTTGGTACTAATGGAAAAATGGATTTTTTCTAAATGCTGCCAAGATTGTCCTAATCTAA +AGGATTACCTACAAGAAGCTATCATGGGAACCTTACATGAATCCTTAAGAAATTCTGTGA +AACAACGTTTGTACAACATTCCACATGACGTAGGAATTGATCACGAAGAATTTCTAATCA +ATACTGTTATTGAAACAGTAATTGATTTGAGCCCAATTGCAGACGATCAAATAGAAAATA +GCTGCATGTATTGCAAATCTGTTTTCCATTGCTCAATTAACTGCAAAAAGAAACCAAATA +GGGAACTTAGGCCTGACTCGACCAATTTCTCAAAAACCTATTATCTACAAGGTGCACAGA +GACAACAACCACTTAAGTCCAGTGCAAAACGAACAAAAGTCTTGGAACAAGACACAAAAA +AGGTCGAACAAAGTGTACAACAGCAAAAAACTGGTAATTATTGATACCGGTTCCGGAGTA +AACATTACCAATGACAAAACCTTACTGCATAATTACGAAGACAGTAATCGCAGTACACGA +TTTTTTGGTATTGGGAAAAACAGTTCAGTGTCTCTTAAAGGGTATGGCTATATAAAAATC +AAGAATGGTCACAACAATACTGACAATAAGTGTCTATTAACTTACTATGTACCGGAAGAA +GAATCCACTATAATCAGCTGTTATGACTTAGCCAAGAAAACCAAAATGGTTTTAAGTCGA +AAATATACCAGATTGGGAAACAAAATCATAAAAATTAAAACCAAGATAGTTAATGGTGTC +ATTCACGTAAAAATGAACGAGTTAATTGAACGTCCTTCCGATGATTCAAAAATAAATGCA +ATAAAACCTACTTCTTCTCCTGGATTTAAACTAAATAAAAGGTCTATTACCTTGGAAGAT +GCTCATAAAAGAATGGGCCATACAGGAATTCAACAAATTGAAAATTCCATAAAACATAAT +CATTATGAAGAATCCCTTGACTTAATCAAAGAACCAAATGAATTTTGGTGTCAAACCTGT +AAAATCTCTAAAGCCACGAAAAGAAATCATTATACCGGGTCTATGAATAATCATAGTACT +GATCATGAACCAGGCTCATCATGGTGCATGGATATATTTGGCCCTGTATCAAGTTCAAAC +GCGGACACTAAAAGGTACATGCTTATTATGGTGGATAACAACACGAGATATTGCATGACC +TCCACACACTTCAATAAGAATGCTGAAACTATTTTAGCTCAAGTTAGAAAGAATATTCAG +TACGTGGAAGCACAATTTGACAGGAAAGTCAGAGAAATTAATTCAGACAGAGGTACTGAA +TTCACAAATGATCAGATAGAAGAATATTTTATTTCAAAAGGAATACATCACATACTTACT +TCTACACAAGATCATGCTGCTAACGGAAGAGCAGAAAGATACATAAGAACAATAATAACT +GATGCAACAACACTCCTAAGACAAAGTAACTTAAGAGTAAAATTTTGGGAATACGCAGTA +ACTTCTGCTACCAATATAAGAAATTACCTGGAACACAAAAGTACAGGTAAACTACCATTG +AAGGCAATCTCACGTCAACCTGTGACAGTGAGATTAATGTCATTCTTACCATTTGGCGAA +AAAGGAATAATTTGGAATCATAATCACAAAAAATTGAAACCATCTGGACTTCCTTCTATA +ATTCTATGCAAAGATCCAAATAGTTATGGATACAAATTCTTTATACCATCCAAAAATAAA +ATTGTCACATCTGATAATTATACAATTCCCAACTATACAATGGACGGTAGAGTAAGAAAT +ACTCAGAATATTAACAAGAGTCATCAATTCAGTTCAGATAATGATGATGAAGAAGATCAA +ATCGAAACGGTCACAAACTTATGTGAAGCTTTGGAAAACTACGAAGATGATAATAAACCA +ATTACTCGCCTGGAAGATTTGTTCACAGAGGAAGAGTTATCTCAAATAGACTCAAACTCA +AAATACCCATCTCCTAGTAATAACCTAGAAGGGGACTTGGATTACGTATTTTCTGATGTT +GAGGAATCTGGAGATTATGACGTTGAATCTGAACTTTCAACGACAAATAATTCAATCTCA +ACTGATAAAAACAAAATTTTGTCAAACAAGGATTTTAATTCAGAACTTGCATCGACTGAA +ATATCCATCAGTGGAATCGATAAGAAAGGATTAATAAATACAAGTCATATTGATGAAGAT +AAGTATGATGAAAAAGTCCACAGAATTCCATCGATTATACAAGAGAAACTGGTAGGAAGG +AAAAATACTATTAAAATCAATGACGAAAACAAAATCTCCGACAGAATTCGTAGTAAAAAC +ATTGGGAGTATTTTAAACACTGGACTCAGTAGATGTGTAGATATCACCGATGAATCTATT +ACTAACAAAGATGAGTCAATGCACAACGCAAAACCCGAACTAATTCAGGAGCAGTTAAAA +AAAACAAATCATGAAACTTCGTTTCCTAAAGAAGGGAGCATTGGAACAAATGTAAAATTC +CGAAATACAAACAATGAGATTTCTTTAAAAACAGGCGATACGAGTTTACCAATAAAAACT +TTAGAAAGCATTAACAATCACCATAGTAATGATTATTCCACAAACAAAGTTGAAAAGTTT +GAGAAGGAAAATCATCATCCGCCCCCGATTGAGGACATTGTGGATATGAGTGATCAAACT +GATATGGAATCAAACTGTCAGGATGGTAATAACTTAAAAGAATTAAAAGTCACCGATAAA +AATGTACCAACTGACAATGGAACAAATGTGTCACCAAGGTTGGAACAAAATATTGAAGCA +TCTGGATCACCAGTACAAACAGTTAATAAAAGTGCCTTCTTAAACAAAGAATTCAGTTCT +TTGAACATGAAAAGAAAACGGAAAAGACACGATAAAAACAATAGTCTAACAAGCTATGAA +TTAGAAAGAGATAAGAAGCGTTCAAAAAAGAATCGAGTGAAATTAATTCCAGATAATATG +GAAACAGTTTCAGCACCAAAAATTCGAGCCATATATTATAATGAAGCTATTTCAAAAAAT +CCTGACCTCAAAGAAAAACATGAATACAAACAGGCATATCATAAAGAATTACAGAATTTA +AAAGATATGAAGGTATTTGATGTCGATGTGAAGTACAGTAGATCAGAAATCCCTGATAAT +TTAATAGTACCCACCAACACGATATTCACAAAGAAAAGAAATGGGATTTATAAGGCTAGG +ATAGTCTGCAGAGGTGATACTCAGTCACCAGACACTTACAGTGTAATAACTACAGAATCT +TTAAATCACAATCATATTAAGATATTCTTAATGATTGCAAACAACAGAAATATGTTTATG +AAGACCCTGGATATCAATCATGCATTCCTATATGCTAAATTGGAAGAAGAAATATACATC +CCACATCCGCATGATAGGAGATGTGTAGTCAAGCTAAATAAGGCGTTATATGGTCTAAAA +CAGAGTCCTAAAGAATGGAATGATCATCTAAGACAATACTTGAATGGAATTGGACTGAAA +GATAACTCTTATACTCCGGGATTATACCAAACCGAGGATAAAAATCTAATGATTGCAGTC +TATGTTGATGACTGCGTAATTGCGGCAAGCAATGAACAGAGATTGGATGAATTCATAAAC +AAATTGAAAAGTAATTTTGAACTGAAAATTACAGGAACATTAATAGACGATGTACTCGAT +ACAGATATATTAGGAATGGATCTAGTATACAACAAAAGACTTGGTACTATCGATTTAACA +TTAAAATCATTCATAAATAGAATGGATAAAAAATACAACGAGGAATTGAAAAAGATTAGA +AAAAGTTCAATTCCGCATATGTCAACTTATAAAATAGATCCTAAGAAAGACGTACTGCAA +ATGTCAGAAGAAGAGTTTAGACAAGGTGTTCTAAAGCTACAACAATTACTAGGTGAACTA +AACTATGTCAGACACAAATGCAGATACGACATTGAATTTGCTGTTAAGAAAGTGGCTAGA +CTAGTAAATTACCCACATGAAAGAGTCTTTTATATGATTTACAAAATAATCCAGTACTTG +GTTAGGTATAAAGATATTGGAATACACTATGACCGAGACTGTAATAAAGACAAAAAGGTT +ATTGCTATAACTGATGCATCAGTTGGATCAGAATATGATGCTCAATCAAGGATTGGAGTT +ATATTATGGTACGGTATGAATATTTTTAATGTTTATTCTAACAAGAGCACAAACAGATGT +GTATCATCAACAGAAGCAGAGCTTCATGCCATTTATGAAGGCTATGCAGACTCAGAAACG +TTGAAGGTAACATTAAAGGAGCTAGGAGAAGGAGACAATAATGACATTGTCATGATCACT +GACTCAAAGCCAGCCATTCAAGGATTAAATCGCAGCTATCAACAACCAAAAGAGAAATTC +ACTTGGATAAAAACTGAAATAATAAAAGAAAAAATTAAAGAGAAGAGTATAAAACTGTTA +AAAATTACCGGCAAAGGTAATATTGCTGATTTACTAACAAAACCAGTATCAGCATCTGAT +TTTAAAAGATTTATACAAGTATTAAAAAATAAAATAACATCACAGGATATTTTGGCCTCA +ACAGACTATTGATAATTAATTAATGAAGTTCTAAACACACAATGAATATCTGTTGAAGTA +CAATAATATATCTTTAAGGGAGCA +>TY4-LTR#LTR/Copia +TGTTGGAACGAGAGTAATTAATAGTGACATGAGTTGCTATGGTAACAATCTAATGCTTAC +ATCGTATATTAATGTACAACTCGTATACGTTTAAGTGTGATTGCGCCTATTGCAGAAGGA +ATGTTAAACGAGAAGCTCAGACAATACTGAAGCTGTGTTAAAGACCTATTAGTTGAACAT +GTTATGGTAGGTACATATATGAGGAATATGAGTCGTCACATCAATGTATAGTAACTACCG +GAATCACTATTATATTGGTCATAATTAATATGACCAATCGGCGTGTGTTTTATATACCTC +TCTTATTTAGTATAAGAAGATCAGTACTCACTTCTTCATTAATACTAATTTTTAACCTCT +AATTATCAACA +>TY4p-I#LTR/Copia +TGGCGACCCCAGTGAGGGATGGAACAAGAAATGTTATTGACGACAACATTTCTGCGCGGA +TTCAATCGAAAGTCAAAACAAATGATACTGTCAGACAGACGCCATCATCATTAAGAAAAG +TTTCTATTAAAGATGAACAGGTACGGCAATATCAAAGAAACTTAAATAGGTTTAAAACCA +TACTAAATGGTTTAAAGGCAGAAGAGGAAAAACTTTCTGAGGCTGATGATATTCAGATGC +TAGCCGAAAAATTATTAAAACTCGGAGAAACCATTGACAAGGTTGAGAATAGGATTCTGG +ATTTAGTTGAAAAGATACAATTATTGGAAACAAATGAGAACAATAATATTTTACATGAAC +ATACAGATGCTACAGGGACTTACTATTTATTCGATACGTTAACTTCAACCAACAAAAGAT +TCTACCCTAAAGATTGTGTTTTTGATTATAGGACTAACAATGTTGAGAACATTCCTATTC +TTTTAAACAATTTTAAAAAATTTATCAAGAAATATCAATTTGATGATGTCTTTGAAAATG +ATATCATAGAAATCGATCCTCGTGAAAATGAAATCTTGTGCAAAATAATCAAAGAAGGAC +TCGGTGAAAGTTTAGATATCATGAACACAAATACAACTGACATTTTTAGGATAATCGATG +GTTTAAAAAACAAATATAGAAGTCTGCACGGTAGAGATGTCAGAATTAGAGCCTGGGAAA +AGGTTTTGGTTGATACAACATGTAGAAATTCCGCATTATTAATGAATAAACTTCAAAAAT +TGGTACTAATGGAAAAATGGATTTTTTCCAAATGCTGCCAAGATTGTCCCAATCTAAAAG +ATTACCTACAAGAAGCTATCATGGGAACCTTACATGAATCCTTAAGAAATTCTGTGAAAC +AACGTTTGTACAATATTCCACATAACGTAGGAATTAATCACGAAGAATTTCTAATCAATA +CTGTTATTGAAACAGTAATTGATTTGAGCCCAATGGGTGACGATCAAATAGAAAATAGCT +GCATGTATTGCAAATCTGTTTTCCATTGCTCAATTAACTGCAAAAAGAAACCAAATAGAG +AACTTAGGCCTGACACGGCAAATTTCTCAAAAACCTATTATACGCAAGGTGCACAGAGAC +AACAACAACTTAAGTCCAGTACAAAACGAACAAAAGTCTTGGAACAAGACACAAAAAAGG +TCGAACAAAGTGTACAACAGCAAAAAACTGGTAATTATTGATACCGGTTCCGGTGTAAAC +ATTACCAATGACAAAACCTTACTGCATAATTACGAAGACAATACTCGCAGTACACGATTT +TTTGGTATCGGGAAAAACAGCTCAGTGTCTGTTAAAGGGTATGGCTATATAAAAATCAAG +AATGGTCACGACAATACTGACAATAAGTGCTTATTGACTTACTATGTACCGGAAGAAGAA +TCCACTATAATCAGCTGTTATGACTTAGCCAAGAAAACCAAATTGGTTTTAAGTCGAAAA +TATACCAACTTGGGAAACAAAATCATAAAAATAAAAACCAAGATAATAAATGGTGTCATT +CACGTAAAAATGAATGAGTTAATTGAACGTCCTTCCGATGATTCAAAAATAAATGCAATA +AAACCTACTTCTTCTACTGGATTTAAACCAAATAAAATGTCTATTACCTTGGAAGATGCT +CATAAAAGAATGGGCCATACAGGAATTCAACAAATTGAAAATTCCATAAAACATAATCAT +TATGAAGAATACCTTGACTTAATCAAAGAACCAAATGAATTTTGGTGTCAAACCTGTAAA +ATCTCTAAAGCCACGAAAAGAAATCATTATACCGGGTCTATGAATAATCATAGTACTGAT +CATGAACCAGGCTCATCATGGTGCATGGATATATTTGGTCCTGTTTCAAGTTCAAACGCG +GACACTAAAAGGTACATGCTTATTATGGTGGATAACAACACGAGATATTGCATGACCTCC +ACACACTTCAATAAGAATGCTGAAACTATATTAACACAAATCAGAAAGAATATTCAGTAC +GTGGAAACACAATTTGACAGAAAAGTCAGAGAAATTAATTCAGACAGAGGTACTGAATTC +ACAAATGATCAGATAGAAGAATATTTTATTTCAAAAGGAATACATCATATACTTACTTCT +ACACAAGATCATGCTGCTAATGGAAGAGCAGAAAGATACATCAGAACAATAATAACTGAT +GCAACAACACTCCTAAGACAAAGTAACTTAAGAGTAAAATTTTGGGAATACGCAGTAACT +TCTGCTACCAATATAAGAAATTGCCTGGAACACAAACGTACAGGTAAACTACCATTGAAG +GCAATCTCACGTCAACCTGTTACAGTGAGATTAATGTCATTCTTACCATTTGGCGAAAAA +GGAATAATTTGGAACCATAATCACAAAAAATTGAAACCATCGGGACATCCTTCTATAATT +TTATGCAAAGATCCAAATAGTTATGGATACAAATTCTTTATACCATCCATAAATAAAATT +GTCACATCTGATAATTATACAATTCCCAACTATACTATGGACGGTAGAGTAAGAAATACT +CAGAATATTTACAAAAGTCATCAAATCAGTTCACATAATGCTGATGAAGAAGATCAAATC +GATACGGTCACAAACTTATGTGAAGCTTTGGAAAACTACGAAGATGATAATAGACCAATT +ACTCGCCTGGAAGATTTTTTCACAGAGGAAGAGTTATCTCAAATAGACTCAAACGCAAAA +TACCCATCTCCTAGTAATAACCTAGAAGGGGACTTGGATTACGTATTTTCTGATGTTGAA +GAATCTGGAGATTATGACCTTGAATCTGAACTTTCAGCGACAAATACCTCAATCTCAACT +GATAAAAACAAAATTTTGTCAAACAAGGATTCTAATTCAGAACTTGCATCGACTGAAATA +TCCATCAGTGGAATCGATAAAAAAGGATTAATAAATACAACTCATATTGATGAAGATAAT +TGTGATGAAAAAGTCCACAGAATTCCATCGATTATACAAGAAAACCTCGTAGGAAGTAAA +AATACTATTAAAATCAATGACGAAAACAAAATCTCCAACAGAATTCGTAGTAAAAACATT +GGGAGTACATTAAACTCTGGACTCAGTAGATGTGTAGATATTACCGATGAATCTATTACT +AACAAAGATGAGTCAATACACAACCCAAAACCAGAACTAATACAGGAGCAGTTTAATAAA +ACAAACCATGAAACTTCGTTTCCTAAAGAAGGGAGCATTGGAAGAAATGTAAAATTCCGA +AATCCAAACAATGAGATTTCTTTAAAAACAAGCGAAACGAGTTTACCAATAAAAACTTTA +GAAAGTATTAACAATCACCACAGTAATGATTATTCCACAAACAAAGTTGAAAAGTTTGAG +AAGGAAAATCATCATCCGCCCCCGATTGAGGACGTTGTGGATATGAGTGATCAAACAGAT +ATGGAATCAAACTGTCAGGATGATAATAACATAAAAAAATTAGAAGACACCGACGAAAAT +GTACCAACTGAGAATGGAACCAATGTGTCACCAAGGTTGGAACGAAGTAGTAAAAAAAAT +GAGATCAACACTACAACCAATTAAAACGACAACTGAAGCATCTGGATCGTCAGTACAAAC +AGTTAATAAAAGTGCCTTTTTAAACAAAGAATTTAATTCTTTGAATATGAAAAGAAAACG +GAAAAGACACGATAAAAACAATAGCTTAACAAGCTACGAATTAGAAAGAGATAAGAAGCG +TTCAAAGAAGAATCGAGTGAAATTAATTCCAGATAATATGGAAACAAGTTCAGCACCGAA +AATTAGAGCCATATATTATAATGAAGCTATTTCAAAAAATCCTGACCTCAAAGAAAAACA +TGAATACAAACAGGCATATCATAAAGAATTACAAAATCTAAAAGATATGAAGGTATTTGA +TGTCGATGTGAAGTACAGTAGATCAGAAATCCCTGATAATTTAATAGTACCCACCAACAC +AATATTCACAAAGAAGAGAAATGGGATTTATAAGGCTAGGATAGTCTGCAGAGGCGATAC +TCAGTCACCGGACACTTACAATGTAATAACTACAGAATCTTTAAATCACAATCATATTAA +GATATTCTTAATGATTGCAAACAACAGAAATATGTTTATGAAGACTCTGGATATCAATCA +TGCATTCCTATATGCTAAATTGGAAGAAGAAATATACATCCCACATCCGCATGATCGGAG +ATGTGTAGTCAAACTAAATAAGGCGTTATATGGTCTAAAACAGAGTCCTAAAGAATGGAA +TGATCATCTAAGACAATACTTGAATGGTATTGGATTGAAAGATAACTCTTATACTCCGGG +ATTATACCAAACCGAGGATAAAAATCTAATGATTGCAGTTTATGTTGATGACTGCGTAAT +TGCGGCAAACAATGAACAGAGATTGGATGAATTCATAAACAAATTGAAAAGTAATTTTGA +ACTGAAAATTACAGGAACATTAATAGATGATGTACTCGATACAGATATATTAGGAATGGA +CTTAGTATACAACAAAAGACTTGGTACTATCGATTTAACATTGAAATCATTCATAAATAA +AATGGATAAAAAATACAAAGAGGAATTGAAAAAGATTAGAAAAAGTTCAATTCCGCATAC +GTCAACTTATAAAATAGATCCTAAGAAAGACGGACTGCAAATGTCAGAAGAAGAGTTTAG +ACAAGGTGTTCTGAAATTACAGCAATTACTAGGTGAACTAAACTATGTCAGATACAAATG +CAGATACGACATTGAATTTGCTGTTAAGAAAGTGGCTAGACTAGTAAATTACCCACATGA +AAACGTCTTCTATATGATTTACAAAATAATCCAGTACTTGGTTCGGTATAAAGATATTGG +AATACACTATGACCGAGACTGTAATAAAGATAAGAAGGTTATTGCTATTACTGATGCATC +AGTTGGATCAGAATATGATGCTCAATCAAGGATTGGAGTTATATTATGGTACGGGATGAA +TATTTTTAATGTTTATTCTAACAAGAGCACAAACAGATGTGTATCATCAACAGAAGCAGA +GCTTCATGCCATTTATGAGGGCTATGCAGACTCAGAAACGTTGAAGGAAACATTAAAAGA +GCTAGGAGAAGGAGAAAATAATGACATTGTCATGATCACTGACTCAAAGCCAGCCATTCA +AGGATTAAATCGTAGCTATCAACAACCAAAAGAAAAATTCACTTGGATAAAAACTGAAAT +AATAAAAGAAAAAATTAAAGAGAAGAGTATAAAACTGTTAAAAATTACCGGCAAAGGTAA +TATTGCTGATTTACTAACAAAACCAGTATCAGCATCTGATTTTGAAAGATTTATACAAGT +ATTAAAAAATAAAATAACATCACAGGATATTTTGGCCTCAACAGACTATTGATAATTAAT +TAATGAAGTTCTAAACACACAAGGAATATCTGTTGAAGTACAATAATATATCTTTAAGGG +AGCA +>TY4p-LTR#LTR/Copia +TGTTGGAACGAGAGTAATTAATAGTGACATGAGTTGCTATAGTAACAATCTAATGCTTAC +ATCGTATATTAATGTACACCTCGTATACGTTTAAGTGTGATTGCACCTATTGCAGAAGGA +ATGTTAAACGAGAAGCTCAGACAATACTGAAGCTGAGTTAAAAATCTATTAGTTGAACAT +GATATGGTAGGTACATATATGAGGAATATGAGTCGTCACATCAATGTATAGTAACTACCG +GAATCACTATTATATTGGTCATAATTAATATGACCAATCGGCGTGTGTTTTATATACCTC +TCTTATTTAGTATAAGAAGATCAGTACTTATTTCTTCATTAGTACTATATTTTAACCTCT +AATTATCAACA +>TY5-I#LTR/Copia +GGTTATGAGCCCTGAGAGCAATGCTTCAGAGACCATAATTAATCTATCTAATCCCAACAA +TTATAAACAGTGGCTGTACGGTATCGAGACCGCTGCTGAATATGCTAACGAATATATGAA +CGAATTCGTTCATACCGGAGATATCCAATCAATGAAAAGGGATTACAATCTCAGCGCGAA +TGATGAAAGCTTTGTCAAAACCGTATTTAACAGTTTCCTGGTAAAGCTCTACAAGAAAAC +TATCGTGGGTGAAGCTGCATGTGAAATGAACTGGATATGTGATGATTCACTTGGAAGGGT +CTCTGCTTATGATATTTTCTCGCACTTCGAAGAAAACTATAATGAAGTCACTATTGGATC +CAGGCTTACTCTTATAGAGGACTTACCAAATATATCCTCCAAGCCTGTAGATGAAATCGC +TTCCTTTTTGAAAACCCTATTCACAATGCTTGAAGACAATAGCGAAGAACAGGACAAAAA +GAAAAGACGCGATACCAATATCGCGTTGCTATTAATGACCTTCTTACCCGAGTTAAAGGA +ATCATTCCACGAGAAATTCGGTGACTCTAAAGCTCTTCAGCTGTCACAAGTCATTAGATT +CTGTAAATTAAAGGCGTCATCGAATTCATTATCTTCAGTCTCAGATACATTGGTTGCACA +AGACAGAAGAAGCTATCAAAAGAAAGGAAATAAGGGATGTATGATTTGTGGGGCTGATCA +TCGCTTAAGCAACTGTTCTCTGCTTAAAAGAAGAATACCAGAAGCCAGAATCTTTAAATT +ATATCCTAATGACAAGACGAATAGATCTTCATCTGCTAGTGTTGCGATTCCTGACTATGA +AACGCAAGGCCAAACAGCAGGACAGATAACACCAAAGTCCTGGCTCTGTATGTTATCTTC +GACCGTCCCAGCTACCAAATCCTCAGATTGGATTTGTGACACAGGATGTACTTCACACAT +GTGCCACGACCGTTCTATGTTCTCATCATTTACTAGATCCTCTAAGAAAGACTTTGTCAG +AGGAGTCGGCGGTTCCATACCCATCATGGGCTCCGGGACTGTAAACATCGGCACTGTTCA +ATTAAATGACGTATCCTACGTCCCTGATTTACCAGTCAACCTAATATCCATTTGGAAACT +ATGTGCTAAATCCAACTCTTCTGTTACGTTCACAAAAGAGGGTGTCACTGTGAAATCACC +TGATGACGTGATTTCTACGGCTGGGAAGTTAAACAATTATCTGTACATTTTCGATGATCT +TACGCCCGTAACTACCTTCTCTTCGCAAAATTACTTCTGCTCTAAAACATTGGATTCATC +TAAAATGATAACTTCCGCAGCGTTTCATACCGTTGCAGATAAAATGTTGTCGCAACACAT +TTCTCCCACTGCTCTCCCGGTAAAATGGCATGCTCGTATGGGCCATCCCGGAGCAGATAT +TTACAATTCCTTGGCTAGAACTCTGCGTTTTCCAAAATTTAAGACGGCTGAATACACTAT +TTGTCCTACCTGCTCACTAGCAAAAGGAATCATCAAAAAGGGTAAAGTCTCGCTCAAAAA +ATATACCCAACCTCTTCAAATGGTACAGGCTGATCTCTGTGGTGGGTTTCGCTACCAAGA +GTTTCAGTCAAATAAATATTTTCTTACTATCCGTGATGCCTATAGTCGCTACTACTCTGT +AATACATTTAAAATCCAAAGCAGACGCTCCGATAAAATTCATGGAATGGATCAACGAAAC +CGAACAATACTTTAGCTCCCGGGGTGGATTCAAAGTCGGATCTGTTCGTACAGACAATGG +TACAGAATTCGTAAATAAAAATCTTCATGCGTTTTTTAAATCTAAAGGAATAGAGCATCA +GTTAACTATTCCATATCATAGTTATCAAAATGGTGCTGTTGAACGTGCACATCGTACCAT +CGAAGAACGCACTCGTTGTCTCCTTATCGGGGGGCGTGTTCCTCCGTCCTTGTGGTCTGA +AGCTGTTTCTTGCGCAGTCTATTTAATCAATAGGTCCCCTGTAGTGTCCAAAAATAACAG +TATCCCATACTGCCGGTGGTTCAACATCCCCGCAAAAGATTTCGGTATCGCACATCTTCG +AATTTTTGGATGTACAGCATACGCAACCTTACAACCTAGTCTTCGAGACGGCAAACTTGC +CCCAACTGTCATATCTGGTGTTATGGTTGGCTATGACTCTAACCATCGAGGATACAGGAT +TTATCATCCCGAAACTGGCCGCATCTTTGTGAGCAGTCAAGTTCGATTTGACGAACACAT +GTTTCCTCTTGCTGATACAGAGGCAGTTCACGTCTCTCACGACTTTGCCACTTCCGCTAT +TGGGGGGGTGTCCAAATATCCTGAAACAGGGTCAACCGTCTCTGCTCCAAAGAACGACGG +ATCTGACTTGGCAAATTTGCCAATAACTGTTCCCAAAAATGTAAATCAACCAGCACATAA +ACCTAATACCAGTAACATCTCTTCCTCTGATGATGATGAGGATATTTCAATGGAAATCGA +AATGGAAAAACCTATCCCTGAGTGTAACCAAGACAACTTACCAAACTCCGGATGTCCACC +AACAAGGATACAACATTCTAACTTTGAATCCTTACCAACCGTGTCTACCGAAGACGAAAC +TAATTCTTCTATGGAGAAAACTCCTGAAAGAGTTCCAGCGGCACTAACTTATCGAGAAAT +TCCAAAATCATCCGATTCAGAATATATTCCGACATGCCGAAATAGAACTAGACGTGTTAA +AAGAACTAATAAGAAACCAACGCGATCCCGCGAAATAGAAATATATGATATATCACGTCC +AAACGTAATATCGAGTGACAACTTACCTGAAGTTAGAAGTGCCAAGCAAAGAAAGACGGT +GTCCAATACAAATGATACTGTAGCAAGGACAAATAGACTTCCAACCGTGCTACGAACTCT +AGACTCAAACAACATTGACACGCTGCATGTTGCCAGTACTGGTGAAGAAGTGTCCATCGA +AAGACTTTCAAGCATGGCTCTTCAGGAAGCGAAGAACAATTCCGCCAGAACTAATCAAGC +TAATTCTCTTACTGATTGGTTTCCAGTAGGCGCAATGCCGATACCTGACCAGAGGTATCT +ATCCGTTCACGATGGAACATATATCAGCGACTCACAAGATGTGGGTGATACTGACCTCAC +TCCTGCTGTAACCAGGCTAGTTACTGAAGAGAATTCAATCGAATCTCCTCCATCGTTGGA +TTCATCGCCTCCAAATACCTCATTTAACGCGGCTCTAACTGCTATTATCCATAGCACAAA +AAAAGGAAACCCGAAAACCTATGCCCAAGCAATGGGAAGGCCTGACTTTCAAGAATGGCA +CAACGCATGCCTCAAGGAACTTTCCGCGTTCAAAGATCACAATACGTACAAATTGGTGTC +TCTTCCAAAGCAAAGAAGAGCTCTTGGATCGCGCTGGGTATTCACAATAAAAGACTCCGG +GACGTACAAAGCTCGCCTTGTCGCCCAAGGACATACTCAAAAGGCTGGTATTGACTATCA +AGAAACTTTTGCACCAGTCATTCGATATGACTCTGTTAGATTATTTCTGGCCCTTGCTAG +CTGCCTCAAACTAATAGTATATCAGATGGACGTTGACACCGCGTTTCTAAACTCAAAAAT +GAATGAGCCGGTATACGTAAAACAACCACCCGGATTTATTAATGAAAGTAATCCCGACTA +TGTATGGGAACTATACGGCGGTATGTATGGACTCAAGCAAGCCCCATTACTATGGAACGA +ACATATCAACAATACTCTTCAAAAGATTGGTTTTCGTCGACATGAAGGCGAACATGGCTT +ATACTTTCGTTCCACATCTGATGGTCCCATCTACATTGCCCTATACGTAGACGACTTACT +TGTTGCTGCTCCCTCTCCGAAAATATATGACAGGGTTAAGCAGAAACTAACGAAGTTATA +CTCAATGAAGGATCTAGGTAAAGTTGACAAATTCCTCGGTCTTAACATTAATCAATTTTC +AAATGGAGACATCACTCTCTCACTTCAAGACTATATTGCTAAAGCTGCATCTGAAAGCGA +AATAAACATATGTAAGCCTACACAGACTCCGCTCTGTGACTCAAAGCCTCTTTTCGAAAC +AACTTCCCCGCACCTAAAGGACATCACTCCTTATCAGAGCATAGTTGGACAGCTTCTCTT +TTGTGCAAATACTGGTCGTCCTGACATATCTTATCCGGTCTCACTACTCTCCAGGTTTCT +TCGCGAACCTCGCGCAATCCATTTGGAGTCTGCTCGACGAGTTCTACGGTACCTATATAC +CACCAGAAGTATGTGTCTCAAGTATCGTTCTGGATCTCTGTTGGCACTAACTGTATATTG +TGATGCATCTCATGGAGCAATTCACGATCTCCCACACTCTACTGGGGGGTACGTGACTCT +ACTTGCTGGTGCTCCAGTTACGTGGTCATCAAAGAAACTCAAGGGTGTGATTCCTGTATC +ATCTACTGAGGCAGAATACATTACTGCAAGTGAAACTGTCATGGAGATAGAATGGATTCA +AAACTTGTTTGAACACTTAGGCCAGCCACTTATCTCATCAACATTATACGTAGATAATGA +ACCTGCTATAAAACTATCTAAACATCCTGTATTTCACACGAGAACAAAACACATTGCCTT +GAGATATCACAAGCTAAGAAGTGCAGTGGCAGCAGGCATAATTACCATAGAGCATGTTAT +TACAAAGAGACAAGTTGCTGACATATTTACAAAAATCCTTCCAGCAGAATCATTCAAAGC +ACATAGGGCTGTCATGGTGAGGGAACCAGAAACTGCAAAATAACCACTCTCATGCGTATT +CAGTTATGGGGGGA +>TY5-LTR#LTR/Copia +TGTTGAATGTGATAACCCAAAAGCATGATATGGGTAATGTTTCAGTACTGTTTCAGAATT +GTTTCAGTAATGTTTTAGACAAGGAAAACATAGAGCAGCAAACCTCCGATCCGACAGTAC +TTAAGAAACCATAGTTTCTGTGTACAAGAGTAGTACCTATGTAATTCTTACATTTACATA +ACATATAGAAAGGTCCAATAAACTTACAACATTATGACATATAAGCTAGATCGTAATTCA +CTACGTCAACA +>TY5p-I#LTR/Copia +GGTTATGAGCCCTGAGAGCAATGCTTCAGAGACCATAATTAATCTATCTAATCCCAACAA +TTATAAACAGTGGCTGTACGGTATCGAGACCGCTGCTGAATATGCTAACGAATATATGAA +CGAATTCGTTCATACCGGAGATATCCAATCAATGAAAAGGGATTACAATCTCAGCGCGAA +TGATGAAAGCTTTGTCAAAACCGTATTTAACAGTTTCCTGGTAAAGCTCTACAAGAAAAC +TATCGTGGGTGAAGCTGCATGTGAAATGAACTGGATATGTGATGATTCACTTGGAAGGGT +CTCTGCTTATGATATTTTCTCGCACTTCGAAGAAAACTATAATGAAGTCACTATTGGATC +CAGGCTTACTCTTATAGAGGACTTACCAAATATATCCTCCAAGCCTGTAGATGAAATCGC +TTCCTTTTTTGAAAACCCTATTCACAATGCTTGAAGACAATAGCGAAGAACAGGACAAAA +AGAAAAGACGCGATACCAATATCGCGTTGCTATTAATGACCTTCTTACCCGAGTTAAAGG +AATCATTCCACGAGAAATTCGGTGACTCTAAAGCTCTTCAGCTGTCACAAGTCATTAGAT +TCTGTAAATTAAAGGCGTCATCGAATTCATTATCTTCAGTCTCAGATGCATTGGTTGCAC +AAGACAGAAGAAGCTATCAAAAGAAAGGAAATAAGGGATGTATGATTTGTGGGGCTGATC +ATCGCTTAAGCAACTGTTCTCTGCTTAAAAGAAGAATACCAGAAGCCAGAATCTTTAAAT +TATATCCTAATGACAAGACGAATAGATCTTCATCTGCTAGTGTTGCGATTCCTGACTATG +AAACGCAAGGCCAAACAGCAGGACAGATAACACCAAAGTCCTGGCTCTGTATGTTATCTT +CGACCGTCCCAGCTACCAAATCCTCAGATTGGATTTTTGACACAGGATGTACTTCACACA +TGTGCCACGACCGTTCTATGTTCTCATCATTTACTAGATCCTCTAAGAAAGACTTTGTCA +GAGGAGTCGGCGGTTCCATACCCATCATGGGCTCCGGGACTGTAAACATCGGCACTGTTC +AATTAAATGACGTATCCTACGTCCCTGATTTACCAGTCAACCTAATATCCATTTGGAAAC +TATGTGCTAAATCCAACTCTTCTGTTACGTTCACAAAAGAGGGTGTCACTGTGAAATCAC +CTGATGACGTGATTTCTACGGCTGGGAAGTTAAACAATTATCTGTACATTTTCGATGATC +TTACGCCCGTAACTACCTTCTCTTCGCAAAATTACTTCTGCTCTAAAACATTGGATTCAT +CTAAAATGATAACTTCCGCAGCGTTTCATACCGTTGCAGATAAAATGTTGTCGCAACACA +TTTCTCCCACTGCTCTCCCGGTAAAATGGCATGCTCGTATGGGCCATCCCGGAGCAGATA +TTTACAATTCCTTGGCTAGAACTCTGCGTTTTCCAAAATTTTAAGACGGCTGAATACACT +ATTTGTCCTACCTGCTCACTAGCAAAAGGAATCATCAAAAAGGGTAAAGTCTCGCTCAAA +AAATATACCCAACCTCTTCAAATGGTACAGGCTGATCTCTGTGGTGGGTTTCGCTACCAA +GAGTTTCAGTCAAATAAATATTTTCTTACTATCCGTGATGCCTATAGTCGCTACTACTCT +GTAATACATTTAAAATCCAAAGCAGACGCTCCGATAAAATTCATGGAATGGATCAACGAA +ACCGAACAATACTTTAGCTCCCGGGGTGGATTCAAAGTCGGATCTGTTCGTACAGACAAT +GGTACAGAATTCGTAAATAAAAATCTTCATGCGTTTTTTAAATCTAAAGGAATAGAGCAT +CAGTTAACTATTCCATATCATAGTTATCAAAATGGTGCTGTTGAACGTGCACATCGTACC +ATCGAAGAACGCACTCGTTGTCTCCTTATCGGGGGCGTGTTCCTCCGTCCTTGTGGTCTG +AAGCTGTTTCTTGCGCAGTCTATTTAATCAATAGGTCCCCTGTAGTGTCCAAAAATAACA +GTATCCCATACTGCCGGTGGTTCAACATCCCCGCAAAAGATTTCGGTATCGCACATCTTC +GAATTTTTGGATGTACAGCATACGCAACCTTACAACCTAGTCTTCGAGACGGCAAACTTG +CCCCAACTGTCATATCTGGTGTTTATGGTTGGCTATGACTCTAACCATCGAGGATACAGG +ATTTATCATCCCGAAACTGGCCGCATCTTTGTGAGCAGTCAAGTTCGATTTGACGAACAC +ATGTTTCCTCTTGCTGATACAGAGGCAGTTCACGTCTCTCACGACTTTGCCACTTCCGCT +ATTGGGGGGGTGTCCAAATATCCTGAAACAGGGTCAACCGTCTCTGCTCCAAAGAACGAC +GGATCTGACTTGGCAAATTTGCCAATAACTGTTCCCAAAAATGTAAATCAACCAGCACAT +AAACCTAATACCAGTAACATCTCTTCCTCTGATGATGATGAGGATATTTCAATGGAAATC +GAAATGGAAAAACCTATCCCTGAGTGTAACCAAGACAACTTACCAAACTCCGGATGTCCA +CCAACAAGGATACAACATTCTAACTTTGAATCCTTACCAACCGTGTCTACCGAAGACGAA +ACTAATTCTTCTATGGAGAAAACTCCTGAAAGAGTTCCAGCGGCACTAACTTATCGAGAA +ATTCCAAAATCATCCGATTCAGAATATATTCCGACATGCCGAAATAGAACTAGACGTGTT +AAAAGAACTAATAAGAAACCAACGCGATCCCGCGAAATAGAAATATATGATATATCACGT +CCAAACGTAATATCGAGTGACAACTTACCTGAAGTTAGAAGTGCCAAGCAAAGAAAGACG +GTGTCCAATACAAATGATACTGTAGCAAGGACAAATAGACTTCCAACCGTGCTACGAACT +CTAGACTCAAACAACATTGACACGCTGCATGTTGCCAGTACTGGTGAAGAAGTGTCCATC +GAAAGACTTTCAAGCATGGCTCTTCAGGAAGCGAAGAACAATTCCGCCAGAACTAATCAA +GCTAATTCTCTTACTGATTGGTTTCCAGTAGGCGCAATGCCGATACCTGACCAGAGGTAT +CTATCCGTTCACGATGGAACATATATCAGCGACTCACAAGATGTGGGTGATACTGACCTC +ACTCCTGCTGTAACCAGGCTAGTTACTGAAGAGAATTCAATCGAATCTCCTCCATCGTTG +GATTCATCGCCTCCAAATACCTCATTTAACGCGGCTCTAACTGCTATTATCCATAGCACA +AAAAAAAGGAAACCCGAAAACCTATGCCCAAGCAATGGGAAGGCCTGACTTTCAAGAATG +GCACAACGCATGCCTCAAGGAACTTTCCGCGTTCAAAGATCACAATACGTACAAATTGGT +GTCTCTTCCAAAGCAAAGAAGAGCTCTTGGATCGCGCTGGGTATTCACAATAAAAGACTC +CGGGACGTACAAAGCTCGCCTTGTCGCCCAAGGACATACTCAAAAGGCTGGTATTGACTA +TCAAGAAACTTTTGCACCAGTCATTCGATATGACTCTGTTAGATTATTTCTGGCCCTTGC +TAGCTGCCTCAAACTAATAGTATATCAGATGGACGTTGACACCGCGTTTCTAAACTCAAA +AATGAATGAGCCGGTATACGTAAAACAACCACCCGGATTTATTAATGAAAGTAATCCCGA +CTATGTATGGAACTATACGGCGGTATGTATGGACTCAAGCAAGCCCCATTACTATGGAAC +GAACATATCAACAATACTCTTCAAAAGATTGGTTTTCGTCGACATGAAGGCGAACATGGC +TTATACTTTCGTTCCACATCTGATGGTCCCATCTACATTGCCCTATACGTAGACGACTTA +CTTGTTGCTGCTCCCTCTCCGAAAATATATGACAGGGTTAAGCAGAAACTAACGAAGTTA +TACTCAATGAAGGATCTAGGTAAAGTTGACAAATTCCTCGGTCTTAACATTAATCAATTT +TCAAATGGAGACATCACTCTCTCACTTCAAGACTATATTGCTAAAGCTGCATCTGAAAGC +GAAATAAACATATGTAAGCCTACACAGACTCCGCTCTGTGACTCAAAGCCTCTTTTCGAA +ACAACTTCCCCGCACCTAAAGGACATCACTCCTTATCAGAGCATAGTTGGACAGCTTCTC +TTTTGTGCAAATACTGGTCGTCCTGACATATCTTATCCGGTCTCACTACTCTCCAGGTTT +CTTCGCGAACCTCGCGCAATCCATTTGGAGTCTGCTCGACGAGTTCTACGGTACCTATAT +ACCACCAGAAGTATGTGTCTCAAGTATCGTTTCTGGATCTCTGTTGGCACTAACTGTATA +TTGTGATGCATCTCATGGAGCAATTCACGATCTCCCACACTCTACTGGGGGTACGTGACT +CTACTTGCTGGTGCTCCAGTTACGTGGTCATCAAAGAAACTCAAGGGTGTGATTCCTGTA +TCATCTACTGAGGCAGAATACATTACTGCAAGTGAAACTGTCATGGAGATAGAATGGATT +CAAAACTTGTTTGAACACTTAGGCCAGCCACTTATCTCATCAACATTATACGTAGATAAT +GAACCTGCTATAAAAACTATCTAAACATCCTGTATTTCACACGAGAACAAAACACATTGC +CTTGAGATATCACAAGCTAAGAAGTGCAGTGGCAGCAGGCATAATTACCATAGAGCATGT +TATTACAAAGAGACAAGTTGCTGACATATTTACAAAAATCCTTCCAGCAGAATCATTCAA +AGCACATAGGGCTGTCATGGTGAGGGAACCAGAAACTGCAAAATAACCACTCTCATGCGT +ATTCAGTTATGGGGGGA +>TY5p-LTR#LTR/Copia +TGTTGAATGTGATAACCCAAAAGCATGATATGGGTAATGTTTCAGTACTGTTTCAGAATT +GTTTCAGTAATGTTTTAGACAAGGAAAACATAGAGCAGCAAACCTCCGATCCGACAGTAC +TTAAGAAACCATAGTTTCTGTGTACAAGAGTAGTACCTATGTAATTCTTACATTTTACAT +AACATATAGAAAGGTCCAATAAACTTACAACATTATGACATATAAGCTAGATCGTAATTC +ACTACGTCAACA +>TSU4b-I#LTR/Copia +TGGCGACCCCAGTGAGGGATGAGACAAGATATGTTATTGACGACAACATATCTACGCAGG +TTCAATCAAAAGTCAAATTTCAAAACTTAAGTTTTGATACTTCCGTTAAAAACAAACAAA +GGATTCAAACTCAAATTGATTTAAAAATGTATGAAAGATTCTTAAACAAATTAACCACTA +AAAAGAATAAAATTGCAAATGAGGCTGAAGAGGATGATGATATTTCAAATCTCGACCAGT +TAATTGAAGTCGATGAAAAAATTGAAAAAACTAATAATATAATTCTTAGGTTACAAGAAA +AGTTAGAATTGATTGAATTCAATAAAGATGTTAAGAAGTTACATAAAAGAAATGATTCCA +CTGGAACATATTACTTATTCGACACAATTACCTCAAAAAATAATAAATATTATCCTAAGG +ATTGGATATTCAAGTATAAGATGAATAAAATTGGAGATATTCCTGTTTTTTTGAACAACT +TTCACCAATTCATTGAAAAATATGAATTCGATAATGTTTTTGATCAACAAATACAAAACA +TCGATCCCCGTGAAAACGAAATCTTATGTAAGATTATCAAAGAAGGTTTTGATGAAAGTC +CTGATATAATGAACATTAATACAGTTGACATCTTTAGAATCATTAGTGAATTAAAGAAAA +AATACACTCGTTTTTTTGGCAGAGATAGAAGGTTAAAGGCTTGGGAAAAAGTGTTGGTGG +ATACAACTTGTAAGAATACTGAATTATTGATAAATGAACTTCAAAAGTTAATATTAATGG +AAAAATGGATTCTTTCAAAGTGTTGTCAAGATTGTCCAAATCTTACACACATTTTAGAAG +AGGCTATTCTTGGAACCTTACATGAATCTGTGAGAAATCCGGTTAAACAACGTTTACACA +TGTACTCAATTAGTGAAAATGAAAAAACTGAAGAAATTCTGATTAACATCGTAATTGAAA +CAGTAATGGACTTGAGTCCACCTGACTCTCATTATACAGAAAGAAATTGTAAGTACTGTA +AATCGGAATTACACAGCTCTGTGAACTGTAGAAAGAAAGTAAACAGAGAACTTAGGCCTA +CTACATCCAGCTACTCAAAAGGTAATTATTCACAAGGCTCAAACCAAAAAGAATACACAA +AGACTGGCACAAAACCATTCAGAACTTTTGAAAAGACAAAAGAAGAAGAACAAAAAGGGT +TCAAACAAAACTCTAGTAATTATTGATACCGGTTCAGGCGTCAATATTACGAATAATAAG +AATTTATTACACGAGTACGAGGACAACAAAGAAAAAGTAAAATTCTTCGGTATTGGGAAA +GATAACTCAGTTCCTGTTAAAGGATCAGGATACATTAAAATAAAAAGTAACACAAATGAT +GATTACTTATTAACTCATTATGTTCCTGAAGAAAAAACTACCATTATCAGTGGATATGAT +TTAGCCAAAGAAACCGATCTCGTATTAAACCAAAACTACTCCACCTTGGAAAACAAGGAC +ATGAACATTAAAACTCATGTAAAAGATGGAATTATTCACGTAAGAATGGATGACTTAATA +GATCATCCTGCATATGATTATAAAATCAATGCGATACAACCTACTTCTTCTAAAAAAATT +AGACTGAAGCCCAAAATTATAAGCTTAAAAGATGCTCATAAACGAATGGGACATACAGGA +GTTCAACAAATTGAAAACTCTATTAAACATAGTCATTACGAAGAAAGTATTGATTTAATT +AAAGAACCAAATGAATTTTGGTGTGAAACTTGTAAAGTTTCAAAAGCCACGAGAAGGAAC +CATTATGCTGGATCCATGAATGAACACAGTATCGATCATGAACCTGGTTCATCGTGGTGC +ATGGATATCTTTGGTCCAGTATCAAATTCGAACTTGGATACAAAAAGATACATGCTTATT +ATGGTTGATAACAATACAAGATATTGTATCACCTCCACACATTTTAATAAAAATGCTGAA +ACTATCTTGGCACAGATCAAGAAGAATATTCAGTATGTGGAAACTCAATTCGACAGAAAA +GTCAGAGAAATCAATTCAGATCAAGGAACTGAATTTACAAATGATCAAATCGCAAAATAT +TTTGTTTCAAAAGGAATTCATCATATATTTTCCGCTACACAAGATCATGCTGCCAACGGA +AGAGCAGAAAGGTACATCAGAACCATCGTTACTGATGCAACAACTTTGTTAAAACATAGT +AACTTACGTATTAAATTTTGGGAATACGCAGTAATATCTGCTACCAATGTACGCAATTGT +TTAGAAAACAAAACCACAGGTCAACTACCGCTAAAGGCGATATCTAGTCAACCTGTTAAA +GTGAGATTCATGTCCTTCTTACCATTTGGAGAACAAGGAATAATTTGGAATCATAATCAC +AATAAACTAAAACCATCAGGACTTAGTGCTATAATATTATGCAAAGATCCTAATAGTCAC +GGATACAAATTTTTTGTACCATCTATTAAAAAAATTGTCACTTCCGATAATTACACAATT +CCAGACTATGCTGTGGATCCAATATTAAGGAACACACAGAACATATACCTAGATGATCAA +AGCAGATCAGATACTTTCAATGAAGCAGAAAACATAGATGCTGTTTCAAGGTTGTATGAT +TCACTGGAAGATTACGAAGATGATCATAAACAAGTTACACTACTTACAGACTTGTTCACC +ACAGAAGAACTAGCCCAAATCGAAGCTAATTCTAAATATCCATCTCCTAGTGATAATCTA +GAAGGTAATTTAGACTACGTTTTCTCTAACATAGAAGAATCTGACGAAGATGAATACGAT +CATGTAACAAACATGGATGTAGATTCAGAACTTCAATCGAAAGAAAATATCACTACTGAA +AGTGAAACAAACGAAATAAATAAACCAAGTAATACTGATGAGGATGTTTACGAAGAAAAT +GTTTATAGAATTCCTACGGCAATACAAGAAAACCTTGTTGGAAGCCAGAAAACTATAAAC +ATCAATAATGAGGATAATATTGCTAGCAGAATGCAAAAGAATATCAGTGGAAATGAAATA +AACTACAAAGAATTATCAGATGACGACAGTGATTGTAGCCTTCATGATTCTACAAATGAC +TCAGTTACGATTACAAGCAAAAAGGATAATTTAACAGATGATAAAGATTTACAATCACAG +CAAGAATTATTCGAAAAAGTTAGTGATCCAGAAGTATTACCTGAACACATGAAAATTGAA +AAAGATGTGGAGTCTCAAAATTCAGATAATGAAACCTCACAAGGCGTACAGTTTCAACCT +GAATCAATTGTCACATCATCAAGTGACAATGATACTCAAAATGATGACTATTCAACTGAC +AAAGAAAGTCATCACCTGCCCCTGGTTGTAAACGTTATGGACAATACTGACCAAACATAT +GATAAACCAAACAAGGAAAAAAGTAAAAACAACTCTGATATAAGTATCTCACCGAAAGGT +AATAATGAAGAGTTAGTACAATTGGTAGATAGTAACAAAGCCGAAAAACAGGATGCTACA +CTAGAATCATCAGCGATAACAGATGAACCAATTGAAATAGAAAACCCAGCAGCAAACAAA +GCTGGATTCTTAAATAAAGCGTTCAATTCTCTTAATAAGAAAAGGAAGAGACCTATTGAA +AACAAGACTTCCTTTAATGACACAGCTAAAAGAGACAATAAACGTCAAAGAAAAAACATA +ATCAAACTACTTCCGGATAACACAGAAACAAGTTCTGCACCGAGAATAAAAACCATCTAC +TACAATGAAGCTATTTCAAGAAATGCTGATCTCAAAGAAAAACATGCTTATAAAGAGGCA +TACAGGAAAGAATTACAAAATCTCAAGGATATGAATGTATTCGACGTAGATGTCAAATAC +AACAGATCTGATGTTCCTAGTAATTTAATAATTCCGACAAATACAATATTCTCAAAGAAG +AGAAATGGTATTTATAAAGCAAGAATTGTTTGTAGAGGTGATATCCAGACACCAGACACG +TATAATGTTATTGGAACAGAATCACTGAACCATAATCACATTAAAATATTTCTGATGATT +GCAAACAATAGAAACATGTTCATGAAAACATTAGATATTAATCATGCGTTCCTATATGCG +AAATTAGAAGAAGACATATACATTCCACACCCACATGACAGGAGATGTGTTGTTAAACTA +AATAAAGCACTATATGGGCTTAAGCAGAGTCCTAAAGAATGGAACGACCATCTTAGACGA +TATTTAAACAGTATTGGATTAAAAGATAACACTTATACTCCAGGACTATACCAATCCAAG +GATAAAAAACTCATGATCGCAGTTTATGTTGATGACTGTGTGATTGCAGCAAGTGATGAA +CAAAGATTAGATGATTTCATAAACAATTTAGAAAATACCTTTGAGCTAAAAATCACCGGT +ACTCTAATAGATGATATATTGGACACAGACATCTTAGGGATGGACTTGATCTATAACAAA +AAACTTGGTACGGTGGATTTAACGTTAAAATCATTCATAGAAAAAATGGGTGAGAAGTAT +AAAAAGGAATTGGATAAGGTTAGAAAAAGTTCAATTCCACATACATCAGTATACAAGATT +GATCCCAAAAAGGGAGAATTAAAGATGACCGAAAAAGAATATAAAAACGGTGTGTTGAAA +TTACAACAACTACTAGGAGAACTTAACTATGTTAGGTACAAGTGTAGATACGATGTTGAA +TTTGCGGTCAAGAAAGTAGCTAGATTAGTAAACTTTCCTCATGAACAGGTATTTTACATG +ATTTACAAAATCATACAATATTTAGTACAACATACGAATATCGGAATACACTATGATAGA +GACCTCAACAAAGATAAGAAAATCACTACTATCACTGATGCATCAGTTGGAACAGAATAC +GATGCGCAATCAAGAATTGGAGTTATAATTTGGTATGGAAAGAACATTTTCAATGTATAC +TCAAATAAAAGCACCAACAAGTGCGTATCCTCAACCGAAGCGGAACTTCATGCTATCTAT +GAAGGTTATGCAGACTCAGAAACCCTGAAAGCAACCTTAACAGAACTCGGAGAAGGTAAA +GATAAAGAAATTACAATGATTACGGATTCAAAACCAGCTATTGAAGGCTTAAATCGTAGT +TACCTACAACCGAAACAGAAGTTCACATGGATAAAAACCGAAATAATTAAAGAGAAGCTA +AAAGAGAAGATTATAAAACTAATAAAAATCAATGGTAAAGACAATATAGCAGATTTACTC +ACAAAACCAGTATCAATTTCTGACTTTGATAGATTTATTAAAGTATTGAATAATCAGATA +ACACCACAGGATATTTTGGCCTCAACGGACTATTGATAATTACATTACTTAATTAAGAAC +CAAACGCACAACAGATATCTGTTGGAGTACAATAATATATCTTTAAGGGGGC +>TSU4b-LTR#LTR/Copia +TGTTGGAATAAAGTGATCTTGGACATAACATTCTTATGTCAAAACAGGCGATCTCAACAT +TCCTAATATGATATTAATTATGTTGTTCTGAAACAAACATACTTAATGAAGACGAGTTTA +AAGACCTATTAATTGATCAAGAATTAGTATATAAGAAGATGATTTATACCTGAGAACCTA +TTATCAATGTTCTGAATTATACTTGAACCATTGGGTTTCATATAACCAATCAGCGTGCGT +TTTATATACCTCTCTTATATAATAAGAAAGAACTGCTTATTCTTAATTATTACTACCTAC +TAAACTTACTAATTATCAACA +>TSU4p-I#LTR/Copia +TGGCGACCCCAGTGAGGGATGACACAAGATATGTTACTGACTACAACATTTCTAACCTGG +TTCAATCAAAAGTCAAACTCCAAAAATCAAGTATTGATATTTCCGTTAAAAACAAACTAA +GGAATCAAACTCAAATCGATTTGAAAACGTATGAAAGATTCTTACACAGATTAACCACTA +AAAAGAATAAAATTACAAATGAGGCTGAAGAGGATGACGATATTTCAAATCTCGACCTTT +TAATTGAAGTAGATGAAAAAATCGAAAAAACTAATAATATAATTCTTAGGTTACAAGAAA +AGTTAGAATCGATTGAATTAGATAAAGATGCTAAGAAGTTACACGAAAGAAATGATTCCA +CTGGAACATATTACTTATTCGATACTCTTACCTTAAAAAACAGGAAATATTATCCTAAGG +ATTGGATTTTCAAGCATAAAATGAATAAAATTGGAGATATTCCTGTGTTTTTGAACAGCT +TTCAACAATTCATTGAAAAGCATGAATTCGATAATATTTTTGAACAACAAATACAAAACA +TCGATCCTCGTGAAAACGAAATCTTGTGTAAGATTATCAAAGAAGGTTTCGATGAAAGTC +CTGATATAATGAACATTAACACAGTTGACATCTTTAGAATCATTCGTGATTTAAAGAAAA +AATACACAAGCCTTTTTGGCAGAGATGTAAGACTAAAGGCTTGGGAAAAAGTGTTGGTGG +ATACAACTTGTAAGAATACTGACTTATTGATGAATGAACTTCAAAAGTTAGTATTAATGG +AAAAATGGATCCTTTCAAAATGTTGTCAAGACTGTCCAAATCTCACACACATTTTAGTAG +AAGCAATTCTTGGAACCTTACATGAATCGTTGAGAAATCCGGTTAAGCAACGTTTACACA +TCTGCTCAATTGATGAAAATGAGAGAGTCGAAGAAGTTCTAATCAATATCGTAATTGAAA +CAGTAATGGACTTGAGTACAACAGATTTGTATTATCCAGAAAGAAATTGCAAGTACTGTA +AATCGGAATTCCACAGCTCGGTAAATTGTAGAAAGAAACTAACCAGAGAACTTAGGCCTA +CCACGCCCAGTTACTCAAAAGGTTATTATTCGCAAGGTTCAACCCAAAAAGAATACACTA +AAACTGGCACAAACCCAGACAGAGCCGTTAAAAAGGCTAAAGAAGAAGAACAGAAAGGGT +TCAAACAGAAACCTAGTCATTATTGATACTGGGTCAGGCGTCAACATTACGAATAACAAG +AGATTATTACATGAGTATGAAGACAACAAAGAAAAGATAAGATTCTTTGGTATTGGAAAA +AACAATTCAGTTCCCGTTAAAGGATCAGGATACATTAAAATAAAAAGTAACACAAATGAT +GATTACTTATTAACTCATTATGTTCCTGAGGAGGAAACTACCATTATCAGTGGCTATGAG +TTAGCTAAAGAAACCGATCTTGTCTTGAACAAAAACTACTCCACGTTGGAAAACAAGGAC +ATGAACATTAAGACTCATGTAAAAGATGGGATTATTCATGTAAAAATGGACGATTTAATT +GATCATCCTGCATATGATTTTAAAATCAATGCAATACAACCTACTTCTTCTAAAAAAATT +AGACTGAAGCCAAAAATTATAAGCTTAAAAGATGCTCATAAACGAATGGGACATACAGGA +GTTCAACAAATTGAAAACTCCATTAAACATAGCCATTACGAAGAAAGTATTGACTTAATT +AAAGAACCAAATGAATTTTGGTGCGAAACTTGTAAAGTTTCAAAAACCACGAGAAGGAAC +CATTATGCTGGATCTATGAACGAACACAGTATCGGTCATGAACCTGGTTCATCGTGGTGC +ATGGATATCTTTGGTCCAGTATCGAACTCGAACTCGGATACGAAAAGATACATGTTTATT +ATGGTTGATAACAATACAAGATATTGTATCACCTCCACACATTTTAACAAAAATGCTGAA +ACTATCTTAGCACAGATCAAGAAGAATATTCAGTATGTGGAAACTCAATTTGACAGAAAA +GTCAGAAAAATCAATTCAGATCAAGGAACTGAATTCACAAATGATCAGATAGCAGAATAT +TTTGTTTCAAAAGGAATTCATCATATTTTTTCCGCTACACAAGATCATGCTGCCAATGGA +AGAGCAGAAAGACACATCAGAACCATCGTTACTGATGCAACAACCTTGTTAAAACATAGT +AACTTGCGTATTAAATTTTGGGAGTATGCAGTAACATCTGCCACCAATGTACGCAATTGT +TTAGAAAACAAAGCCACAGGTCAACTGCCGCTAAAGGCGATCTCTAGTCAACCTGTTAAA +GTGAGATTCATGTCCTTCTTACCATTCGGAGAACAAGGAATAATTTGGAATCATAATCAC +AACAAACTAAGACCTTCAGGACTTCGTGCTATTATATTATGCAAAGACCCTAATAGTCAC +GGATACAAATTTTTTGTACCATCTCTTAAAAAAATTGTCACTTCTGATAATTACACAATT +CCAGACTATGCAGTGGACCCAATATTAAGGAACACCCAGAACATATACCTAGATGATCGA +AGTAGATCAGATACCTTCAATAAGACAGAAAACTCAGATGCAGTTTCAAGGTTATATGAT +GCATTGGAAAATTACGAAGATGATCATAAACAAGTTACACTATTTACAGACTTGTTTACC +ACAGAAGAATTAGCTCAAATCGAAACTAATGCTAAATATCCGTCTCCTAGTGATAATCTA +GAAGGAAATTTAGACTACGTCTTCTCCAACACAGAAGAATCTGAAGAAGATGAATCTGAT +CATGTGACAAACATGGATGTAGATTCAGAACTTAAACCAAATGAAAAGATCACTACAGAA +AGTGAACGAAACGAATTAAATAAATCAAGTAATACTGATGAGGATTTTTACGATGAAAAA +GCTTATAGAATTCCCACGGCAATACAAGAAAACCTTGTTGGAAGCCAGAAGACTATAAAC +ATTAATAATGAGGATAATATTGCTAGCAGAATGCAAAGGAAGATTAGTGGAAATGAAATA +AACTACAATGAATTGTCGGATGACGAGAGCGATTACAGATCTCATGACCTCACAGATGAT +AATATCTCGAAATCCCAGCAAGAAATATTCAAGAAAACTATCGATTCAGAAGTACTACCT +GAACAGATAAACATTGAAAAACATGTTACATTGCAAGATTCGGATAATGATACGTCACAA +TGCGTAGAGGCTCAGCCTGAGTCAATTGTCACATCATCGAAAGAAGATGATGTTCAAAAT +GATGACTATTCTTCTGACAAAGAAAGTCATCACCTGCCCCTGGGTGTAAATGTTATGGAC +AATTCGATCCAAACATGTGTTGAACCAAACAAGGCAGAAAGCAAACACAACTCTGATACA +ATTGCCTCACCGAAAGGTAATAATGAAGAGTTAGTACAATTGGTAGGAAGTAGCGGAGCA +GAAAAACCGGATGCTACACCAGAATCATCAATGACAACAGATGAACCAATTGACCCAGGA +AACCCAGCAGTAAACAAAGCTGGATTCCTAAACAAAACGTTCAATTCTCTCAATAAGAAA +AGAAAGAGACCTGTTGAAAACAAGACTCCCTTCAATGACACAGTTGAAAGAGATTATAAA +CGTCAAAGAAAAAAAATAATCAAACTACTTCCGGATAACACAGAAACAAGTTCTGCACCG +AGAATCAAAACCATCTACTATAATGAAGCTATTTCAAGAAATGTTGATTTCAAAGAAAAA +CATGCTTATAAAGAAGCATACAGGAAGGAATTACAAAATCTCAAGGACATGAAGGTATTC +GACGTTGATGTCAAATACAACAGATCTGATGTTCCCAGTAATTTAATAATCCCGACGAAT +ACAATATTCTCAAAGAAGAGAAATGGCATTTATAAAGCAAGAATTGTTTGTAGAGGTGAT +ATCCAGACACCGGACACGTATAATGTTATTGGAACAGAATCCCTGAACCATAACCACATT +AAAATATTTCTGATGATTGCAAACAATAGGAATATGTTCATGAAAACATTGGATATTAAC +CATGCGTTCCTATATGCTAAATTAGAAGAAGACATATACATTCCACACCCACATGACAGG +AGATGCGTTGTTAAACTAGACAAAGCGTTATATGGTCTCAAGCAGAGTCCTAAAGAATGG +AACGACCATCTTAGACGATATTTAAATAGTGTTGGACTAAAAGATAACACATATACTCCA +GGACTATACCAATCCAAGGATAAAAAACTCATGATCGCAGTTTATGTTGATGACTGTGTG +ATTGCAGCAAGTGATGAACAAAGATTAGATGATTTCATAAGCAATTTAGAAAACACCTTT +GAGCTAAAAATTACTGGTACTCTAATAGATGATATATTGGATACAGACATCTTGGGGATG +GATTTGATCTATAACAAGAAACGTGGCACGGTGGATTTAACGTTAAAATCATTCATAGAA +AAAATGGGTGAGAAGTATAAAAAGGAATTGGATAAGGTTAGAAAAAGTTCAATTCCACAT +ACATCAATATACAGGATTGATCCCAAAAAGGGAGAACTAAAAATGACCGAAAAAGAATAT +AAAGACGGTGTGTTGAAATTACAACAACTACTAGGAGAACTTAATTATTTTAGGTACAAG +TGTAGATACGATGTTGAATTTGCGGTTAAGAAAGTAGCTAGATTAGTTAACTTCCCTCAT +GAACAGGTATTCTACATGATTTACAAAATCATACAATATCTAGTACAACATGCGAATATT +GGAATACACTATGATAGAGACCTTAACAAAGATAAGCAAATCACTACTATTACAGATGCA +TCAGTTGGAACAGAATACGATGCACAATCAAGAATTGGAGTTATAATTTGGTATGGAAAG +AACATTTTCAATGTATACTCAAATAAAAGCACCAACAAGTGTGTATCCTCAACCGAAGCG +GAACTTCATGCTATCTATGAAGGTTATGCAGACTCAGAAACCCTGAAAGCAACCTTAACA +GAACTTGGAGAAGGAAAAAATAAAGAACTTACAATGATTACTGATTCAAAACCAGCTATC +GAAGGCTTAAAACGGAGCTACCTACAACCCAAACAGAAGTTCACATGGATAAAAACCGAA +ATAATTAAAGAGAAACTAAAAGAGAAGACTATAAAACTAATAAAAATCAATGGTAAAGAA +AATATAGCAGATTTACTTACAAAACCAGTATCAATTTCTGACTTTGATAGATTTATTAAG +GTATTGAAGAATAAGATAACACCACAGGATATTTTGGCCTCAACGGACTATTGATAATTA +AATTACTTAATTAAGAACCGAACACACAGCAGATATCTGTTGGAGTACAATAATATATCT +TTAAGGGGGCA +>TSU4p-LTR#LTR/Copia +TGTTGGAATATGTGACTTCGGACATTCCTTAGCGTGAGTCAAAAGTTAATGAAGAGGGCA +AATTCTAATTATAGAATTTTCCGGACAATAAAGATCTATTAATTGATCAGAACTCAGTAT +ATAAGAGAATGAGTTACACCTGTTAACTTATTATTAATGTTCTGAGTTATGTCTAAACCA +TTGGGTTTCATATAACCAATCAGCGTGTGTTTTTATACCTCTCTTATATAATAATAAGAA +AGAACTGCTTATTCTTAATTATTACAACTTACTAAACCAACTAATTATCAACA diff --git a/data/TE_lib.v20221221.LTRonly.tidy.fa b/data/TE_lib.v20221221.LTRonly.tidy.fa new file mode 100644 index 0000000..900797b --- /dev/null +++ b/data/TE_lib.v20221221.LTRonly.tidy.fa @@ -0,0 +1,70 @@ +>TY1/TY2-LTR#LTR/Copia/TY1 +TGTTGGAATAAAAATCCACTATCGTCTATCAACTAATAGTTATATTATCAATATATTATC +ATATACGGTGTTAAGATGATGACATAAGTTATGAGAAGCTGTCATCGAAGTTAGAGGAAG +CTGAAACGCAAGGATTGATAATGTAATAGGATCAATGAATATAAACATATAAAACGGAAT +GAGGAATAATCGTAATATTAGTATGTAGAAATATAGATTCCATTTTGAGGATTCCTATAT +CCTCGAGGAGAACTTCTAGTATATTCTGTATACCTAATATTATAGCCTTTATCAACAATG +GAATCCCAACAATTATCTCAACATTCACATATTTCTCA +>TY1/TY2-LTR#LTR/Copia/TY1p +TGTTGGAATGAAATTCTAATATCATCTATTTAATAGTATATTATAATATGCGGTGCAAGA +GGATGACATAAAGATTGAGAAACAGTCATCCAATCTAATGGAAGCTGAAATGCAAGGATT +GATAATGTAATAGGATAATGAATAACAACATATAAAAAGAAAGAAGATAAAATAATAACA +CTATGTAGAACTATCGATTCCCTTTTGTGGATTCCTATATCCTCGAGGAGAACTTCTAGT +ATATTCTATATACCTAATATTATAGCCTTTAGTAACAATGGAATCCCAACAATTATCTAA +TTACCCACACAATTCTCA +>TY1/TY2-LTR#LTR/Copia/TY2 +TGTTGGAATAAAAATCAACTATCATCTACTAACTAGTATTTACGTTACTAGTATATTATC +ATATACGGTGTTAGAAGATGACGCAAATGATGAGAAATAGTCATCTAAATTAGTGGAAGC +TGAAACGCAAGGATTGATAATGTAATAGGATCAATGAATATTAACATATAAAATGATGAT +AATAATATTTATAGAATTGTGTAGAATTGCAGATTCCCTTTTATGGATTCCTAAATCCTC +GAGGAGAACTTCTAGTATATCTACATACCTAATATTATTGCCTTATTAAAAATGGAATCC +CAACAATTACATCAAAATCCACATTCTCTTCA +>TY3-LTR#LTR/Gypsy/TY3 +TGTTGTATCTCAAAATGAGATATGTCAGTATGACAATACGTCACCCTGAACGTTCATAAA +ACACATATGAAACAACCTTATAACAAAACGAACAACATGAGACAAAACCCGACCTTCCCT +AGCTGAACTACCCAAAGTATAAATGCCTGAACAATTAGTTTAGATCCGAGATTCCGCGCT +TCCACCACTTAGTATGATTCATATTTTATATAATATATAAGATAAGTAACATTCCGTGAA +TTAATCTGATAAACTGTTTTGACAACTGGTTACTTCCCTAAGACTGTTTATATTAGGATT +GTCAAGACACTCCGGTATTACTCGAGCCCGTAATACAACA +>TY3-LTR#LTR/Gypsy/TY3p +TGTTGTATCTCAAGATGAGATACCTCAGCATTACTAGATTTACCAACCTAGACATAAAAC +ATGTATGAAACACGTACGAAACAATAGACAAGATTGAGTATACTAGGCAACCTACTTGCC +TAAGATGAACCAAACTAACCAAACGTATAAATACCTGAACAATTAGTTTAGATCCGAGAT +TCCGCGCTTCCACCCTTTAGTTAGATTCAGATCTTATATAGATTATATAGGATAAGTAAC +ATTCTGTGAATCACGATAATAATAAGTCTGACAACAAGTTACTCTCCTAAACGACTTTAG +GATTGTCAAGACATCCGGTATTACTCGAGCCCGTAATACAACA +>TY4-LTR#LTR/Copia/TY4 +TGTTGGAACGAGAGTAATTAATAGTGACATGAGTTGCTATGGTAACAATCTAATGCTTAC +ATCGTATATTAATGTACAACTCGTATACGTTTAAGTGTGATTGCGCCTATTGCAGAAGGA +ATGTTAAACGAGAAGCTCAGACAATACTGAAGCTGTGTTAAAGACCTATTAGTTGAACAT +GTTATGGTAGGTACATATATGAGGAATATGAGTCGTCACATCAATGTATAGTAACTACCG +GAATCACTATTATATTGGTCATAATTAATATGACCAATCGGCGTGTGTTTTATATACCTC +TCTTATTTAGTATAAGAAGATCAGTACTCACTTCTTCATTAATACTAATTTTTAACCTCT +AATTATCAACA +>TY4-LTR#LTR/Copia/TY4p +TGTTGGAACGAGAGTAATTAATAGTGACATGAGTTGCTATAGTAACAATCTAATGCTTAC +ATCGTATATTAATGTACACCTCGTATACGTTTAAGTGTGATTGCACCTATTGCAGAAGGA +ATGTTAAACGAGAAGCTCAGACAATACTGAAGCTGAGTTAAAAATCTATTAGTTGAACAT +GATATGGTAGGTACATATATGAGGAATATGAGTCGTCACATCAATGTATAGTAACTACCG +GAATCACTATTATATTGGTCATAATTAATATGACCAATCGGCGTGTGTTTTATATACCTC +TCTTATTTAGTATAAGAAGATCAGTACTTATTTCTTCATTAGTACTATATTTTAACCTCT +AATTATCAACA +>TY5-LTR#LTR/Copia/TY5 +TGTTGAATGTGATAACCCAAAAGCATGATATGGGTAATGTTTCAGTACTGTTTCAGAATT +GTTTCAGTAATGTTTTAGACAAGGAAAACATAGAGCAGCAAACCTCCGATCCGACAGTAC +TTAAGAAACCATAGTTTCTGTGTACAAGAGTAGTACCTATGTAATTCTTACATTTACATA +ACATATAGAAAGGTCCAATAAACTTACAACATTATGACATATAAGCTAGATCGTAATTCA +CTACGTCAACA +>TY5-LTR#LTR/Copia/TY5p +TGTTGAATGTGATAACCCAAAAGCATGATATGGGTAATGTTTCAGTACTGTTTCAGAATT +GTTTCAGTAATGTTTTAGACAAGGAAAACATAGAGCAGCAAACCTCCGATCCGACAGTAC +TTAAGAAACCATAGTTTCTGTGTACAAGAGTAGTACCTATGTAATTCTTACATTTTACAT +AACATATAGAAAGGTCCAATAAACTTACAACATTATGACATATAAGCTAGATCGTAATTC +ACTACGTCAACA +>TSU4-LTR#LTR/Copia/TSU4b +TGTTGGAATAAAGTGATCTTGGACATAACATTCTTATGTCAAAACAGGCGATCTCAACAT +TCCTAATATGATATTAATTATGTTGTTCTGAAACAAACATACTTAATGAAGACGAGTTTA +AAGACCTATTAATTGATCAAGAATTAGTATATAAGAAGATGATTTATACCTGAGAACCTA +TTATCAATGTTCTGAATTATACTTGAACCATTGGGTTTCATATAACCAATCAGCGTGCGT +TTTATATACCTCTCTTATATAATAAGAAAGAACTGCTTATTCTTAATTATTACTACCTAC +TAAACTTACTAATTATCAACA diff --git a/data/TE_lib.v20221221.tidy.fa b/data/TE_lib.v20221221.tidy.fa new file mode 100644 index 0000000..a66764e --- /dev/null +++ b/data/TE_lib.v20221221.tidy.fa @@ -0,0 +1,1033 @@ +>TY1-I#LTR/Copia +TGGTAGCGCCTGTGCTTCGGTTACTTCTAAGGAAGTCCACACAAATCAAGATCCGTTAGA +CGTTTCAGCTTCCAAAACAGAAGAATGTGAGAAGGCTTCCACTAAGGCTAACTCTCAACA +GACAACAACACCTGCTTCATCAGCTGTTCCAGAGAACCCCCATCATGCCTCTCCTCAAAC +TGCTCAGTCACATTCACCACAGAATGGGCCGTACCCACAGCAGTGCATGATGACCCAAAA +CCAAGCCAATCCATCTGGTTGGTCATTTTACGGACACCCATCTATGATTCCGTATACACC +TTATCAAATGTCGCCTATGTACTTTCCACCTGGGCCACAATCACAGTTTCCGCAGTATCC +ATCATCAGTTGGAACGCCTCTGAGCACTCCATCACCTGAGTCAGGTAATACATTTACTGA +TTCATCCTCAGCGGACTCTGATATGACATCCACTAAAAAATATGTCAGACCACCACCAAT +GTTAACCTCACCTAATGACTTTCCAAATTGGGTTAAAACATACATCAAATTTTTACAAAA +CTCGAATCTCGGTGGTATTATTCCGACAGTAAACGGAAAACCCGTACGTCAGATCACTGA +TGATGAACTCACCTTCTTGTATAACACTTTTCAAATATTTGCTCCCTCTCAATTCCTACC +TACCTGGGTCAAAGACATCCTATCCGTTGATTATACGGATATCATGAAAATTCTTTCCAA +AAGTATTGAAAAAATGCAATCTGATACCCAAGAGGCAAACGACATTGTGACCCTGGCAAA +TTTGCAATATAATGGCAGTACACCTGCAGATGCATTTGAAACAAAAGTCACAAACATTAT +CGACAGACTGAACAATAATGGCATTCATATCAATAACAAGGTCGCATGCCAATTAATTAT +GAGAGGTCTATCTGGCGAATATAAATTTTTACGCTACACACGTCATCGACATCTAAATAT +GACAGTCGCTGAACTGTTCTTAGATATCCATGCTATTTATGAAGAACAACAGGGATCGAG +AAACAGCAAACCTAATTACAGGAGAAATCTGAGTGATGAGAAGAATGATTCTCGCAGCTA +TACGAATACAACCAAACCCAAAGTTATAGCTCGGAATCCTCAAAAAACAAATAATTCGAA +ATCGAAAACAGCCAGGGCTCACAATGTATCCACATCTAATAACTCTCCCAGCACGGACAA +CGATTCCATCAGTAAATCAACTACTGAACCGATTCAATTGAACAATAAGCACGACCTTCA +CCTAGGCCAGGAACTTACTGAATCTACGGTAAATCACACTAATCATTCTGATGATGAACT +CCCTGGACACCTCCTTCTCGATTCAGGAGCATCACGAACCCTTATAAGATCTGCTCATCA +CATACACTCAGCATCATCTAATCCTGACATAAACGTAGTTGATGCTCAAAAAAGAAATAT +ACCAATTAACGCTATTGGTGACCTACAATTTCACTTCCAGGACAACACCAAAACATCAAT +AAAGGTATTGCACACTCCTAACATAGCCTATGACTTACTCAGTTTGAATGAATTGGCTGC +AGTAGATATCACAGCATGCTTTACCAAAAACGTCTTAGAACGATCTGACGGCACTGTACT +TGCACCTATCGTACAATATGGAGACTTTTACTGGGTATCTAAAAGGTACTTGCTTCCATC +AAATATCTCCGTACCCACCATCAATAATGTCCATACAAGTGAAAGTACACGCAAATATCC +TTATCCTTTCATTCATCGAATGCTTGCGCATGCCAATGCACAGACAATTCGATACTCACT +TAAAAATAACACCATCACGTATTTTAACGAATCAGATGTCGACTGGTCTAGTGCTATTGA +CTATCAATGTCCTGATTGTTTAATCGGCAAAAGCACCAAACACAGACATATCAAAGGTTC +ACGACTAAAATACCAAAATTCATACGAACCCTTTCAATACCTACATACTGACATATTTGG +TCCAGTTCACAACCTACCAAAAAGTGCACCATCCTATTTCATCTCATTTACTGATGAGAC +AACAAAATTCCGTTGGGTTTATCCATTGCACGACCGTCGCGAGGACTCTATCCTCGATGT +ATTTACCACGATACTAGCTTTCATTAAAAACCAATTTCAGGCCAGTGTCTTGGTTATACA +AATGGACCGTGGTTCTGAGTATACTAACAGAACTCTCCATAAATTCCTTGAAAAAAATGG +TATAACTCCATGCTATACAACCACAGCGGATTCCCGAGCACATGGAGTCGCTGAACGGCT +AAACCGTACCTTATTAGATGACTGCCGTACTCAACTGCAATGTAGTGGTTTACCGAACCA +TTTATGGTTCTCTGCAATCGAATTTTCTACTATTGTGAGAAATTCACTAGCTTCACCTAA +AAGCAAAAAATCTGCAAGACAACATGCTGGCTTGGCAGGACTTGATATCAGTACTTTGTT +ACCTTTCGGTCAACCTGTTATCGTCAATGATCACAACCCTAACTCCAAAATACATCCTCG +TGGCATCCCAGGCTACGCTCTACATCCGTCTCGAAACTCTTATGGATATATCATCTATCT +TCCATCCTTAAAGAAGACAGTAGATACAACTAACTATGTTATTCTTCAGGGCAAGGAATC +CAGATTAGATCAATTCAATTACGACGCACTCACTTTCGATGAAGACTTAAACCGTTTAAC +TGCTTCATATCATTCGTTCATTGCGTCAAATGAGATCCAAGAATCCAATGATCTTAACAT +AGAATCTGACCATGACTTCCAATCCGACATTGAACTACATCCTGAGCAACCGAGAAATGT +CCTTTCAAAAGCTGTGAGTCCAACCGATTCCACACCTCCGTCAACTCATACTGAAGATTC +GAAACGTGTTTCTAAAACCAATATTCGCGCACCCAGAGAAGTTGACCCCAACATATCTGA +ATCTAATATTCTTCCATCAAAGAAGAGATCTAGCACCCCCCAAATTTCCAATATCGAGAG +TACCGGTTCGGGTGGTATGCATAAATTAAATGTTCCTTTACTTGCTCCCATGTCCCAATC +TAACACACATGAGTCGTCGCACGCCAGTAAATCTAAAGATTTCAGACACTCAGACTCGTA +CAGTGAAAATGAGACTAATCATACAAACGTACCAATATCCAGTACGGGTGGTACCAACAA +CAAAACTGTTCCGCAGATAAGTGACCAAGAGACTGAGAAAAGGATTATACACCGTTCACC +TTCAATCGATGCTTCTCCACCGGAAAATAATTCATCGCACAATATTGTTCCTATCAAAAC +GCCAACTACTGTTTCTGAACAGAATACCGAGGAATCTATCATCGCTGATCTCCCACTCCC +TGATCTACCTCCAGAATCTCCTACCGAATTCCCTGACCCATTTAAAGAACTCCCACCGAT +CAATTCTCGTCAAACTAATTCCAGTTTGGGTGGTATTGGTGACTCTAATGCCTATACTAC +TATCAACAGTAAGAAAAGATCATTAGAAGATAATGAAACTGAAATTAAGGTATCACGAGA +CACATGGAATACTAAGAATATGCGTAGTTTAGAACCTCCGAGATCGAAGAAACGAATTCA +CCTGATTGCAGCTGTAAAAGCAGTAAAATCAATCAAACCAATACGGACAACCTTACGATA +CGATGAGGCAATCACCTATAATAAAGATATTAAAGAAAAAGAAAAATATATCGAGGCATA +CCACAAAGAAGTCAATCAACTGTTGAAGATGAAAACTTGGGACACTGACGAATATTATGA +CAGAAAAGAAATAGACCCTAAAAGAGTAATAAACTCAATGTTTATCTTCAACAAGAAACG +TGACGGTACTCATAAAGCTAGATTTGTTGCAAGAGGTGATATTCAGCATCCTGACACTTA +CGACTCAGGCATGCAATCCAATACCGTACATCACTATGCATTAATGACATCCCTGTCACT +TGCATTAGACAATAACTACTATATTACACAATTAGACATATCTTCGGCATATTTGTATGC +AGACATCAAAGAAGAATTATACATAAGACCTCCACCACATTTAGGAATGAATGATAAGTT +GATACGTTTGAAGAAATCACTTTATGGATTGAAACAAAGTGGAGCGAACTGGTACGAAAC +TATCAAATCATACCTGATACAACAATGTGGTATGGAAGAAGTTCGTGGATGGTCATGCGT +ATTTAAAAACAGTCAAGTGACAATTTGTTTATTCGTAGATGATATGGTATTGTTTAGCAA +AAATCTAAATTCAAACAAAAGAATTATAGACAAGCTTAAGATGCAATACGACACCAAGAT +TATAAATCTAGGCGAAAGTGATGAGGAAATTCAATATGACATTCTTGGCTTGGAAATCAA +ATACCAAAGAGGTAAATACATGAAATTGGGTATGGAAAACTCATTAACTGAAAAAATACC +CAAACTAAACGTACCTTTGAACCCAAAAGGAAGGAAACTTAGCGCTCCAGGTCAACCAGG +TCTATATATAGACCAGCAAGAACTAGAGCTAGAAGAAGATGATTACAAAATGAAGGTACA +TGAAATGCAAAAGCTGATAGGTCTAGCATCATATGTTGGATATAAATTTAGATTTGACCT +ATTATACTACATCAACACACTTGCACAACATATACTATTTCCGTCCAAGCAAGTGTTAGA +TATGACATATGAATTGATACAGTTCATATGGAATACGAGAGATAAGCAATTAATATGGCA +CAAAAGCAAACCTGTTAAGCCAACAAATAAATTAGTTGTTATAAGCGATGCCTCGTATGG +CAACCAACCGTATTATAAATCACAAATTGGCAACATATATTTACTTAATGGAAAGGTAAT +TGGAGGAAAGTCCACCAAGGCTTCATTAACATGTACTTCAACTACGGAAGCAGAAATACA +CGCGATAAGTGAATCTGTCCCATTATTAAATAATCTAAGTTACCTGATACAAGAACTTGA +CAAGAAACCAATTACCAAAGGATTACTAACCGACAGTAAATCTACAATCAGTATAATTAT +ATCCAATAATGAAGAGAAATTTAGGAACAGATTTTTTGGTACTAAAGCAATGAGATTGAG +AGATGAAGTATCAGGAAATCATCTGCACGTATGCTATATCGAAACCAAAAAGAATATTGC +AGACGTAATGACCAAACCTCTTCCGATAAAAACATTCAAACTATTAACAAACAAATGGAT +TCATTAGATCTATTACATTATGGGTGGTA +>TY1-LTR#LTR/Copia +TGTTGGAATAAAAATCCACTATCGTCTATCAACTAATAGTTATATTATCAATATATTATC +ATATACGGTGTTAAGATGATGACATAAGTTATGAGAAGCTGTCATCGAAGTTAGAGGAAG +CTGAAACGCAAGGATTGATAATGTAATAGGATCAATGAATATAAACATATAAAACGGAAT +GAGGAATAATCGTAATATTAGTATGTAGAAATATAGATTCCATTTTGAGGATTCCTATAT +CCTCGAGGAGAACTTCTAGTATATTCTGTATACCTAATATTATAGCCTTTATCAACAATG +GAATCCCAACAATTATCTCAACATTCACATATTTCTCA +>TY1p-I#LTR/Copia +TGGTAGCGCCTGTGCTTCGGTTACTTCTAAGGAAGTCCACACAAATCAAGATCCGTTAGA +CGTTTCAGCTTCCAAAATTCAAGAATATGATAAGGCTTCCACTAAGGCTAACTCTCAACA +GACAACAACACCTGCTTCATCAGCTGTTCCAGAGAACCCCCATCATGCCTCTCCTCAAAC +TGCTCAGTCACATTCACCACAGAATGGGCCGTACCCACAGCAGTGCATGATGACCCAAAA +CCAAGCCAATCCATCTGGTTGGTCATTTTACGGACACCCATCTATGATTCCGTATACACC +TTATCAAATGTCGCCTATGTACTTTCCACCTGGGCCACAATCACAGTTTCCGCAGTATCC +ACCATCAGTTGGAACGCCTCTGAGCACCCCATCACCTGAGTCAGGTAATACATTTACTGA +TTCATCCTCAGCGGACTCTGATATGACATCCACTAAAAAATATGTCAGACCACCACCAAT +GTTAACCTCACCTAATGACTTTCTAAATTGGGTTAAAACATACATCAAATTTTTACAAAA +CTCGAATCTCGGTGATATTATTCCGACAGTATACGGAAAACCCGTACGTCAGATCACTGA +TGATGAACTCACCTTCTTGTATAACACTTTTCAAATATTTGCTCCCTCTCAATTCCTACC +TACCTGGGTCAAAGACATCCTATCTGTTGATTATACGGATATCATGAAAATTCTTTCCAA +AAGTATTGAAAAAACGCAATCTGATACCCAAGAGGCAAATGACATTGTGACCCTGGCAAA +TTTGCAATATAATGGCAGTACACCTGCAGATGCATTTGAAACAAAAGTCACAAACATTAT +CGACAGACTAAATAATAATGGCATTCATATCAATAACAAGGTCGCATGCCAATTAATTAT +GAGAGGTCTATCTGGCGAATATAAATTTTTACGCTACACACGTCATCGACATCTAAATAT +GACAGTCGCTGAACTGTTCTTAGATATCCATGCTATTTATGAAGAACAACAGGGATCGAG +AAACAGTAAACCCAATTACAGGAGAAATCCGAGTGATGAGAAGAATGATTCTCGCAGCTA +TACGAATACAACCAAACCCAAAGTTATAGCTCGGAATCCTCAAAAAACAAATAATTCGAA +ATCGAAAACAGCCAGGGCTCATAATGTATCCACATCTAATAACTCTCCCAGCACTGACAA +CGATTCCATCAGTAAATCAACTACTGAACCGATTCAATTGAACAATAAGCACGACCTTCA +TCTTAGGCCAGAAACTTACTGAATCTACAGTAAATCATACGAATCATTCCGATGATGAAC +TTCCTGGACACCTTCTTCTTGATTCAGGAGCATCACGAACTCTTATAAGATCTGCCCATC +ACATACACTCAGCGATATCTAATCCCGACATAAGCGTAGTTGATGTTCAAAAAAACAATA +TACCAATTAACGCTGTTGGTGATCTTCAATTTCACTTCCAGGACGACACCAAAACAACAA +TAAAGGTATTGCACACACCTAACATAGCCTATGACTTACTCAGTTTGAATGAACTGGCTG +CACTAAATATTACAGCGTGCTTTACCAAAAACGTCTTAGAACGACCTGACGGCACCGTAC +TTGCACCTATCGTAAAACATGGAGACTTTTACTGGGTGTCTAAAAGGTACTTGCTTCCGT +CGAATATCTCAGTACCCACAATTAATAACGTTCACACAAGTGAAAACACACGTAAGTATC +CTTATCCTTTCATTCATCGGATGCTTGCGCATGCCAATGCCCAGACAATTAGATATTCAC +TTAAAAAGAACACTATTACGTATTTCAATGAATCAGATGTTGACTGGTCTAACGCTACTG +ATTATCAATGTCCCGATTGTTTAATCGGCAAAAGCACCAAACATAGACATATCATAGGAT +CACGGCTAAAATACCAAAGTTCATATGAACCTTTTCAATACTTACATACTGACATATTTG +GGCCTGTTCACAACCTACCAAAGAGTGCACCATCCTATTTCATCTCATTCACTGATGAGA +AAACAAAATTCCGTTGGGTTTATCCATTACACGACCGTCGCGAGGACTCTATTCTCGATA +TCTTTACTAAGATACTAGCTTTCATTAAAAACCAGTTTCAGTCCAATGTTTTGGTTATTC +AAATGGACCGTGGTTCTGAGTACACTAACAAAACTCTCCATAAATTCCTTGAAAAATATG +GCATAACCCCATGTTATACAACCACAGCGGATTCCCGAGCACATGGTGTCGCTGAACGGC +TGAACCGTACCTTATTAGATGACTGTCGTACTCAACTGCAATGTAGTGGTCTACCGAATC +ATCTATGGTTCTCGGCAGTCGAATTTTCTACTATCGTACGGAACTCACTAGCTTCACCTA +AAAGCAAAAAATCCGCAAGACAACTCGCTGGGTTGGCAGGACTCGACATCAGTACTTTAT +TACCTTTCGGTCAACCCGTTATAGTCAATAATCATAACCCTGACTCCAAAATTCATCCTC +GTGGCATTCCTGGCTACGCTCTACATCCATCTCGAAACTCTTATGGATATATCATCTATG +TCCCGTCTTTGAAGAAGACAGTAGATACAACTAATTACGTTATTCTTCAGGGCAAGGAAT +CCAGATTAGACCAATTCAATTACGACGCACTCACCTTCGATGAAGACGTGAATCGTATAA +CTGCTTCATATCAATCGTTCATTGCTTCAAATGAGATCCAACAATCTAACGATCTTAACA +TAGAATCTGACCATGATTTTCAATCTGACGTAGAACTGAACCCTGACCACCAGAGAAATG +TCCCTTCAAACGTTCCGATTCCAACTGACTCTCCACCTCCATCAACTCATACTGAAGATT +CAAAACCTATATCTGAAATCAATCTTCGTGCACCCAAAGAAGTTGATCCTAACATATCTG +AATCTAATATTCTTCCATCTAAGAAGAGATCTAACATCCCCCAAATTTCTGCTACCGACA +GTGCCGGTTCGGGTGGTATAAATAAATCAGATGTTCCTTTACTTACTCCTTTGTCCAAAT +CTGACACACAAAATTCATACCAAGCCAGTGAATCTGATGATTTCAGTGACTCAGACTCAC +ACAGCGACATCGATACTGACTCTACAAACGTGACAATACCCAGTTTGGGTGGTATCAACA +ACAAAACTGTTCCGCAGACAAGTGACCAAGAGACTGAGAAAAGGATTATACATCGTTCAC +CTTCAATCGATGCTTCTCCACCGGAAAATAATTCATCGCACAATATTGTTCCTATCAAAA +CGCCAACTAATGTTTCTGAACAGAATACCGAGGAATCTATTATCGCTGATCTCCCACTCC +CTGATCTATCTCCAGAATCTCCTACCGAATTCCCTGACCCATTTAAAGAACTCCCACCGA +TAAATTCTCATCAAACTAATTCCAGTTTGGGTGGTATGGATGACTCTAATATCTCTGCTA +CTATCACTAGTAAGAAAAGATCATTAGAAGATAATGAAACTGAAATTGAGGTATCACGAG +ACACATGGAATAGTAAGAATATGCGTAGCTTAGAACCTCCAAGGTCAAAGAAACGAATAC +ATCTAATCGCGGCTGTAAAAGCAGTAAAATCAATCAAACCAATACGAACAACCTTAAGAT +ACGATGAGGCAATCACCTATAATAAAGATATTAAAGAAAAGGAAAAATATATCGAAGCAT +ACCACAAAGAAGTCAACCAACTGTTGAAAATGAATACTTGGGACACTGACAAATATTATG +ACAGAAAAGAAATAGACCCTAAAAGAGTAATAAACTCAATGTTTATCTTCAACAAGAAAC +GTGACGGAACTCATAAAGCTAGATTTGTTGCAAGAGGTGACATTCAGCATCCTGATACGT +ACGATACAGGTATGCAATCCAACACTGTACATCATTATGCGTTGATGACATCCCTATCAC +TTGCATTAGACGATGACTCCTTCATTACACAATTAGACATATCTTCGGCGTACTTGTATG +CAGACATCAAAGAAGAATTATACATAAGACCTCCACCACATTTAGGAATGAACAACAAGT +TAATACGGTTGAGGAAATCACTTTATGGTTTGAAACAAAGTGGTGCAAACTGGTATGAAA +CGATCAAATCATATCTGATTGAACAATGTGATATGGAAGAAGTTCGCGGATGGTCATGCG +TATTTAAGAACAATCAAGTAACAATCTGCTTATTCGTTGATGATATGATATTGTTCAGCA +AAGACTTAAATTCAAATAAAAGAATTATAGCAAAACTCAAGATGCAATACGATACCAAGA +TTATAAATCTAGGTGAAAGCGATGATGAAATTCAATACGACATCCTTGGCTTAGAAATCA +AATATCAAAGAGGTAAATACATGAAATTAGGTATGGAAAACTCACTAACTGAGAAAATAC +CCAAATTAAACGTACCTTTGAATCCAAAAGGAAGAAAACTTGGTGCTCCAGGTCAACCAG +GTCTCTATATAAACCAGAAGGAGCTAGAGCTAGAAGAAGACGACTACAACATGAAGGTGC +ATGAAATGCAAAAGTTGATAGGTCTAGCGTCATATGTTGGATATAAATTCAGATTTGACC +TATTATACTATATCAACACACTTGCACAACATATACTATTTCCGTCCAAACAAGTGTTAA +ACATGACATATGAATTGATACAATTCTTATGGGACACTAGAGACAAACAATTAATATGGC +ACAAAAGCAAATCTGCAAAACCAGAAAATAAATTAGTTGTAATAAGCGATGCCTCTTATG +GCAACCAACCATATTACAAATCTCAGATTGGTAATATCTATTTACTAAATGGAAAGGTGA +TCGGAGGAAAATCAACAAAAGCTTCATTAACATGTACTTCAACCACAGAAGCAGAAATAC +ACGCAATCAGTGAAGCCATTCCATTATTAAATAACTTGAGTCACCTTATACAAGAACTAA +ATGGGAAATCAATCATTAAAGGCTTACTTACTGACAGCAGATCTACAATCAGTATAGTTA +TGTCCAAAAATGAAGAGAAACTTAGAAACAGATTTTTCGGTACCAAAGCAATGAGACTTC +GGGACGAAGTATCAAATAATAACCTCCACGTATGCTACGTGGATACCAAAAGGAACATTG +CTGACGTGATGACAAAACCCCTCCCAATAAAAACATTTAAACTATTAACAAACAAGTGGA +TTCATTAGATCTATTACATTATGGGTGGTA +>TY1p-LTR#LTR/Copia +TGTTGGAATGAAATTCTAATATCATCTATTTAATAGTATATTATAATATGCGGTGCAAGA +GGATGACATAAAGATTGAGAAACAGTCATCCAATCTAATGGAAGCTGAAATGCAAGGATT +GATAATGTAATAGGATAATGAATAACAACATATAAAAAGAAAGAAGATAAAATAATAACA +CTATGTAGAACTATCGATTCCCTTTTGTGGATTCCTATATCCTCGAGGAGAACTTCTAGT +ATATTCTATATACCTAATATTATAGCCTTTAGTAACAATGGAATCCCAACAATTATCTAA +TTACCCACACAATTCTCA +>TY2-I#LTR/Copia +TGGTAGCGCCTATGCTTCGGTTACTTCTAAGGAAGTCCCATCAAATCAAGATCCGTTAGC +CGTTTCAGCTTCCAATTTACCGGAATTTGATAGAGATTCCACTAAGGTTAATTCTCAACA +AGAGACAACACCTGGGACATCAGCTGTTCCAGAGAACCATCATCATGTCTCTCCTCAACC +TGCTTCAGTACCACCTCCACAGAATGGACAGTACCAACAGCACGGCATGATGACCCCAAA +CAAAGCTATGGCCTCTAACTGGGCACATTACCAACAACCATCTATGATGACGTGTTCACA +TTATCAAACGTCACCTGCGTATTATCAACCGGACCCACACTATCCGTTGCCACAGTATAT +CCCACCACTGAGTACTTCCTCACCTGATCCAATCGATTTAAAAAATCAACACTCTGAAAT +ACCTCAAGCTAAGACAAAGGTGGGAAATAACGTCTTACCACCACACACTTTAACATCAGA +AGAAAACTTTTCTACATGGGTTAAATTTTACATCAGATTTTTGAAGAACTCTAATCTCGG +TGACATCATTCCAAATGACCAGGGTGAAATCAAAAGACAAATGACTTATGAAGAACATGC +GTATATATACAATACCTTCCAAGCATTTGCCCCATTTCATTTATTGCCAACATGGGTAAA +ACAAATTTTAGAAATTAATTATGCTGACATCCTTACAGTCCTTTGTAAAAGTGTGTCCAA +AATGCAAACTAACAATCAAGAATTAAAGGATTGGATAGCTCTTGCCAACCTTGAGTACGA +CGGAAGTACATCTGCTGATACATTTGAAATTACAGTCAGTACGATCATTCAGAGGCTAAA +AGAAAACAATATCAATGTTAGCGACAGATTGGCCTGTCAACTAATACTTAAAGGTCTATC +CGGTGACTTCAAATACCTACGTAATCAATATCGTACCAAAACGAACATGAAACTTTCCCA +ATTATTCGCTGAAATTCAATTAATATATGACGAAAATAAAATCATGAATCTAAATAAACC +GTCCCAATACAAACAACACAGCGAATACAAAAATGTTTCTCGCACATCTCCAAACACGAC +TAACACAAAGGTTACAACTCGTAATTATCATAGAACAAATAGTTCAAAACCAAGAGCAGC +AAAAGCTCACAATATTGCTACATCTAGTAAATTCTCAAGGGTGAACAATGATCACATTAA +TGAATCAACCGTTTCATCACAATACTTAAGCGATGACAACGAACTTAGTCTTAGGCCAGC +AACAGAAAGAATCTAAGCCAACACACACAATAGACTCGAATGACGAACTACCTGATCACC +TTCTTATTGATTCAGGAGCTTCGCAAACGCTTGTCAGATCAGCCCATTATTTACACCATG +CAACACCCAATTCTGAAATAAACATAGTCGATGCTCAAAAACAAGACATTCCTATAAATG +CCATTGGTAATCTTCACTTCAACTTTCAGAACGGCACCAAAACATCAATAAAAGCACTAC +ACACACCAAACATAGCCTATGATCTATTAAGTTTGAGTGAGCTGGCTAACCAAAATATTA +CTGCCTGCTTTACCAGAAACACTTTAGAAAGATCGGATGGTACAGTACTAGCTCCCATAG +TCAAACATGGAGACTTTTACTGGTTATCTAAAAAATACCTAATTCCTTCGCACATTTCAA +AGCTAACAATAAACAACGTCAACAAAAGCAAAAGCGTAAATAAATATCCATATCCGTTAA +TACATCGAATGCTTGGACATGCTAACTTCCGAAGTATTCAGAAGTCTCTTAAGAAGAATG +CAGTTACATATTTGAAGGAATCGGATATTGAATGGTCTAACGCTAGCACATATCAATGTC +CTGACTGTCTAATCGGCAAAAGCACGAAACATAGACATGTCAAAGGATCACGACTAAAGT +ACCAAGAATCATATGAGCCTTTTCAGTACTTGCATACCGATATATTTGGTCCTGTACATC +ACTTACCGAAAAGTGCACCTTCTTACTTTATATCGTTTACAGATGAGAAAACCAGATTCC +AATGGGTGTACCCATTACACGACCGTCGTGAAGAATCTATCCTCAATGTTTTTACATCGA +TATTAGCATTTATTAAGAACCAATTCAATGCTCGCGTTCTAGTTATCCAGATGGATCGTG +GCTCCGAGTACACTAACAAAACTCTTCATAAGTTCTTTACGAACAGAGGTATTACTGCAT +GCTATACAACCACGGCAGATTCTAGAGCACACGGTGTCGCTGAACGATTAAATCGTACTT +TATTAAACGATTGTCGCACACTGCTTCATTGCAGTGGTCTACCAAATCATCTATGGTTCT +CAGCAGTCGAATTTTCTACTATAATCAGAAATTCATTAGTCTCACCAAAAAACGATAAAT +CTGCAAGACAACATGCAGGTTTAGCTGGACTGGACATTACTACTATACTACCTTTCGGTC +AACCGGTTATAGTTAACAACCATAATCCCGACTCGAAAATACATCCTCGTGGCATTCCAG +GTTACGCCTTACATCCGTCACGAAACTCTTATGGCTATATTATCTATCTTCCATCATTAA +AAAAGACAGTAGATACTACCAATTACGTTATATTACAAGACAACCAATCCAAATTGGACC +AATTCAATTATGATACACTCACCTTTGATGATGATCTCAATCGTTTAACAGCCCATAACC +AATCTTTTATTGAACAAAATGAAACAGAGCAGTCATATGATCAAAATACAGAATCTGATC +ATGACTATCAATCGGAGATTGAAATAAACTCTGATCCTCTAGTGAACGACTTCTCGTCCC +AATCAATGAACCCCTTACAATTAGACCACGAACCAGTCCAAAAAGTACGTGCACCAAAAG +AAGTTGATGCCGACATATCTGAATACAATATTCTTCCATCTCCTGTACGATCTCGTACAC +CCCATATCATTAATAAAGAGAGTACCGAAATGGGTGGTACCATTGAATCAGATACTACTT +CACCTAGACACTCGTCTACCTTCACTGCACGAAACCAAAAGCGACCTGGTAGTCCCAATG +ATATGATTGATTTGACCTCACAGGATAGAGTTAATTATGGACTTGAAAACATCAAAACTA +CACGTTTGGGTGGTACGGAGGAACCATATATTCAACGAAATAGTGATACAAATATCAAAT +ACAGGACTACAAATAGTACGCCCTCAATAGATGACCGTTCGTCCAACAGTGAATCCACTA +CTCCCATCATCTCCATAGAAACAAAGGCTGTATGTGATAATACACCCTCCATTGATACGG +ATCCGCCAGAATATCGATCTTCTGACCATGCGACTCCTAATATAATGCCTGACAAATCCT +CAAAAAATGTTACGGCTGATTCTATTCTTGACGACCTCCCACTTCCTGACTTAACCCATA +AATCTCCTACGGACACTTCTGATGTTTCAAAAGATATTCCACACATACACTCTCGTCAGA +CTAATTCCAGTTTGGGTGGTATGGATGATTCTAATGTTCTGACTACTACCAAAAGTAAGA +AAAGATCATTAGAAGATAATGAAACTGAAATTGAGGTATCCCGAGACACATGGAATAATA +AGAATATGAGAAGTCTGGAACCACCAAGATCGAAGAAACGCATAAATTTAATTGCAGCAA +TAAAAGGAGTGAAATCGATCAAACCAGTTCGAACGACCTTAAGATATGATGAAGCAATTA +CATATAATAAAGACAACAAAGAAAAAGACAGATATGTTGAAGCTTATCATAAAGAAATTA +GCCAACTATTGAAAATGAACACTTGGGATACAAACAAATATTATGATAGAAATGACATAG +ATCCTAAAAAAGTAATAAACTCAATGTTTATATTTAACAAGAAACGTGATGGTACACACA +AAGCTAGATTTGTTGCAAGAGGCGACATTCAACACCCCGATACATATGATTCTGATATGC +AATCCAATACCGTACATCACTATGCACTGATGACGTCACTGTCAATCGCATTAGACAACG +ACTATTATATCACACAGCTGGACATATCCTCTGCTTACTTATATGCTGATATCAAAGAAG +AATTATACATAAGACCTCCACCACATTTAGGTTTGAATGATAAATTACTACGTTTGAGAA +AATCACTCTATGGTTTGAAACAAAGTGGTGCAAACTGGTATGAAACCATTAAATCATATT +TAATAAATTGTTGCGACATGCAAGAAGTTCGCGGATGGTCATGCGTATTTAAGAATAGTC +AAGTAACAATTTGCTTATTCGTTGATGATATGATATTATTCAGCAAAGACTTAAATGCAA +ATAAGAAAATCATAACAACACTCAAGAAACAATACGATACAAAGATAATAAATCTGGGTG +AAAGAGATAACGAAATTCAGTACGACATACTTGGATTAGAGATCAAATATCAAAGAAGCA +AGTACATGAAATTAGGTATGGAAAAATCCTTGACAGAAAAATTACCCAAACTAAACGTAC +CTTTGAACCCAAAAGGAAAGAAACTTAGAGCTCCAGGTCAACCAGGTCATTATATAGACC +AGGATGAACTAGAAATAGATGAAGATGAATACAAAGAGAAGGTACATGAAATGCAAAAGT +TGATTGGTCTAGCTTCATATGTTGGATATAAATTTAGATTTGACTTACTATACTACATCA +ACACACTTGCTCAACATATACTATTCCCCTCTAGACAAGTTTTAGACATGACATATGAGT +TAATACAATTCATGTGGGACACTAGAGATAAACAATTAATATGGCACAAAAACAAACCTA +CCAAGCCAGATAATAAACTAGTCGCAATAAGCGATGCTTCATATGGTAACCAACCATATT +ACAAGTCACAAATTGGTAACATTTTCCTACTCAACGGAAAAGTGATTGGAGGAAAGTCGA +CAAAGGCTTCGTTAACATGCACTTCAACTACAGAAGCAGAAATACACGCAGTCAGTGAAG +CTATACCGCTATTGAATAACCTCAGTCACCTTGTGCAAGAACTTAACAAGAAACCAATTA +TTAAAGGCTTACTTACTGATAGTAGATCAACGATCAGTATAATTAAGTCTACAAATGAAG +AGAAATTTAGAAACAGATTTTTTGGCACAAAGGCAATGAGACTTAGAGATGAAGTATCAG +GTAATAATTTATACGTATACTACATCGAGACCAAGAAGAACATTGCTGATGTGATGACAA +AACCTCTTCCGATAAAAACATTTAAACTATTAACAAACAAATGGATTCATTAGATCTATT +ACATTATGGGTGGTA +>TY2-LTR#LTR/Copia +TGTTGGAATAAAAATCAACTATCATCTACTAACTAGTATTTACGTTACTAGTATATTATC +ATATACGGTGTTAGAAGATGACGCAAATGATGAGAAATAGTCATCTAAATTAGTGGAAGC +TGAAACGCAAGGATTGATAATGTAATAGGATCAATGAATATTAACATATAAAATGATGAT +AATAATATTTATAGAATTGTGTAGAATTGCAGATTCCCTTTTATGGATTCCTAAATCCTC +GAGGAGAACTTCTAGTATATCTACATACCTAATATTATTGCCTTATTAAAAATGGAATCC +CAACAATTACATCAAAATCCACATTCTCTTCA +>TY3-I#LTR/Gypsy +CCTGGTAGCGTTAAAGGTTACTAATTGTTCAAACGAACCATCGAAAAGCCGAACCTAGCT +ACACCACACCCCAGTATGAGCTTTATGGATCAAATCCCAGGAGGAGGAAATTATCCAAAA +CTCCCAGTAGAATGCCTTCCTAACTTCCCGATCCAACCATCTTTGACCTTCAGAGGTAGA +AATGACTCGCATAAACTGAAAAACTTTATCTCCGAAATAATGTTAAACATGTCTATGATA +TCTTGGCCGAATGATGCCAGTCGTATTGTGTACTGCAGAAGACATTTATTAAACCCCGCT +GCTCAGTGGGCTAATGACTTTGTACAAGAACAAGGTATACTTGAAATAACATTCGACACA +TTCATACAAGGATTATATCAGCATTTCTATAAGCCACCAGATATCAATAAAATCTTTAAT +GCAATCACGCAACTTTCCGAAGCTAAACTTGGTATTGAGCGTCTCAACCAACGATTCAGA +AAGATTTGGGACAGAATGCCACCAGACTTCATGACCGAAAAAGCTGCCATAATGACATAT +ACTAGGCTATTGACAAAGGAAACCTATAATATTGTCAGAATGCACAAACCAGAGACATTA +AAAGACGCCATGGAAGAGGCTTACCAGACAACTGCACTAACTGAAAGATTCTTCCCAGGA +TTCGAACTTGATGCTGATGGAGACACTATCATCGGTGCCACAACCCACTTACAAGAAGAA +TACGACTCTGACTATGATTCAGAAGATAATCTGACCCAGAATGGATACGTCCATACCGTA +AGGACAAGAAGATCTTACAATAAACCAATGTCAAATCATCGAAACAGGAGAAATAACAAC +CCATCTAGAGAAGAATGTATAAAAAATCGGCTATGCTTCTATTGTAAGAAAGAGGGACAT +CGCCTGAACGAATGTAGAGCACGTAAGGCGAGTTCTAACCGATCTTGAACTCGAATCAAA +AGACCAACAAACTCCTTTTATCAAAACCTTACCAATTGTACACTATATCGCCATCCCCGA +GATGGACAATACCGCCGAAAAAACCATAAAAATACAAAACACGAAAGTAAAAACCCTGTT +TGACAGTGGATCACCCACGTCATTTATCCGAAGAGATATTGTAGAACTTCTCAAATACGA +AATCTACGAGACCCCTCCACTCCGTTTTAGAGGATTCGTAGCCACCAAATCCGCCGTTAC +ATCCGAAGCAGTCACCATTGACCTCAAAATCAATGACCTGCATATAACTTTAGCCGCGTA +CATACTGGATAACATGGACTACCAATTGTTAATTGGAAATCCAATCTTACGCCGCTACCC +GAAAATCCTGCACACAGTACTGAATACCAGAGAGAGCCCCGACTCCTTAAAGCCCAAGAC +TTATCGCTCCGAAACCGTTAATAACGTTAGAACCTACTCCGCTGGTAATCGTGGTAACCC +CAGAAACATAAAACTGTCTTTTGCCCCCACCATTCTCGAAGCAACTGACCCGAAATCCGC +TGGTAATCGTGGTGACTCCAGAACCAAAACCCTGTCTCTTGCAACCACTACTCCTGCAGC +AATTGACCCGCTTACGACCCTTGATAACCCAGGTAGTACTCAAAGTACATTTGCGCAATT +CCCGATACCTGAAGAAGCGAGCATCCTAGAAGAGGATGGAAAATACTCCAACGTTGTCTC +AACCATTCAGAGTGTAGAACCTAATGCTACTGATCACAGCAATAAGGACACCTTTTGCAC +TTTGCCAGTTTGGTTACAACAGAAGTATAGAGAGATCATACGTAATGATCTCCCACCAAG +ACCTGCCGACATTAATAACATCCCCGTAAAACATGATATTGAAATTAAACCTGGCGCAAG +ACTACCTCGACTACAGCCATACCATGTTACAGAAAAGAACGAACAAGAAATCAACAAAAT +AGTTCAAAAACTGCTCGATAACAAGTTCATTGTTCCCTCAAAGTCGCCTTGCAGCTCCCC +TGTAGTCCTCGTCCCGAAGAAAGACGGTACCTTCCGACTCTGCGTCGATTACCGCACCCT +GAACAAAGCTACCATCTCCGACCCATTCCCATTACCCAGAATCGACAACCTATTGAGCCG +TATTGGAAATGCCCAGATATTTACCACGCTAGATTTGCATAGTGGTTACCACCAGATCCC +GATGGAACCCAAAGACCGCTACAAAACCGCCTTTGTCACACCATCCGGTAAGTATGAATA +TACCGTCATGCCATTTGGCTTAGTCAATGCACCTAGTACATTCGCAAGATACATGGCTGA +TACATTTAGAGACCTGAGATTCGTCAATGTTTACCTTGATGATATATTAATATTCTCCGA +ATCTCCAGAAGAACATTGGAAACATTTAGACACGGTACTAGAAAGATTAAAGAACGAGAA +CCTCATTGTTAAGAAGAAAAAATGTAAATTTGCATCTGAAGAAACTGAGTTTTTAGGCTA +TAGTATTGGAATCCAGAAAATAGCTCCACTACAGCACAAATGTGCAGCAATCCGAGACTT +TCCGACGCCTAAAACAGTAAAACAAGCACAGAGATTTTTAGGAATGATTAATTACTACAG +ACGATTCATTCCAAATTGCTCCAAGATTGCACAGCCAATCCAACTGTTTATTTGTGACAA +AAGTCAATGGACAGAAAAACAAGACAAGGCAATTGATAAACTAAAAGACGCCTTGTGTAA +CTCCCCCGTCCTAGTACCATTCAACAACAAAGCAAACTACCGACTTACAACAGACGCCTC +AAAAGACGGCATTGGTGCTGTTCTAGAAGAAGTCGACAACAAGAACAAACTTGTTGGTGT +CGTCGGTTACTTCTCTAAATCCTTAGAGAGTGCCCAGAAAAACTATCCTGCTGGCGAATT +AGAACTACTTGGAATTATCAAAGCACTCCACCACTTCCGATATATGCTTCACGGAAAGCA +TTTCACGTTAAGAACAGACCACATTAGTTTGTTATCATTACAAAACAAGAACGAACCCGC +ACGACGCGTGCAACGCTGGTTAGATGACCTAGCCACATATGACTTCACCTTAGAATACCT +AGCTGGACCCAAGAACGTTGTCGCAGATGCCATATCCCGTGCCGTATATACTATAACCCC +CGAAACATCCCGACCTATCGACACAGAAAGCTGGAAATCTTACTACAAATCAGACCCATT +ATGTAGTGCTGTCTTAATTCATATGAAAGAATTGACACAACACAACGTCACACCTGAAGA +TATGTCAGCCTTCCGTAGTTACCAGAAGAAACTCGAACTATCAGAGACCTTCCGAAAGAA +TTATTCCCTAGAAGACGAAATGATCTATTACCAAGACCGACTAGTAGTACCAATAAAACA +ACAGAACGCAGTTATGAGACTATATCATGACCATACCTTATTTGGAGGACATTTTGGTGT +AACAGTGACCCTTGCGAAAATCAGCCCAATTTACTATTGGCCAAAATTACAACATTCGAT +CATACAATACATCAGGACCTGCGTACAATGTCAACTAATAAAATCACACCGACCACGCTT +ACATGGACTATTACAACCACTCCCTATAGCAGAAGGAAGATGGCTTGATATATCAATGGA +TTTTGTGACAGGATTACCCCCGACATCAAATAACTTGAATATGATCCTCGTCGTAGTTGA +TCGTTTTTCGAAACGCGCTCACTTCATAGCTACAAGGAAAACCTTAGACGCAACACAACT +AATAGATCTACTCTTTCGATACATTTTTTCATATCATGGTTTTCCCAGGACAATAACCAG +TGATAGAGATGTCCGTATGACCGCCGACAAATATCAAGAACTCACGAAAAGACTAGGAAT +AAAATCGACAATGTCTTCCGCGAACCACCCCCAAACAGATGGACAATCCGAACGAACGAT +ACAGACATTAAACAGGTTACTAAGAGCCTATGCTTCAACCAATATTCAGAATTGGCATGT +ATATTTACCACAAATCGAATTTGTTTACAATTCTACACCTACTAGAACACTTGGAAAATC +ACCATTTGAAATTGATTTAGGATATTTACCGAATACCCCTGCTATTAAGTCAGATGACGA +AGTCAACGCAAGAAGTTTTACTGCCGTAGAACTTGCCAAACACCTCAAAGCCCTTACCAT +CCAAACGAAGGAACAGCTAGAACACGCTCAAATCGAAATGGAAACTAATAACAATCAAAG +ACGTAAACCCTTATTGTTAAACATAGGAGATCACGTATTAGTGCATAGAGATGCATACTT +CAAGAAAGGTGCTTATATGAAAGTACAACAAATATACGTCGGACCATTTCGAGTTGTCAA +GAAAATAAACGATAACGCCTACGAACTAGATTTAAACTCTCACAAGAAAAAGCACAGAGT +TATTAATGTACAATTCCTGAAAAAGTTTGTATACCGTCCAGACGCGTACCCAAAGAATAA +ACCAATCAGCTCCACTGAAAGAATTAAGAGAGCACACGAAGTTACTGCACTCATAGGAAT +AGATACTACACACAAAACTTACTTATGTCACATGCAAGATGTAGACCCAACACTTTCAGT +AGAATACTCAGAAGCTGAATTTTGCCAAATTCCCGAAAGAACACGAAGATCAATATTAGC +CAACTTTAGACAACTCTACGAAACACAAGACAACCCTGAGAGAGAGGAAGA +>TY3-LTR#LTR/Gypsy +TGTTGTATCTCAAAATGAGATATGTCAGTATGACAATACGTCACCCTGAACGTTCATAAA +ACACATATGAAACAACCTTATAACAAAACGAACAACATGAGACAAAACCCGACCTTCCCT +AGCTGAACTACCCAAAGTATAAATGCCTGAACAATTAGTTTAGATCCGAGATTCCGCGCT +TCCACCACTTAGTATGATTCATATTTTATATAATATATAAGATAAGTAACATTCCGTGAA +TTAATCTGATAAACTGTTTTGACAACTGGTTACTTCCCTAAGACTGTTTATATTAGGATT +GTCAAGACACTCCGGTATTACTCGAGCCCGTAATACAACA +>TY3p-I#LTR/Gypsy +TCTGGTAGCGTTAAAGGTTACTAATTGTTCAAGCAAACCAACGAATCCCTGAACCTAGCT +ACACCAACATCTGTCATGAGCTTTATGGATCAAATCCCAGGAGGAGGAAGTTACCCAAAG +CTTCCGGTGGAATGTCTTCCCAATTTCCCGATCCAACCAGCACTAACCTTCAGAGGTAGA +AATGACTCGCACAAGTTGAAAAACTTCATCTCTGAAATAATGTTAAACATGTCTATGATT +CCTTGGCCCAACGAAGCCAGTCGTATTGTCTATTGTAGAAAACACTTACTGAACCCTGCT +GCTCAATGGGCTAATGATTTTGTCCAAGAGCAAGGCATACTGGAAATAACATTCGACACC +TTCATACAAGGACTCTATCAGCATTTCTATAAGCCACCAGACATCAACAAAATCTTCAAT +ACGATCAATCAACTATCTGAAGCAAAACTGGGTATTGAACGTCTCAACAAACAATTCAAA +ATGATTTGGGACAGAATGCCACCAGACTTTATGACCGAAAAAGCCGCTATTATGACATAT +ACCCGCTTACTGACAAAGGAAACCTACAATATAGTTAGATTGCATAAACCAAAAACGTTG +AGAGGAGCCATGGAGGAGGCTTACCAAACAACAGCACTAACTCAGAGATTCTTCCCAGAA +TTTGAGCTAGACGCCGATGGAGATACTATAATCGCAGCCGCAACTCGTTTACACGAACAG +TACGACTACGACAGTGACCCACAAGAAAACTTTTTGGTCCAGAAGAGACACGTCCACGCA +GTTCGGACAAGAAGATCATACAATAAACCGACCGCGACTTATCACAACAGGAGAAGCAAT +AATCCATCTAGAGAAGAGTGTGTAAAGAACCGTCTCTGTTTTTATTGTAAGAAAGAAGGA +CACCGTCTGAACGAGTGTAGAGCTCGTAATGCGAGTTCTAGCCGATCCTGAACTTAAGTC +GAAAGACCACACGAAACTTTCTATCACATCCCGACCTATTGTACATTATATCGCCATACC +TGAAATGGACAAAACTGCCGAAAAACACATAAAAATAAAAAACACGAAAATAAAAACCCT +GTTTGATAGTGGATCGCCCACATCATTTATCCGAAGAGATACCGTAAATCTCCTGAATCT +GCCAACCCATGATACTCCACCGCTCCGCTTTAGAGGATTCATATCCACCGAATCCGCCAC +CACTTCAGAAGCAGTTACGCTCGACCTTACAGTCGACAATCTGCAAATCAATGTAGCCGC +GTATGTACTCGATAAAATGGACTACCAACTTCTAATCGGAAATCCAATTCTACGCCGCTA +CCCAAAACTCCTGTACACAATCCTGAACACTAAGCAGTGTACCTCCGCCCAGAAGCCCAA +GGCTTACCATCCCGAAAACATTAACTATGTGAAAGCAAAATCCGCTGGTAATCGTGGTAA +CTCCAGAAACAAAACACTGTCCTTTGCCCCCACTATTCCTGAAGCAACTGACCAGAAATC +CGCTGGTAATCGTAGTAACTCCAGAACAAATACTATGTCTTTTGCAACTACCAATCCAGA +AACAACTGACCCGCTTACGACCCTCGACAATCCAGGTAGTACTCAAAGTACATTTGCGCA +ATTCCCGATACCTGAAGAAGCGACCATCCTAGAAGAGGATGGAAAATACTCCAACGTTGT +TTCAACCATACAGAACGTAGAACCTAAAGCTACTGATCACAGCAACAAGGACACATTTTC +AACGTTGCCTGTTTGGTTACAACAGAAGTATATAGAGATTATACGTAATGATCTCCCGCC +AAGACCGGCCAATATCCACAACATGCCCGTAAAACACGACATTGAAATTAAACTTGACAC +AAGACTACCTCGACTACAGCCATATCATGTTACAGAAAGGAACGAACAAGAAATTAACAA +GATCGTTCAAGAACTGCTCGACAACAAGTTCATTGTCCCCTCTAAATCTCCGTGCAGTTC +CCCTGTAGTCCTTGTCCCGAAGAAAGATGGTACGTTTAGACTTTGCGTTGACTACCGTGC +CCTGAACAAGGTTACCATCTCCGACCCATTCCCATTACCCAGAATCGACAACCTATTAAG +CCGTATTGGGAATGCCCAAATATTCACCACGCTAGATTTGCACAGTGGTTATCACCAGAT +TCCAATGGAACCAAAAGACCGCTACAAAACCGCTTTTGTCACCCCGTCCGGTAAATATGA +ATACACTGTCATGCCATTTGGTCTAGTGAATGCACCTAGCACCTTTGCAAGATACATGGC +CGACATTTTCAGAGACTTGAGATTTGTCAATGTCTACCTTGATGATATACTAATCTTCTC +TGAATCCCAAGAAGAACACTGGAAACATTTAGACACAGTTCTTGGAAGACTTAAGAAGGA +AAACCTTATTGTCAAAAAGAAAAAATGCAAGTTTGCATCAGAACAAATTGAATTTCTAGG +TTATAATATTGGAATTCAGAAAATAACCCCATTACAACACAAATGTGCTGCCATTCGAGA +TTTTCCGAAACCCAGAACAGTAAAGCAAGCACAACGATTTTTAGGAATGATTAATTACTA +TAGACGATTCATTCCAAATTGCTCTAAGATTGCACAACCAATCCAGCTCTTTATATGCGA +CAAGAGTCAATGGACAGAAGAGCAGGACAAGGCAATCGAGAAATTAAAATCCGCCCTATG +TAATTCCCCTGTTCTAGTACCATTTAACAACAAAGCAATTTACCGATTAACTACAGACGC +ATCAAAAGATGGCATCGGTGCCGTTCTAGAAGAAGTCAATGCCAAAAACGCACTTGTCGG +TGTCGTCGGTTATTTCTCTAAATCCTTAGAAAGTGCTCAAAAGAACTACCCCGCCGGTGA +ACTAGAACTACTTGGAATTATTAAGGCACTTCACCACTTCCGTTATATGCTCCATGGAAA +ACATTTTACATTGAGAACGGATCACATTAGCTTACTGTCACTGCAGAATAAGAATGAACC +TGCACGAAGAGTTCAAAGATGGTTGGATGACCTAGCCACTTATAACTTCACCCTAGAATA +CTTAGCTGGACCCAAAAACGTCGTCGCAGATGCTATATCCCGTGCCGTGTACACTATAAT +CCCAGAAATACCCCAACCTATCGACCCAGAAAATTGGAAAACTCATTACAAATCAGACCC +ATTATGCAGTGCCACCTTGATTTACATGGAAGAATTGACACAACACAATGTCATGCCTGA +GGATATGTCCGCATTCCGTAGCTATCACAAGAAATTTCAGTTATCAGAGACCTTCCGAAA +GAACTACTCCCTAGAAAATGGAATAATCTACTATCGAGACCGATTAGTAGTCCCGGTAAA +ACAACAGAACGAAGTCATAAAACTGTATCACGATCATACTTTATTCGGAGGCCATTTTGG +TGTAACTGTAACATTTGGAAAGATTGCTCCAATTTTTTACTGGCCGAAATTGCAACATTC +GATTACACAATACATCCGTACCTGCGTACAATGTCAACTCACAAAATCACATCGACCACG +TTCACAAGGACTATTGCAACCGCTTCCCGTAGCAGAAGGAAGATGGCTTAATATATCAAT +GGATTTCGTGACTGGACTACCCGTAACAACAAACGATTTGAATATGATCCTCGTTGTTGT +TGACCGCTTCTCGAAACGCGCTCACTTCATAGCTACAAGGAAAACAGCAGACGCATCACA +GCTAATAAATACGCTATTCCGCTATATCTTTTCATATCATGGTTTCCCGAAAACAATAAC +CAGTGATAGAGACATCCGTATAACCGCAGAAAAATATCAAGAACTTACAAAAAGATTAGG +GATAAAATCGACAATGTCTTCTGCAAACCACCCCCAAACAGATGGACAATCCGAAAGAAC +GATTCAAACATTGAACCGATTGATAAGAGCTTATGCCTCCACCAATACCCGGAACTGGCA +CACCTACTTACCACAAATTGAATTTGTCTATAACTCCACACCGACCAGAACACTTGGAAA +GTCACCATTCGAAATTGATTTAGGATATACTCCCAATGCACCTACCATTAAAACGGATTG +CGAAATCAATGCAAGAAGTTTTACCGCCGTAGAACTGGCCCGACACCTCAAAGCTATTAC +GATCCAAACAAAAGAACGACTAGAGTCTGCTCAGATTGAAATGGAAACTAATAACAACCA +AAGACGTAAAACTTTGTTACTGAACATAGGAGATCACGTACTAGTGCATAGAGATGCATA +CTTCAAGAAAGGAACGTATATGAAGGTACAACCTATATACGTTGGACCATTTCGAGTTGT +CAAGAAAATAAATGATAACGCTTACGAACTCGACCTGGATTCACACAAGAGAAAACATAG +AGTTATTAACGTACAATACCTAAAGAAATTTGTATACCGACCCGACGCATATCCAAAGAA +TAAACCAATCAGTTCCGTTGAAAGAATCAACAGAGCCAATGAAGTCATTGCAGTTATAGG +GATAGATACCACACACAAAACATACTTATGTCGTATGCAGGATGTGGACCCGACAATCTC +AGTAGAATATTCAGAAGCTGAATTCTACCAAATCCCAGAGGAAATACGAAAGTCAATATT +AGCCAATTTTAGACAACTGTACGAAACTCAAGACAACTCCGAGAGAGAGGAAGAT +>TY3p-LTR#LTR/Gypsy +TGTTGTATCTCAAGATGAGATACCTCAGCATTACTAGATTTACCAACCTAGACATAAAAC +ATGTATGAAACACGTACGAAACAATAGACAAGATTGAGTATACTAGGCAACCTACTTGCC +TAAGATGAACCAAACTAACCAAACGTATAAATACCTGAACAATTAGTTTAGATCCGAGAT +TCCGCGCTTCCACCCTTTAGTTAGATTCAGATCTTATATAGATTATATAGGATAAGTAAC +ATTCTGTGAATCACGATAATAATAAGTCTGACAACAAGTTACTCTCCTAAACGACTTTAG +GATTGTCAAGACATCCGGTATTACTCGAGCCCGTAATACAACA +>TY4-I#LTR/Copia +TGGCGACCCCAGTGAGGGGTGAAACAAGAAATGTTATTGACGACAACATTTCTGCGCGGA +TTCAATCGAAAGTCAAAACAAATGATACTGTCAGACAGACGCCATCATCATTAAGAAAAG +TTTCTATTAAAGATGAACAGGTGAGACAATATCAAAGAAACTTAAATAGGTTTAAAACCA +TACTAAATGGTTTAAAGGCAGAAGAGGAAAAACTTTCTGAGGCTGATGATATTCAGATGC +TAGCTGAAAAATTATTAAAACTCGGAGAAACCATTGACAAGGTTGAGAATAGGATTGTGG +ATCTAGTTGAAAAGATACAATTATTGGAAACAAACGAGAACAATAATATATTACATGAAC +ATATAGATGCTACAGGGACTTACTATTTATTCGATACGTTAACTTCAACCAACAAAAGAT +TCTACCCTAAGGATTGTGTTTTTGATTATAGGACTAATAATGTCGAGAACATTCCTATTC +TCTTAAACAATTTTAAAAAATTCATCAAGAAATATCAATTTGATGATGTCTTTGAAAATG +ATATCATAGAAATCGATCCTCGTGAAAATGAAATCTTGTGCAAGATAATCAAAGAAGGAC +TCGGTGAAAGTTTAGATATCATGAACACAAATACAACTGACATTTTTAGGATAATCGATG +GTTTAAAAAAACAAAATATAGAAGTTTGCATGGTAGAGATGTCAGAATTAGAGCCTGGGG +AAAAGGTTTTGGTTGATACAACATGTAGAAATTCCGCATTGTTAATGAATAAACTTCAAA +AGTTGGTACTAATGGAAAAATGGATTTTTTCTAAATGCTGCCAAGATTGTCCTAATCTAA +AGGATTACCTACAAGAAGCTATCATGGGAACCTTACATGAATCCTTAAGAAATTCTGTGA +AACAACGTTTGTACAACATTCCACATGACGTAGGAATTGATCACGAAGAATTTCTAATCA +ATACTGTTATTGAAACAGTAATTGATTTGAGCCCAATTGCAGACGATCAAATAGAAAATA +GCTGCATGTATTGCAAATCTGTTTTCCATTGCTCAATTAACTGCAAAAAGAAACCAAATA +GGGAACTTAGGCCTGACTCGACCAATTTCTCAAAAACCTATTATCTACAAGGTGCACAGA +GACAACAACCACTTAAGTCCAGTGCAAAACGAACAAAAGTCTTGGAACAAGACACAAAAA +AGGTCGAACAAAGTGTACAACAGCAAAAAACTGGTAATTATTGATACCGGTTCCGGAGTA +AACATTACCAATGACAAAACCTTACTGCATAATTACGAAGACAGTAATCGCAGTACACGA +TTTTTTGGTATTGGGAAAAACAGTTCAGTGTCTCTTAAAGGGTATGGCTATATAAAAATC +AAGAATGGTCACAACAATACTGACAATAAGTGTCTATTAACTTACTATGTACCGGAAGAA +GAATCCACTATAATCAGCTGTTATGACTTAGCCAAGAAAACCAAAATGGTTTTAAGTCGA +AAATATACCAGATTGGGAAACAAAATCATAAAAATTAAAACCAAGATAGTTAATGGTGTC +ATTCACGTAAAAATGAACGAGTTAATTGAACGTCCTTCCGATGATTCAAAAATAAATGCA +ATAAAACCTACTTCTTCTCCTGGATTTAAACTAAATAAAAGGTCTATTACCTTGGAAGAT +GCTCATAAAAGAATGGGCCATACAGGAATTCAACAAATTGAAAATTCCATAAAACATAAT +CATTATGAAGAATCCCTTGACTTAATCAAAGAACCAAATGAATTTTGGTGTCAAACCTGT +AAAATCTCTAAAGCCACGAAAAGAAATCATTATACCGGGTCTATGAATAATCATAGTACT +GATCATGAACCAGGCTCATCATGGTGCATGGATATATTTGGCCCTGTATCAAGTTCAAAC +GCGGACACTAAAAGGTACATGCTTATTATGGTGGATAACAACACGAGATATTGCATGACC +TCCACACACTTCAATAAGAATGCTGAAACTATTTTAGCTCAAGTTAGAAAGAATATTCAG +TACGTGGAAGCACAATTTGACAGGAAAGTCAGAGAAATTAATTCAGACAGAGGTACTGAA +TTCACAAATGATCAGATAGAAGAATATTTTATTTCAAAAGGAATACATCACATACTTACT +TCTACACAAGATCATGCTGCTAACGGAAGAGCAGAAAGATACATAAGAACAATAATAACT +GATGCAACAACACTCCTAAGACAAAGTAACTTAAGAGTAAAATTTTGGGAATACGCAGTA +ACTTCTGCTACCAATATAAGAAATTACCTGGAACACAAAAGTACAGGTAAACTACCATTG +AAGGCAATCTCACGTCAACCTGTGACAGTGAGATTAATGTCATTCTTACCATTTGGCGAA +AAAGGAATAATTTGGAATCATAATCACAAAAAATTGAAACCATCTGGACTTCCTTCTATA +ATTCTATGCAAAGATCCAAATAGTTATGGATACAAATTCTTTATACCATCCAAAAATAAA +ATTGTCACATCTGATAATTATACAATTCCCAACTATACAATGGACGGTAGAGTAAGAAAT +ACTCAGAATATTAACAAGAGTCATCAATTCAGTTCAGATAATGATGATGAAGAAGATCAA +ATCGAAACGGTCACAAACTTATGTGAAGCTTTGGAAAACTACGAAGATGATAATAAACCA +ATTACTCGCCTGGAAGATTTGTTCACAGAGGAAGAGTTATCTCAAATAGACTCAAACTCA +AAATACCCATCTCCTAGTAATAACCTAGAAGGGGACTTGGATTACGTATTTTCTGATGTT +GAGGAATCTGGAGATTATGACGTTGAATCTGAACTTTCAACGACAAATAATTCAATCTCA +ACTGATAAAAACAAAATTTTGTCAAACAAGGATTTTAATTCAGAACTTGCATCGACTGAA +ATATCCATCAGTGGAATCGATAAGAAAGGATTAATAAATACAAGTCATATTGATGAAGAT +AAGTATGATGAAAAAGTCCACAGAATTCCATCGATTATACAAGAGAAACTGGTAGGAAGG +AAAAATACTATTAAAATCAATGACGAAAACAAAATCTCCGACAGAATTCGTAGTAAAAAC +ATTGGGAGTATTTTAAACACTGGACTCAGTAGATGTGTAGATATCACCGATGAATCTATT +ACTAACAAAGATGAGTCAATGCACAACGCAAAACCCGAACTAATTCAGGAGCAGTTAAAA +AAAACAAATCATGAAACTTCGTTTCCTAAAGAAGGGAGCATTGGAACAAATGTAAAATTC +CGAAATACAAACAATGAGATTTCTTTAAAAACAGGCGATACGAGTTTACCAATAAAAACT +TTAGAAAGCATTAACAATCACCATAGTAATGATTATTCCACAAACAAAGTTGAAAAGTTT +GAGAAGGAAAATCATCATCCGCCCCCGATTGAGGACATTGTGGATATGAGTGATCAAACT +GATATGGAATCAAACTGTCAGGATGGTAATAACTTAAAAGAATTAAAAGTCACCGATAAA +AATGTACCAACTGACAATGGAACAAATGTGTCACCAAGGTTGGAACAAAATATTGAAGCA +TCTGGATCACCAGTACAAACAGTTAATAAAAGTGCCTTCTTAAACAAAGAATTCAGTTCT +TTGAACATGAAAAGAAAACGGAAAAGACACGATAAAAACAATAGTCTAACAAGCTATGAA +TTAGAAAGAGATAAGAAGCGTTCAAAAAAGAATCGAGTGAAATTAATTCCAGATAATATG +GAAACAGTTTCAGCACCAAAAATTCGAGCCATATATTATAATGAAGCTATTTCAAAAAAT +CCTGACCTCAAAGAAAAACATGAATACAAACAGGCATATCATAAAGAATTACAGAATTTA +AAAGATATGAAGGTATTTGATGTCGATGTGAAGTACAGTAGATCAGAAATCCCTGATAAT +TTAATAGTACCCACCAACACGATATTCACAAAGAAAAGAAATGGGATTTATAAGGCTAGG +ATAGTCTGCAGAGGTGATACTCAGTCACCAGACACTTACAGTGTAATAACTACAGAATCT +TTAAATCACAATCATATTAAGATATTCTTAATGATTGCAAACAACAGAAATATGTTTATG +AAGACCCTGGATATCAATCATGCATTCCTATATGCTAAATTGGAAGAAGAAATATACATC +CCACATCCGCATGATAGGAGATGTGTAGTCAAGCTAAATAAGGCGTTATATGGTCTAAAA +CAGAGTCCTAAAGAATGGAATGATCATCTAAGACAATACTTGAATGGAATTGGACTGAAA +GATAACTCTTATACTCCGGGATTATACCAAACCGAGGATAAAAATCTAATGATTGCAGTC +TATGTTGATGACTGCGTAATTGCGGCAAGCAATGAACAGAGATTGGATGAATTCATAAAC +AAATTGAAAAGTAATTTTGAACTGAAAATTACAGGAACATTAATAGACGATGTACTCGAT +ACAGATATATTAGGAATGGATCTAGTATACAACAAAAGACTTGGTACTATCGATTTAACA +TTAAAATCATTCATAAATAGAATGGATAAAAAATACAACGAGGAATTGAAAAAGATTAGA +AAAAGTTCAATTCCGCATATGTCAACTTATAAAATAGATCCTAAGAAAGACGTACTGCAA +ATGTCAGAAGAAGAGTTTAGACAAGGTGTTCTAAAGCTACAACAATTACTAGGTGAACTA +AACTATGTCAGACACAAATGCAGATACGACATTGAATTTGCTGTTAAGAAAGTGGCTAGA +CTAGTAAATTACCCACATGAAAGAGTCTTTTATATGATTTACAAAATAATCCAGTACTTG +GTTAGGTATAAAGATATTGGAATACACTATGACCGAGACTGTAATAAAGACAAAAAGGTT +ATTGCTATAACTGATGCATCAGTTGGATCAGAATATGATGCTCAATCAAGGATTGGAGTT +ATATTATGGTACGGTATGAATATTTTTAATGTTTATTCTAACAAGAGCACAAACAGATGT +GTATCATCAACAGAAGCAGAGCTTCATGCCATTTATGAAGGCTATGCAGACTCAGAAACG +TTGAAGGTAACATTAAAGGAGCTAGGAGAAGGAGACAATAATGACATTGTCATGATCACT +GACTCAAAGCCAGCCATTCAAGGATTAAATCGCAGCTATCAACAACCAAAAGAGAAATTC +ACTTGGATAAAAACTGAAATAATAAAAGAAAAAATTAAAGAGAAGAGTATAAAACTGTTA +AAAATTACCGGCAAAGGTAATATTGCTGATTTACTAACAAAACCAGTATCAGCATCTGAT +TTTAAAAGATTTATACAAGTATTAAAAAATAAAATAACATCACAGGATATTTTGGCCTCA +ACAGACTATTGATAATTAATTAATGAAGTTCTAAACACACAATGAATATCTGTTGAAGTA +CAATAATATATCTTTAAGGGAGCA +>TY4-LTR#LTR/Copia +TGTTGGAACGAGAGTAATTAATAGTGACATGAGTTGCTATGGTAACAATCTAATGCTTAC +ATCGTATATTAATGTACAACTCGTATACGTTTAAGTGTGATTGCGCCTATTGCAGAAGGA +ATGTTAAACGAGAAGCTCAGACAATACTGAAGCTGTGTTAAAGACCTATTAGTTGAACAT +GTTATGGTAGGTACATATATGAGGAATATGAGTCGTCACATCAATGTATAGTAACTACCG +GAATCACTATTATATTGGTCATAATTAATATGACCAATCGGCGTGTGTTTTATATACCTC +TCTTATTTAGTATAAGAAGATCAGTACTCACTTCTTCATTAATACTAATTTTTAACCTCT +AATTATCAACA +>TY4p-I#LTR/Copia +TGGCGACCCCAGTGAGGGATGGAACAAGAAATGTTATTGACGACAACATTTCTGCGCGGA +TTCAATCGAAAGTCAAAACAAATGATACTGTCAGACAGACGCCATCATCATTAAGAAAAG +TTTCTATTAAAGATGAACAGGTACGGCAATATCAAAGAAACTTAAATAGGTTTAAAACCA +TACTAAATGGTTTAAAGGCAGAAGAGGAAAAACTTTCTGAGGCTGATGATATTCAGATGC +TAGCCGAAAAATTATTAAAACTCGGAGAAACCATTGACAAGGTTGAGAATAGGATTCTGG +ATTTAGTTGAAAAGATACAATTATTGGAAACAAATGAGAACAATAATATTTTACATGAAC +ATACAGATGCTACAGGGACTTACTATTTATTCGATACGTTAACTTCAACCAACAAAAGAT +TCTACCCTAAAGATTGTGTTTTTGATTATAGGACTAACAATGTTGAGAACATTCCTATTC +TTTTAAACAATTTTAAAAAATTTATCAAGAAATATCAATTTGATGATGTCTTTGAAAATG +ATATCATAGAAATCGATCCTCGTGAAAATGAAATCTTGTGCAAAATAATCAAAGAAGGAC +TCGGTGAAAGTTTAGATATCATGAACACAAATACAACTGACATTTTTAGGATAATCGATG +GTTTAAAAAACAAATATAGAAGTCTGCACGGTAGAGATGTCAGAATTAGAGCCTGGGAAA +AGGTTTTGGTTGATACAACATGTAGAAATTCCGCATTATTAATGAATAAACTTCAAAAAT +TGGTACTAATGGAAAAATGGATTTTTTCCAAATGCTGCCAAGATTGTCCCAATCTAAAAG +ATTACCTACAAGAAGCTATCATGGGAACCTTACATGAATCCTTAAGAAATTCTGTGAAAC +AACGTTTGTACAATATTCCACATAACGTAGGAATTAATCACGAAGAATTTCTAATCAATA +CTGTTATTGAAACAGTAATTGATTTGAGCCCAATGGGTGACGATCAAATAGAAAATAGCT +GCATGTATTGCAAATCTGTTTTCCATTGCTCAATTAACTGCAAAAAGAAACCAAATAGAG +AACTTAGGCCTGACACGGCAAATTTCTCAAAAACCTATTATACGCAAGGTGCACAGAGAC +AACAACAACTTAAGTCCAGTACAAAACGAACAAAAGTCTTGGAACAAGACACAAAAAAGG +TCGAACAAAGTGTACAACAGCAAAAAACTGGTAATTATTGATACCGGTTCCGGTGTAAAC +ATTACCAATGACAAAACCTTACTGCATAATTACGAAGACAATACTCGCAGTACACGATTT +TTTGGTATCGGGAAAAACAGCTCAGTGTCTGTTAAAGGGTATGGCTATATAAAAATCAAG +AATGGTCACGACAATACTGACAATAAGTGCTTATTGACTTACTATGTACCGGAAGAAGAA +TCCACTATAATCAGCTGTTATGACTTAGCCAAGAAAACCAAATTGGTTTTAAGTCGAAAA +TATACCAACTTGGGAAACAAAATCATAAAAATAAAAACCAAGATAATAAATGGTGTCATT +CACGTAAAAATGAATGAGTTAATTGAACGTCCTTCCGATGATTCAAAAATAAATGCAATA +AAACCTACTTCTTCTACTGGATTTAAACCAAATAAAATGTCTATTACCTTGGAAGATGCT +CATAAAAGAATGGGCCATACAGGAATTCAACAAATTGAAAATTCCATAAAACATAATCAT +TATGAAGAATACCTTGACTTAATCAAAGAACCAAATGAATTTTGGTGTCAAACCTGTAAA +ATCTCTAAAGCCACGAAAAGAAATCATTATACCGGGTCTATGAATAATCATAGTACTGAT +CATGAACCAGGCTCATCATGGTGCATGGATATATTTGGTCCTGTTTCAAGTTCAAACGCG +GACACTAAAAGGTACATGCTTATTATGGTGGATAACAACACGAGATATTGCATGACCTCC +ACACACTTCAATAAGAATGCTGAAACTATATTAACACAAATCAGAAAGAATATTCAGTAC +GTGGAAACACAATTTGACAGAAAAGTCAGAGAAATTAATTCAGACAGAGGTACTGAATTC +ACAAATGATCAGATAGAAGAATATTTTATTTCAAAAGGAATACATCATATACTTACTTCT +ACACAAGATCATGCTGCTAATGGAAGAGCAGAAAGATACATCAGAACAATAATAACTGAT +GCAACAACACTCCTAAGACAAAGTAACTTAAGAGTAAAATTTTGGGAATACGCAGTAACT +TCTGCTACCAATATAAGAAATTGCCTGGAACACAAACGTACAGGTAAACTACCATTGAAG +GCAATCTCACGTCAACCTGTTACAGTGAGATTAATGTCATTCTTACCATTTGGCGAAAAA +GGAATAATTTGGAACCATAATCACAAAAAATTGAAACCATCGGGACATCCTTCTATAATT +TTATGCAAAGATCCAAATAGTTATGGATACAAATTCTTTATACCATCCATAAATAAAATT +GTCACATCTGATAATTATACAATTCCCAACTATACTATGGACGGTAGAGTAAGAAATACT +CAGAATATTTACAAAAGTCATCAAATCAGTTCACATAATGCTGATGAAGAAGATCAAATC +GATACGGTCACAAACTTATGTGAAGCTTTGGAAAACTACGAAGATGATAATAGACCAATT +ACTCGCCTGGAAGATTTTTTCACAGAGGAAGAGTTATCTCAAATAGACTCAAACGCAAAA +TACCCATCTCCTAGTAATAACCTAGAAGGGGACTTGGATTACGTATTTTCTGATGTTGAA +GAATCTGGAGATTATGACCTTGAATCTGAACTTTCAGCGACAAATACCTCAATCTCAACT +GATAAAAACAAAATTTTGTCAAACAAGGATTCTAATTCAGAACTTGCATCGACTGAAATA +TCCATCAGTGGAATCGATAAAAAAGGATTAATAAATACAACTCATATTGATGAAGATAAT +TGTGATGAAAAAGTCCACAGAATTCCATCGATTATACAAGAAAACCTCGTAGGAAGTAAA +AATACTATTAAAATCAATGACGAAAACAAAATCTCCAACAGAATTCGTAGTAAAAACATT +GGGAGTACATTAAACTCTGGACTCAGTAGATGTGTAGATATTACCGATGAATCTATTACT +AACAAAGATGAGTCAATACACAACCCAAAACCAGAACTAATACAGGAGCAGTTTAATAAA +ACAAACCATGAAACTTCGTTTCCTAAAGAAGGGAGCATTGGAAGAAATGTAAAATTCCGA +AATCCAAACAATGAGATTTCTTTAAAAACAAGCGAAACGAGTTTACCAATAAAAACTTTA +GAAAGTATTAACAATCACCACAGTAATGATTATTCCACAAACAAAGTTGAAAAGTTTGAG +AAGGAAAATCATCATCCGCCCCCGATTGAGGACGTTGTGGATATGAGTGATCAAACAGAT +ATGGAATCAAACTGTCAGGATGATAATAACATAAAAAAATTAGAAGACACCGACGAAAAT +GTACCAACTGAGAATGGAACCAATGTGTCACCAAGGTTGGAACGAAGTAGTAAAAAAAAT +GAGATCAACACTACAACCAATTAAAACGACAACTGAAGCATCTGGATCGTCAGTACAAAC +AGTTAATAAAAGTGCCTTTTTAAACAAAGAATTTAATTCTTTGAATATGAAAAGAAAACG +GAAAAGACACGATAAAAACAATAGCTTAACAAGCTACGAATTAGAAAGAGATAAGAAGCG +TTCAAAGAAGAATCGAGTGAAATTAATTCCAGATAATATGGAAACAAGTTCAGCACCGAA +AATTAGAGCCATATATTATAATGAAGCTATTTCAAAAAATCCTGACCTCAAAGAAAAACA +TGAATACAAACAGGCATATCATAAAGAATTACAAAATCTAAAAGATATGAAGGTATTTGA +TGTCGATGTGAAGTACAGTAGATCAGAAATCCCTGATAATTTAATAGTACCCACCAACAC +AATATTCACAAAGAAGAGAAATGGGATTTATAAGGCTAGGATAGTCTGCAGAGGCGATAC +TCAGTCACCGGACACTTACAATGTAATAACTACAGAATCTTTAAATCACAATCATATTAA +GATATTCTTAATGATTGCAAACAACAGAAATATGTTTATGAAGACTCTGGATATCAATCA +TGCATTCCTATATGCTAAATTGGAAGAAGAAATATACATCCCACATCCGCATGATCGGAG +ATGTGTAGTCAAACTAAATAAGGCGTTATATGGTCTAAAACAGAGTCCTAAAGAATGGAA +TGATCATCTAAGACAATACTTGAATGGTATTGGATTGAAAGATAACTCTTATACTCCGGG +ATTATACCAAACCGAGGATAAAAATCTAATGATTGCAGTTTATGTTGATGACTGCGTAAT +TGCGGCAAACAATGAACAGAGATTGGATGAATTCATAAACAAATTGAAAAGTAATTTTGA +ACTGAAAATTACAGGAACATTAATAGATGATGTACTCGATACAGATATATTAGGAATGGA +CTTAGTATACAACAAAAGACTTGGTACTATCGATTTAACATTGAAATCATTCATAAATAA +AATGGATAAAAAATACAAAGAGGAATTGAAAAAGATTAGAAAAAGTTCAATTCCGCATAC +GTCAACTTATAAAATAGATCCTAAGAAAGACGGACTGCAAATGTCAGAAGAAGAGTTTAG +ACAAGGTGTTCTGAAATTACAGCAATTACTAGGTGAACTAAACTATGTCAGATACAAATG +CAGATACGACATTGAATTTGCTGTTAAGAAAGTGGCTAGACTAGTAAATTACCCACATGA +AAACGTCTTCTATATGATTTACAAAATAATCCAGTACTTGGTTCGGTATAAAGATATTGG +AATACACTATGACCGAGACTGTAATAAAGATAAGAAGGTTATTGCTATTACTGATGCATC +AGTTGGATCAGAATATGATGCTCAATCAAGGATTGGAGTTATATTATGGTACGGGATGAA +TATTTTTAATGTTTATTCTAACAAGAGCACAAACAGATGTGTATCATCAACAGAAGCAGA +GCTTCATGCCATTTATGAGGGCTATGCAGACTCAGAAACGTTGAAGGAAACATTAAAAGA +GCTAGGAGAAGGAGAAAATAATGACATTGTCATGATCACTGACTCAAAGCCAGCCATTCA +AGGATTAAATCGTAGCTATCAACAACCAAAAGAAAAATTCACTTGGATAAAAACTGAAAT +AATAAAAGAAAAAATTAAAGAGAAGAGTATAAAACTGTTAAAAATTACCGGCAAAGGTAA +TATTGCTGATTTACTAACAAAACCAGTATCAGCATCTGATTTTGAAAGATTTATACAAGT +ATTAAAAAATAAAATAACATCACAGGATATTTTGGCCTCAACAGACTATTGATAATTAAT +TAATGAAGTTCTAAACACACAAGGAATATCTGTTGAAGTACAATAATATATCTTTAAGGG +AGCA +>TY4p-LTR#LTR/Copia +TGTTGGAACGAGAGTAATTAATAGTGACATGAGTTGCTATAGTAACAATCTAATGCTTAC +ATCGTATATTAATGTACACCTCGTATACGTTTAAGTGTGATTGCACCTATTGCAGAAGGA +ATGTTAAACGAGAAGCTCAGACAATACTGAAGCTGAGTTAAAAATCTATTAGTTGAACAT +GATATGGTAGGTACATATATGAGGAATATGAGTCGTCACATCAATGTATAGTAACTACCG +GAATCACTATTATATTGGTCATAATTAATATGACCAATCGGCGTGTGTTTTATATACCTC +TCTTATTTAGTATAAGAAGATCAGTACTTATTTCTTCATTAGTACTATATTTTAACCTCT +AATTATCAACA +>TY5-I#LTR/Copia +GGTTATGAGCCCTGAGAGCAATGCTTCAGAGACCATAATTAATCTATCTAATCCCAACAA +TTATAAACAGTGGCTGTACGGTATCGAGACCGCTGCTGAATATGCTAACGAATATATGAA +CGAATTCGTTCATACCGGAGATATCCAATCAATGAAAAGGGATTACAATCTCAGCGCGAA +TGATGAAAGCTTTGTCAAAACCGTATTTAACAGTTTCCTGGTAAAGCTCTACAAGAAAAC +TATCGTGGGTGAAGCTGCATGTGAAATGAACTGGATATGTGATGATTCACTTGGAAGGGT +CTCTGCTTATGATATTTTCTCGCACTTCGAAGAAAACTATAATGAAGTCACTATTGGATC +CAGGCTTACTCTTATAGAGGACTTACCAAATATATCCTCCAAGCCTGTAGATGAAATCGC +TTCCTTTTTGAAAACCCTATTCACAATGCTTGAAGACAATAGCGAAGAACAGGACAAAAA +GAAAAGACGCGATACCAATATCGCGTTGCTATTAATGACCTTCTTACCCGAGTTAAAGGA +ATCATTCCACGAGAAATTCGGTGACTCTAAAGCTCTTCAGCTGTCACAAGTCATTAGATT +CTGTAAATTAAAGGCGTCATCGAATTCATTATCTTCAGTCTCAGATACATTGGTTGCACA +AGACAGAAGAAGCTATCAAAAGAAAGGAAATAAGGGATGTATGATTTGTGGGGCTGATCA +TCGCTTAAGCAACTGTTCTCTGCTTAAAAGAAGAATACCAGAAGCCAGAATCTTTAAATT +ATATCCTAATGACAAGACGAATAGATCTTCATCTGCTAGTGTTGCGATTCCTGACTATGA +AACGCAAGGCCAAACAGCAGGACAGATAACACCAAAGTCCTGGCTCTGTATGTTATCTTC +GACCGTCCCAGCTACCAAATCCTCAGATTGGATTTGTGACACAGGATGTACTTCACACAT +GTGCCACGACCGTTCTATGTTCTCATCATTTACTAGATCCTCTAAGAAAGACTTTGTCAG +AGGAGTCGGCGGTTCCATACCCATCATGGGCTCCGGGACTGTAAACATCGGCACTGTTCA +ATTAAATGACGTATCCTACGTCCCTGATTTACCAGTCAACCTAATATCCATTTGGAAACT +ATGTGCTAAATCCAACTCTTCTGTTACGTTCACAAAAGAGGGTGTCACTGTGAAATCACC +TGATGACGTGATTTCTACGGCTGGGAAGTTAAACAATTATCTGTACATTTTCGATGATCT +TACGCCCGTAACTACCTTCTCTTCGCAAAATTACTTCTGCTCTAAAACATTGGATTCATC +TAAAATGATAACTTCCGCAGCGTTTCATACCGTTGCAGATAAAATGTTGTCGCAACACAT +TTCTCCCACTGCTCTCCCGGTAAAATGGCATGCTCGTATGGGCCATCCCGGAGCAGATAT +TTACAATTCCTTGGCTAGAACTCTGCGTTTTCCAAAATTTAAGACGGCTGAATACACTAT +TTGTCCTACCTGCTCACTAGCAAAAGGAATCATCAAAAAGGGTAAAGTCTCGCTCAAAAA +ATATACCCAACCTCTTCAAATGGTACAGGCTGATCTCTGTGGTGGGTTTCGCTACCAAGA +GTTTCAGTCAAATAAATATTTTCTTACTATCCGTGATGCCTATAGTCGCTACTACTCTGT +AATACATTTAAAATCCAAAGCAGACGCTCCGATAAAATTCATGGAATGGATCAACGAAAC +CGAACAATACTTTAGCTCCCGGGGTGGATTCAAAGTCGGATCTGTTCGTACAGACAATGG +TACAGAATTCGTAAATAAAAATCTTCATGCGTTTTTTAAATCTAAAGGAATAGAGCATCA +GTTAACTATTCCATATCATAGTTATCAAAATGGTGCTGTTGAACGTGCACATCGTACCAT +CGAAGAACGCACTCGTTGTCTCCTTATCGGGGGGCGTGTTCCTCCGTCCTTGTGGTCTGA +AGCTGTTTCTTGCGCAGTCTATTTAATCAATAGGTCCCCTGTAGTGTCCAAAAATAACAG +TATCCCATACTGCCGGTGGTTCAACATCCCCGCAAAAGATTTCGGTATCGCACATCTTCG +AATTTTTGGATGTACAGCATACGCAACCTTACAACCTAGTCTTCGAGACGGCAAACTTGC +CCCAACTGTCATATCTGGTGTTATGGTTGGCTATGACTCTAACCATCGAGGATACAGGAT +TTATCATCCCGAAACTGGCCGCATCTTTGTGAGCAGTCAAGTTCGATTTGACGAACACAT +GTTTCCTCTTGCTGATACAGAGGCAGTTCACGTCTCTCACGACTTTGCCACTTCCGCTAT +TGGGGGGGTGTCCAAATATCCTGAAACAGGGTCAACCGTCTCTGCTCCAAAGAACGACGG +ATCTGACTTGGCAAATTTGCCAATAACTGTTCCCAAAAATGTAAATCAACCAGCACATAA +ACCTAATACCAGTAACATCTCTTCCTCTGATGATGATGAGGATATTTCAATGGAAATCGA +AATGGAAAAACCTATCCCTGAGTGTAACCAAGACAACTTACCAAACTCCGGATGTCCACC +AACAAGGATACAACATTCTAACTTTGAATCCTTACCAACCGTGTCTACCGAAGACGAAAC +TAATTCTTCTATGGAGAAAACTCCTGAAAGAGTTCCAGCGGCACTAACTTATCGAGAAAT +TCCAAAATCATCCGATTCAGAATATATTCCGACATGCCGAAATAGAACTAGACGTGTTAA +AAGAACTAATAAGAAACCAACGCGATCCCGCGAAATAGAAATATATGATATATCACGTCC +AAACGTAATATCGAGTGACAACTTACCTGAAGTTAGAAGTGCCAAGCAAAGAAAGACGGT +GTCCAATACAAATGATACTGTAGCAAGGACAAATAGACTTCCAACCGTGCTACGAACTCT +AGACTCAAACAACATTGACACGCTGCATGTTGCCAGTACTGGTGAAGAAGTGTCCATCGA +AAGACTTTCAAGCATGGCTCTTCAGGAAGCGAAGAACAATTCCGCCAGAACTAATCAAGC +TAATTCTCTTACTGATTGGTTTCCAGTAGGCGCAATGCCGATACCTGACCAGAGGTATCT +ATCCGTTCACGATGGAACATATATCAGCGACTCACAAGATGTGGGTGATACTGACCTCAC +TCCTGCTGTAACCAGGCTAGTTACTGAAGAGAATTCAATCGAATCTCCTCCATCGTTGGA +TTCATCGCCTCCAAATACCTCATTTAACGCGGCTCTAACTGCTATTATCCATAGCACAAA +AAAAGGAAACCCGAAAACCTATGCCCAAGCAATGGGAAGGCCTGACTTTCAAGAATGGCA +CAACGCATGCCTCAAGGAACTTTCCGCGTTCAAAGATCACAATACGTACAAATTGGTGTC +TCTTCCAAAGCAAAGAAGAGCTCTTGGATCGCGCTGGGTATTCACAATAAAAGACTCCGG +GACGTACAAAGCTCGCCTTGTCGCCCAAGGACATACTCAAAAGGCTGGTATTGACTATCA +AGAAACTTTTGCACCAGTCATTCGATATGACTCTGTTAGATTATTTCTGGCCCTTGCTAG +CTGCCTCAAACTAATAGTATATCAGATGGACGTTGACACCGCGTTTCTAAACTCAAAAAT +GAATGAGCCGGTATACGTAAAACAACCACCCGGATTTATTAATGAAAGTAATCCCGACTA +TGTATGGGAACTATACGGCGGTATGTATGGACTCAAGCAAGCCCCATTACTATGGAACGA +ACATATCAACAATACTCTTCAAAAGATTGGTTTTCGTCGACATGAAGGCGAACATGGCTT +ATACTTTCGTTCCACATCTGATGGTCCCATCTACATTGCCCTATACGTAGACGACTTACT +TGTTGCTGCTCCCTCTCCGAAAATATATGACAGGGTTAAGCAGAAACTAACGAAGTTATA +CTCAATGAAGGATCTAGGTAAAGTTGACAAATTCCTCGGTCTTAACATTAATCAATTTTC +AAATGGAGACATCACTCTCTCACTTCAAGACTATATTGCTAAAGCTGCATCTGAAAGCGA +AATAAACATATGTAAGCCTACACAGACTCCGCTCTGTGACTCAAAGCCTCTTTTCGAAAC +AACTTCCCCGCACCTAAAGGACATCACTCCTTATCAGAGCATAGTTGGACAGCTTCTCTT +TTGTGCAAATACTGGTCGTCCTGACATATCTTATCCGGTCTCACTACTCTCCAGGTTTCT +TCGCGAACCTCGCGCAATCCATTTGGAGTCTGCTCGACGAGTTCTACGGTACCTATATAC +CACCAGAAGTATGTGTCTCAAGTATCGTTCTGGATCTCTGTTGGCACTAACTGTATATTG +TGATGCATCTCATGGAGCAATTCACGATCTCCCACACTCTACTGGGGGGTACGTGACTCT +ACTTGCTGGTGCTCCAGTTACGTGGTCATCAAAGAAACTCAAGGGTGTGATTCCTGTATC +ATCTACTGAGGCAGAATACATTACTGCAAGTGAAACTGTCATGGAGATAGAATGGATTCA +AAACTTGTTTGAACACTTAGGCCAGCCACTTATCTCATCAACATTATACGTAGATAATGA +ACCTGCTATAAAACTATCTAAACATCCTGTATTTCACACGAGAACAAAACACATTGCCTT +GAGATATCACAAGCTAAGAAGTGCAGTGGCAGCAGGCATAATTACCATAGAGCATGTTAT +TACAAAGAGACAAGTTGCTGACATATTTACAAAAATCCTTCCAGCAGAATCATTCAAAGC +ACATAGGGCTGTCATGGTGAGGGAACCAGAAACTGCAAAATAACCACTCTCATGCGTATT +CAGTTATGGGGGGA +>TY5-LTR#LTR/Copia +TGTTGAATGTGATAACCCAAAAGCATGATATGGGTAATGTTTCAGTACTGTTTCAGAATT +GTTTCAGTAATGTTTTAGACAAGGAAAACATAGAGCAGCAAACCTCCGATCCGACAGTAC +TTAAGAAACCATAGTTTCTGTGTACAAGAGTAGTACCTATGTAATTCTTACATTTACATA +ACATATAGAAAGGTCCAATAAACTTACAACATTATGACATATAAGCTAGATCGTAATTCA +CTACGTCAACA +>TY5p-I#LTR/Copia +GGTTATGAGCCCTGAGAGCAATGCTTCAGAGACCATAATTAATCTATCTAATCCCAACAA +TTATAAACAGTGGCTGTACGGTATCGAGACCGCTGCTGAATATGCTAACGAATATATGAA +CGAATTCGTTCATACCGGAGATATCCAATCAATGAAAAGGGATTACAATCTCAGCGCGAA +TGATGAAAGCTTTGTCAAAACCGTATTTAACAGTTTCCTGGTAAAGCTCTACAAGAAAAC +TATCGTGGGTGAAGCTGCATGTGAAATGAACTGGATATGTGATGATTCACTTGGAAGGGT +CTCTGCTTATGATATTTTCTCGCACTTCGAAGAAAACTATAATGAAGTCACTATTGGATC +CAGGCTTACTCTTATAGAGGACTTACCAAATATATCCTCCAAGCCTGTAGATGAAATCGC +TTCCTTTTTTGAAAACCCTATTCACAATGCTTGAAGACAATAGCGAAGAACAGGACAAAA +AGAAAAGACGCGATACCAATATCGCGTTGCTATTAATGACCTTCTTACCCGAGTTAAAGG +AATCATTCCACGAGAAATTCGGTGACTCTAAAGCTCTTCAGCTGTCACAAGTCATTAGAT +TCTGTAAATTAAAGGCGTCATCGAATTCATTATCTTCAGTCTCAGATGCATTGGTTGCAC +AAGACAGAAGAAGCTATCAAAAGAAAGGAAATAAGGGATGTATGATTTGTGGGGCTGATC +ATCGCTTAAGCAACTGTTCTCTGCTTAAAAGAAGAATACCAGAAGCCAGAATCTTTAAAT +TATATCCTAATGACAAGACGAATAGATCTTCATCTGCTAGTGTTGCGATTCCTGACTATG +AAACGCAAGGCCAAACAGCAGGACAGATAACACCAAAGTCCTGGCTCTGTATGTTATCTT +CGACCGTCCCAGCTACCAAATCCTCAGATTGGATTTTTGACACAGGATGTACTTCACACA +TGTGCCACGACCGTTCTATGTTCTCATCATTTACTAGATCCTCTAAGAAAGACTTTGTCA +GAGGAGTCGGCGGTTCCATACCCATCATGGGCTCCGGGACTGTAAACATCGGCACTGTTC +AATTAAATGACGTATCCTACGTCCCTGATTTACCAGTCAACCTAATATCCATTTGGAAAC +TATGTGCTAAATCCAACTCTTCTGTTACGTTCACAAAAGAGGGTGTCACTGTGAAATCAC +CTGATGACGTGATTTCTACGGCTGGGAAGTTAAACAATTATCTGTACATTTTCGATGATC +TTACGCCCGTAACTACCTTCTCTTCGCAAAATTACTTCTGCTCTAAAACATTGGATTCAT +CTAAAATGATAACTTCCGCAGCGTTTCATACCGTTGCAGATAAAATGTTGTCGCAACACA +TTTCTCCCACTGCTCTCCCGGTAAAATGGCATGCTCGTATGGGCCATCCCGGAGCAGATA +TTTACAATTCCTTGGCTAGAACTCTGCGTTTTCCAAAATTTTAAGACGGCTGAATACACT +ATTTGTCCTACCTGCTCACTAGCAAAAGGAATCATCAAAAAGGGTAAAGTCTCGCTCAAA +AAATATACCCAACCTCTTCAAATGGTACAGGCTGATCTCTGTGGTGGGTTTCGCTACCAA +GAGTTTCAGTCAAATAAATATTTTCTTACTATCCGTGATGCCTATAGTCGCTACTACTCT +GTAATACATTTAAAATCCAAAGCAGACGCTCCGATAAAATTCATGGAATGGATCAACGAA +ACCGAACAATACTTTAGCTCCCGGGGTGGATTCAAAGTCGGATCTGTTCGTACAGACAAT +GGTACAGAATTCGTAAATAAAAATCTTCATGCGTTTTTTAAATCTAAAGGAATAGAGCAT +CAGTTAACTATTCCATATCATAGTTATCAAAATGGTGCTGTTGAACGTGCACATCGTACC +ATCGAAGAACGCACTCGTTGTCTCCTTATCGGGGGCGTGTTCCTCCGTCCTTGTGGTCTG +AAGCTGTTTCTTGCGCAGTCTATTTAATCAATAGGTCCCCTGTAGTGTCCAAAAATAACA +GTATCCCATACTGCCGGTGGTTCAACATCCCCGCAAAAGATTTCGGTATCGCACATCTTC +GAATTTTTGGATGTACAGCATACGCAACCTTACAACCTAGTCTTCGAGACGGCAAACTTG +CCCCAACTGTCATATCTGGTGTTTATGGTTGGCTATGACTCTAACCATCGAGGATACAGG +ATTTATCATCCCGAAACTGGCCGCATCTTTGTGAGCAGTCAAGTTCGATTTGACGAACAC +ATGTTTCCTCTTGCTGATACAGAGGCAGTTCACGTCTCTCACGACTTTGCCACTTCCGCT +ATTGGGGGGGTGTCCAAATATCCTGAAACAGGGTCAACCGTCTCTGCTCCAAAGAACGAC +GGATCTGACTTGGCAAATTTGCCAATAACTGTTCCCAAAAATGTAAATCAACCAGCACAT +AAACCTAATACCAGTAACATCTCTTCCTCTGATGATGATGAGGATATTTCAATGGAAATC +GAAATGGAAAAACCTATCCCTGAGTGTAACCAAGACAACTTACCAAACTCCGGATGTCCA +CCAACAAGGATACAACATTCTAACTTTGAATCCTTACCAACCGTGTCTACCGAAGACGAA +ACTAATTCTTCTATGGAGAAAACTCCTGAAAGAGTTCCAGCGGCACTAACTTATCGAGAA +ATTCCAAAATCATCCGATTCAGAATATATTCCGACATGCCGAAATAGAACTAGACGTGTT +AAAAGAACTAATAAGAAACCAACGCGATCCCGCGAAATAGAAATATATGATATATCACGT +CCAAACGTAATATCGAGTGACAACTTACCTGAAGTTAGAAGTGCCAAGCAAAGAAAGACG +GTGTCCAATACAAATGATACTGTAGCAAGGACAAATAGACTTCCAACCGTGCTACGAACT +CTAGACTCAAACAACATTGACACGCTGCATGTTGCCAGTACTGGTGAAGAAGTGTCCATC +GAAAGACTTTCAAGCATGGCTCTTCAGGAAGCGAAGAACAATTCCGCCAGAACTAATCAA +GCTAATTCTCTTACTGATTGGTTTCCAGTAGGCGCAATGCCGATACCTGACCAGAGGTAT +CTATCCGTTCACGATGGAACATATATCAGCGACTCACAAGATGTGGGTGATACTGACCTC +ACTCCTGCTGTAACCAGGCTAGTTACTGAAGAGAATTCAATCGAATCTCCTCCATCGTTG +GATTCATCGCCTCCAAATACCTCATTTAACGCGGCTCTAACTGCTATTATCCATAGCACA +AAAAAAAGGAAACCCGAAAACCTATGCCCAAGCAATGGGAAGGCCTGACTTTCAAGAATG +GCACAACGCATGCCTCAAGGAACTTTCCGCGTTCAAAGATCACAATACGTACAAATTGGT +GTCTCTTCCAAAGCAAAGAAGAGCTCTTGGATCGCGCTGGGTATTCACAATAAAAGACTC +CGGGACGTACAAAGCTCGCCTTGTCGCCCAAGGACATACTCAAAAGGCTGGTATTGACTA +TCAAGAAACTTTTGCACCAGTCATTCGATATGACTCTGTTAGATTATTTCTGGCCCTTGC +TAGCTGCCTCAAACTAATAGTATATCAGATGGACGTTGACACCGCGTTTCTAAACTCAAA +AATGAATGAGCCGGTATACGTAAAACAACCACCCGGATTTATTAATGAAAGTAATCCCGA +CTATGTATGGAACTATACGGCGGTATGTATGGACTCAAGCAAGCCCCATTACTATGGAAC +GAACATATCAACAATACTCTTCAAAAGATTGGTTTTCGTCGACATGAAGGCGAACATGGC +TTATACTTTCGTTCCACATCTGATGGTCCCATCTACATTGCCCTATACGTAGACGACTTA +CTTGTTGCTGCTCCCTCTCCGAAAATATATGACAGGGTTAAGCAGAAACTAACGAAGTTA +TACTCAATGAAGGATCTAGGTAAAGTTGACAAATTCCTCGGTCTTAACATTAATCAATTT +TCAAATGGAGACATCACTCTCTCACTTCAAGACTATATTGCTAAAGCTGCATCTGAAAGC +GAAATAAACATATGTAAGCCTACACAGACTCCGCTCTGTGACTCAAAGCCTCTTTTCGAA +ACAACTTCCCCGCACCTAAAGGACATCACTCCTTATCAGAGCATAGTTGGACAGCTTCTC +TTTTGTGCAAATACTGGTCGTCCTGACATATCTTATCCGGTCTCACTACTCTCCAGGTTT +CTTCGCGAACCTCGCGCAATCCATTTGGAGTCTGCTCGACGAGTTCTACGGTACCTATAT +ACCACCAGAAGTATGTGTCTCAAGTATCGTTTCTGGATCTCTGTTGGCACTAACTGTATA +TTGTGATGCATCTCATGGAGCAATTCACGATCTCCCACACTCTACTGGGGGTACGTGACT +CTACTTGCTGGTGCTCCAGTTACGTGGTCATCAAAGAAACTCAAGGGTGTGATTCCTGTA +TCATCTACTGAGGCAGAATACATTACTGCAAGTGAAACTGTCATGGAGATAGAATGGATT +CAAAACTTGTTTGAACACTTAGGCCAGCCACTTATCTCATCAACATTATACGTAGATAAT +GAACCTGCTATAAAAACTATCTAAACATCCTGTATTTCACACGAGAACAAAACACATTGC +CTTGAGATATCACAAGCTAAGAAGTGCAGTGGCAGCAGGCATAATTACCATAGAGCATGT +TATTACAAAGAGACAAGTTGCTGACATATTTACAAAAATCCTTCCAGCAGAATCATTCAA +AGCACATAGGGCTGTCATGGTGAGGGAACCAGAAACTGCAAAATAACCACTCTCATGCGT +ATTCAGTTATGGGGGGA +>TY5p-LTR#LTR/Copia +TGTTGAATGTGATAACCCAAAAGCATGATATGGGTAATGTTTCAGTACTGTTTCAGAATT +GTTTCAGTAATGTTTTAGACAAGGAAAACATAGAGCAGCAAACCTCCGATCCGACAGTAC +TTAAGAAACCATAGTTTCTGTGTACAAGAGTAGTACCTATGTAATTCTTACATTTTACAT +AACATATAGAAAGGTCCAATAAACTTACAACATTATGACATATAAGCTAGATCGTAATTC +ACTACGTCAACA +>TSU4b-I#LTR/Copia +TGGCGACCCCAGTGAGGGATGAGACAAGATATGTTATTGACGACAACATATCTACGCAGG +TTCAATCAAAAGTCAAATTTCAAAACTTAAGTTTTGATACTTCCGTTAAAAACAAACAAA +GGATTCAAACTCAAATTGATTTAAAAATGTATGAAAGATTCTTAAACAAATTAACCACTA +AAAAGAATAAAATTGCAAATGAGGCTGAAGAGGATGATGATATTTCAAATCTCGACCAGT +TAATTGAAGTCGATGAAAAAATTGAAAAAACTAATAATATAATTCTTAGGTTACAAGAAA +AGTTAGAATTGATTGAATTCAATAAAGATGTTAAGAAGTTACATAAAAGAAATGATTCCA +CTGGAACATATTACTTATTCGACACAATTACCTCAAAAAATAATAAATATTATCCTAAGG +ATTGGATATTCAAGTATAAGATGAATAAAATTGGAGATATTCCTGTTTTTTTGAACAACT +TTCACCAATTCATTGAAAAATATGAATTCGATAATGTTTTTGATCAACAAATACAAAACA +TCGATCCCCGTGAAAACGAAATCTTATGTAAGATTATCAAAGAAGGTTTTGATGAAAGTC +CTGATATAATGAACATTAATACAGTTGACATCTTTAGAATCATTAGTGAATTAAAGAAAA +AATACACTCGTTTTTTTGGCAGAGATAGAAGGTTAAAGGCTTGGGAAAAAGTGTTGGTGG +ATACAACTTGTAAGAATACTGAATTATTGATAAATGAACTTCAAAAGTTAATATTAATGG +AAAAATGGATTCTTTCAAAGTGTTGTCAAGATTGTCCAAATCTTACACACATTTTAGAAG +AGGCTATTCTTGGAACCTTACATGAATCTGTGAGAAATCCGGTTAAACAACGTTTACACA +TGTACTCAATTAGTGAAAATGAAAAAACTGAAGAAATTCTGATTAACATCGTAATTGAAA +CAGTAATGGACTTGAGTCCACCTGACTCTCATTATACAGAAAGAAATTGTAAGTACTGTA +AATCGGAATTACACAGCTCTGTGAACTGTAGAAAGAAAGTAAACAGAGAACTTAGGCCTA +CTACATCCAGCTACTCAAAAGGTAATTATTCACAAGGCTCAAACCAAAAAGAATACACAA +AGACTGGCACAAAACCATTCAGAACTTTTGAAAAGACAAAAGAAGAAGAACAAAAAGGGT +TCAAACAAAACTCTAGTAATTATTGATACCGGTTCAGGCGTCAATATTACGAATAATAAG +AATTTATTACACGAGTACGAGGACAACAAAGAAAAAGTAAAATTCTTCGGTATTGGGAAA +GATAACTCAGTTCCTGTTAAAGGATCAGGATACATTAAAATAAAAAGTAACACAAATGAT +GATTACTTATTAACTCATTATGTTCCTGAAGAAAAAACTACCATTATCAGTGGATATGAT +TTAGCCAAAGAAACCGATCTCGTATTAAACCAAAACTACTCCACCTTGGAAAACAAGGAC +ATGAACATTAAAACTCATGTAAAAGATGGAATTATTCACGTAAGAATGGATGACTTAATA +GATCATCCTGCATATGATTATAAAATCAATGCGATACAACCTACTTCTTCTAAAAAAATT +AGACTGAAGCCCAAAATTATAAGCTTAAAAGATGCTCATAAACGAATGGGACATACAGGA +GTTCAACAAATTGAAAACTCTATTAAACATAGTCATTACGAAGAAAGTATTGATTTAATT +AAAGAACCAAATGAATTTTGGTGTGAAACTTGTAAAGTTTCAAAAGCCACGAGAAGGAAC +CATTATGCTGGATCCATGAATGAACACAGTATCGATCATGAACCTGGTTCATCGTGGTGC +ATGGATATCTTTGGTCCAGTATCAAATTCGAACTTGGATACAAAAAGATACATGCTTATT +ATGGTTGATAACAATACAAGATATTGTATCACCTCCACACATTTTAATAAAAATGCTGAA +ACTATCTTGGCACAGATCAAGAAGAATATTCAGTATGTGGAAACTCAATTCGACAGAAAA +GTCAGAGAAATCAATTCAGATCAAGGAACTGAATTTACAAATGATCAAATCGCAAAATAT +TTTGTTTCAAAAGGAATTCATCATATATTTTCCGCTACACAAGATCATGCTGCCAACGGA +AGAGCAGAAAGGTACATCAGAACCATCGTTACTGATGCAACAACTTTGTTAAAACATAGT +AACTTACGTATTAAATTTTGGGAATACGCAGTAATATCTGCTACCAATGTACGCAATTGT +TTAGAAAACAAAACCACAGGTCAACTACCGCTAAAGGCGATATCTAGTCAACCTGTTAAA +GTGAGATTCATGTCCTTCTTACCATTTGGAGAACAAGGAATAATTTGGAATCATAATCAC +AATAAACTAAAACCATCAGGACTTAGTGCTATAATATTATGCAAAGATCCTAATAGTCAC +GGATACAAATTTTTTGTACCATCTATTAAAAAAATTGTCACTTCCGATAATTACACAATT +CCAGACTATGCTGTGGATCCAATATTAAGGAACACACAGAACATATACCTAGATGATCAA +AGCAGATCAGATACTTTCAATGAAGCAGAAAACATAGATGCTGTTTCAAGGTTGTATGAT +TCACTGGAAGATTACGAAGATGATCATAAACAAGTTACACTACTTACAGACTTGTTCACC +ACAGAAGAACTAGCCCAAATCGAAGCTAATTCTAAATATCCATCTCCTAGTGATAATCTA +GAAGGTAATTTAGACTACGTTTTCTCTAACATAGAAGAATCTGACGAAGATGAATACGAT +CATGTAACAAACATGGATGTAGATTCAGAACTTCAATCGAAAGAAAATATCACTACTGAA +AGTGAAACAAACGAAATAAATAAACCAAGTAATACTGATGAGGATGTTTACGAAGAAAAT +GTTTATAGAATTCCTACGGCAATACAAGAAAACCTTGTTGGAAGCCAGAAAACTATAAAC +ATCAATAATGAGGATAATATTGCTAGCAGAATGCAAAAGAATATCAGTGGAAATGAAATA +AACTACAAAGAATTATCAGATGACGACAGTGATTGTAGCCTTCATGATTCTACAAATGAC +TCAGTTACGATTACAAGCAAAAAGGATAATTTAACAGATGATAAAGATTTACAATCACAG +CAAGAATTATTCGAAAAAGTTAGTGATCCAGAAGTATTACCTGAACACATGAAAATTGAA +AAAGATGTGGAGTCTCAAAATTCAGATAATGAAACCTCACAAGGCGTACAGTTTCAACCT +GAATCAATTGTCACATCATCAAGTGACAATGATACTCAAAATGATGACTATTCAACTGAC +AAAGAAAGTCATCACCTGCCCCTGGTTGTAAACGTTATGGACAATACTGACCAAACATAT +GATAAACCAAACAAGGAAAAAAGTAAAAACAACTCTGATATAAGTATCTCACCGAAAGGT +AATAATGAAGAGTTAGTACAATTGGTAGATAGTAACAAAGCCGAAAAACAGGATGCTACA +CTAGAATCATCAGCGATAACAGATGAACCAATTGAAATAGAAAACCCAGCAGCAAACAAA +GCTGGATTCTTAAATAAAGCGTTCAATTCTCTTAATAAGAAAAGGAAGAGACCTATTGAA +AACAAGACTTCCTTTAATGACACAGCTAAAAGAGACAATAAACGTCAAAGAAAAAACATA +ATCAAACTACTTCCGGATAACACAGAAACAAGTTCTGCACCGAGAATAAAAACCATCTAC +TACAATGAAGCTATTTCAAGAAATGCTGATCTCAAAGAAAAACATGCTTATAAAGAGGCA +TACAGGAAAGAATTACAAAATCTCAAGGATATGAATGTATTCGACGTAGATGTCAAATAC +AACAGATCTGATGTTCCTAGTAATTTAATAATTCCGACAAATACAATATTCTCAAAGAAG +AGAAATGGTATTTATAAAGCAAGAATTGTTTGTAGAGGTGATATCCAGACACCAGACACG +TATAATGTTATTGGAACAGAATCACTGAACCATAATCACATTAAAATATTTCTGATGATT +GCAAACAATAGAAACATGTTCATGAAAACATTAGATATTAATCATGCGTTCCTATATGCG +AAATTAGAAGAAGACATATACATTCCACACCCACATGACAGGAGATGTGTTGTTAAACTA +AATAAAGCACTATATGGGCTTAAGCAGAGTCCTAAAGAATGGAACGACCATCTTAGACGA +TATTTAAACAGTATTGGATTAAAAGATAACACTTATACTCCAGGACTATACCAATCCAAG +GATAAAAAACTCATGATCGCAGTTTATGTTGATGACTGTGTGATTGCAGCAAGTGATGAA +CAAAGATTAGATGATTTCATAAACAATTTAGAAAATACCTTTGAGCTAAAAATCACCGGT +ACTCTAATAGATGATATATTGGACACAGACATCTTAGGGATGGACTTGATCTATAACAAA +AAACTTGGTACGGTGGATTTAACGTTAAAATCATTCATAGAAAAAATGGGTGAGAAGTAT +AAAAAGGAATTGGATAAGGTTAGAAAAAGTTCAATTCCACATACATCAGTATACAAGATT +GATCCCAAAAAGGGAGAATTAAAGATGACCGAAAAAGAATATAAAAACGGTGTGTTGAAA +TTACAACAACTACTAGGAGAACTTAACTATGTTAGGTACAAGTGTAGATACGATGTTGAA +TTTGCGGTCAAGAAAGTAGCTAGATTAGTAAACTTTCCTCATGAACAGGTATTTTACATG +ATTTACAAAATCATACAATATTTAGTACAACATACGAATATCGGAATACACTATGATAGA +GACCTCAACAAAGATAAGAAAATCACTACTATCACTGATGCATCAGTTGGAACAGAATAC +GATGCGCAATCAAGAATTGGAGTTATAATTTGGTATGGAAAGAACATTTTCAATGTATAC +TCAAATAAAAGCACCAACAAGTGCGTATCCTCAACCGAAGCGGAACTTCATGCTATCTAT +GAAGGTTATGCAGACTCAGAAACCCTGAAAGCAACCTTAACAGAACTCGGAGAAGGTAAA +GATAAAGAAATTACAATGATTACGGATTCAAAACCAGCTATTGAAGGCTTAAATCGTAGT +TACCTACAACCGAAACAGAAGTTCACATGGATAAAAACCGAAATAATTAAAGAGAAGCTA +AAAGAGAAGATTATAAAACTAATAAAAATCAATGGTAAAGACAATATAGCAGATTTACTC +ACAAAACCAGTATCAATTTCTGACTTTGATAGATTTATTAAAGTATTGAATAATCAGATA +ACACCACAGGATATTTTGGCCTCAACGGACTATTGATAATTACATTACTTAATTAAGAAC +CAAACGCACAACAGATATCTGTTGGAGTACAATAATATATCTTTAAGGGGGC +>TSU4b-LTR#LTR/Copia +TGTTGGAATAAAGTGATCTTGGACATAACATTCTTATGTCAAAACAGGCGATCTCAACAT +TCCTAATATGATATTAATTATGTTGTTCTGAAACAAACATACTTAATGAAGACGAGTTTA +AAGACCTATTAATTGATCAAGAATTAGTATATAAGAAGATGATTTATACCTGAGAACCTA +TTATCAATGTTCTGAATTATACTTGAACCATTGGGTTTCATATAACCAATCAGCGTGCGT +TTTATATACCTCTCTTATATAATAAGAAAGAACTGCTTATTCTTAATTATTACTACCTAC +TAAACTTACTAATTATCAACA +>TSU4p-I#LTR/Copia +TGGCGACCCCAGTGAGGGATGACACAAGATATGTTACTGACTACAACATTTCTAACCTGG +TTCAATCAAAAGTCAAACTCCAAAAATCAAGTATTGATATTTCCGTTAAAAACAAACTAA +GGAATCAAACTCAAATCGATTTGAAAACGTATGAAAGATTCTTACACAGATTAACCACTA +AAAAGAATAAAATTACAAATGAGGCTGAAGAGGATGACGATATTTCAAATCTCGACCTTT +TAATTGAAGTAGATGAAAAAATCGAAAAAACTAATAATATAATTCTTAGGTTACAAGAAA +AGTTAGAATCGATTGAATTAGATAAAGATGCTAAGAAGTTACACGAAAGAAATGATTCCA +CTGGAACATATTACTTATTCGATACTCTTACCTTAAAAAACAGGAAATATTATCCTAAGG +ATTGGATTTTCAAGCATAAAATGAATAAAATTGGAGATATTCCTGTGTTTTTGAACAGCT +TTCAACAATTCATTGAAAAGCATGAATTCGATAATATTTTTGAACAACAAATACAAAACA +TCGATCCTCGTGAAAACGAAATCTTGTGTAAGATTATCAAAGAAGGTTTCGATGAAAGTC +CTGATATAATGAACATTAACACAGTTGACATCTTTAGAATCATTCGTGATTTAAAGAAAA +AATACACAAGCCTTTTTGGCAGAGATGTAAGACTAAAGGCTTGGGAAAAAGTGTTGGTGG +ATACAACTTGTAAGAATACTGACTTATTGATGAATGAACTTCAAAAGTTAGTATTAATGG +AAAAATGGATCCTTTCAAAATGTTGTCAAGACTGTCCAAATCTCACACACATTTTAGTAG +AAGCAATTCTTGGAACCTTACATGAATCGTTGAGAAATCCGGTTAAGCAACGTTTACACA +TCTGCTCAATTGATGAAAATGAGAGAGTCGAAGAAGTTCTAATCAATATCGTAATTGAAA +CAGTAATGGACTTGAGTACAACAGATTTGTATTATCCAGAAAGAAATTGCAAGTACTGTA +AATCGGAATTCCACAGCTCGGTAAATTGTAGAAAGAAACTAACCAGAGAACTTAGGCCTA +CCACGCCCAGTTACTCAAAAGGTTATTATTCGCAAGGTTCAACCCAAAAAGAATACACTA +AAACTGGCACAAACCCAGACAGAGCCGTTAAAAAGGCTAAAGAAGAAGAACAGAAAGGGT +TCAAACAGAAACCTAGTCATTATTGATACTGGGTCAGGCGTCAACATTACGAATAACAAG +AGATTATTACATGAGTATGAAGACAACAAAGAAAAGATAAGATTCTTTGGTATTGGAAAA +AACAATTCAGTTCCCGTTAAAGGATCAGGATACATTAAAATAAAAAGTAACACAAATGAT +GATTACTTATTAACTCATTATGTTCCTGAGGAGGAAACTACCATTATCAGTGGCTATGAG +TTAGCTAAAGAAACCGATCTTGTCTTGAACAAAAACTACTCCACGTTGGAAAACAAGGAC +ATGAACATTAAGACTCATGTAAAAGATGGGATTATTCATGTAAAAATGGACGATTTAATT +GATCATCCTGCATATGATTTTAAAATCAATGCAATACAACCTACTTCTTCTAAAAAAATT +AGACTGAAGCCAAAAATTATAAGCTTAAAAGATGCTCATAAACGAATGGGACATACAGGA +GTTCAACAAATTGAAAACTCCATTAAACATAGCCATTACGAAGAAAGTATTGACTTAATT +AAAGAACCAAATGAATTTTGGTGCGAAACTTGTAAAGTTTCAAAAACCACGAGAAGGAAC +CATTATGCTGGATCTATGAACGAACACAGTATCGGTCATGAACCTGGTTCATCGTGGTGC +ATGGATATCTTTGGTCCAGTATCGAACTCGAACTCGGATACGAAAAGATACATGTTTATT +ATGGTTGATAACAATACAAGATATTGTATCACCTCCACACATTTTAACAAAAATGCTGAA +ACTATCTTAGCACAGATCAAGAAGAATATTCAGTATGTGGAAACTCAATTTGACAGAAAA +GTCAGAAAAATCAATTCAGATCAAGGAACTGAATTCACAAATGATCAGATAGCAGAATAT +TTTGTTTCAAAAGGAATTCATCATATTTTTTCCGCTACACAAGATCATGCTGCCAATGGA +AGAGCAGAAAGACACATCAGAACCATCGTTACTGATGCAACAACCTTGTTAAAACATAGT +AACTTGCGTATTAAATTTTGGGAGTATGCAGTAACATCTGCCACCAATGTACGCAATTGT +TTAGAAAACAAAGCCACAGGTCAACTGCCGCTAAAGGCGATCTCTAGTCAACCTGTTAAA +GTGAGATTCATGTCCTTCTTACCATTCGGAGAACAAGGAATAATTTGGAATCATAATCAC +AACAAACTAAGACCTTCAGGACTTCGTGCTATTATATTATGCAAAGACCCTAATAGTCAC +GGATACAAATTTTTTGTACCATCTCTTAAAAAAATTGTCACTTCTGATAATTACACAATT +CCAGACTATGCAGTGGACCCAATATTAAGGAACACCCAGAACATATACCTAGATGATCGA +AGTAGATCAGATACCTTCAATAAGACAGAAAACTCAGATGCAGTTTCAAGGTTATATGAT +GCATTGGAAAATTACGAAGATGATCATAAACAAGTTACACTATTTACAGACTTGTTTACC +ACAGAAGAATTAGCTCAAATCGAAACTAATGCTAAATATCCGTCTCCTAGTGATAATCTA +GAAGGAAATTTAGACTACGTCTTCTCCAACACAGAAGAATCTGAAGAAGATGAATCTGAT +CATGTGACAAACATGGATGTAGATTCAGAACTTAAACCAAATGAAAAGATCACTACAGAA +AGTGAACGAAACGAATTAAATAAATCAAGTAATACTGATGAGGATTTTTACGATGAAAAA +GCTTATAGAATTCCCACGGCAATACAAGAAAACCTTGTTGGAAGCCAGAAGACTATAAAC +ATTAATAATGAGGATAATATTGCTAGCAGAATGCAAAGGAAGATTAGTGGAAATGAAATA +AACTACAATGAATTGTCGGATGACGAGAGCGATTACAGATCTCATGACCTCACAGATGAT +AATATCTCGAAATCCCAGCAAGAAATATTCAAGAAAACTATCGATTCAGAAGTACTACCT +GAACAGATAAACATTGAAAAACATGTTACATTGCAAGATTCGGATAATGATACGTCACAA +TGCGTAGAGGCTCAGCCTGAGTCAATTGTCACATCATCGAAAGAAGATGATGTTCAAAAT +GATGACTATTCTTCTGACAAAGAAAGTCATCACCTGCCCCTGGGTGTAAATGTTATGGAC +AATTCGATCCAAACATGTGTTGAACCAAACAAGGCAGAAAGCAAACACAACTCTGATACA +ATTGCCTCACCGAAAGGTAATAATGAAGAGTTAGTACAATTGGTAGGAAGTAGCGGAGCA +GAAAAACCGGATGCTACACCAGAATCATCAATGACAACAGATGAACCAATTGACCCAGGA +AACCCAGCAGTAAACAAAGCTGGATTCCTAAACAAAACGTTCAATTCTCTCAATAAGAAA +AGAAAGAGACCTGTTGAAAACAAGACTCCCTTCAATGACACAGTTGAAAGAGATTATAAA +CGTCAAAGAAAAAAAATAATCAAACTACTTCCGGATAACACAGAAACAAGTTCTGCACCG +AGAATCAAAACCATCTACTATAATGAAGCTATTTCAAGAAATGTTGATTTCAAAGAAAAA +CATGCTTATAAAGAAGCATACAGGAAGGAATTACAAAATCTCAAGGACATGAAGGTATTC +GACGTTGATGTCAAATACAACAGATCTGATGTTCCCAGTAATTTAATAATCCCGACGAAT +ACAATATTCTCAAAGAAGAGAAATGGCATTTATAAAGCAAGAATTGTTTGTAGAGGTGAT +ATCCAGACACCGGACACGTATAATGTTATTGGAACAGAATCCCTGAACCATAACCACATT +AAAATATTTCTGATGATTGCAAACAATAGGAATATGTTCATGAAAACATTGGATATTAAC +CATGCGTTCCTATATGCTAAATTAGAAGAAGACATATACATTCCACACCCACATGACAGG +AGATGCGTTGTTAAACTAGACAAAGCGTTATATGGTCTCAAGCAGAGTCCTAAAGAATGG +AACGACCATCTTAGACGATATTTAAATAGTGTTGGACTAAAAGATAACACATATACTCCA +GGACTATACCAATCCAAGGATAAAAAACTCATGATCGCAGTTTATGTTGATGACTGTGTG +ATTGCAGCAAGTGATGAACAAAGATTAGATGATTTCATAAGCAATTTAGAAAACACCTTT +GAGCTAAAAATTACTGGTACTCTAATAGATGATATATTGGATACAGACATCTTGGGGATG +GATTTGATCTATAACAAGAAACGTGGCACGGTGGATTTAACGTTAAAATCATTCATAGAA +AAAATGGGTGAGAAGTATAAAAAGGAATTGGATAAGGTTAGAAAAAGTTCAATTCCACAT +ACATCAATATACAGGATTGATCCCAAAAAGGGAGAACTAAAAATGACCGAAAAAGAATAT +AAAGACGGTGTGTTGAAATTACAACAACTACTAGGAGAACTTAATTATTTTAGGTACAAG +TGTAGATACGATGTTGAATTTGCGGTTAAGAAAGTAGCTAGATTAGTTAACTTCCCTCAT +GAACAGGTATTCTACATGATTTACAAAATCATACAATATCTAGTACAACATGCGAATATT +GGAATACACTATGATAGAGACCTTAACAAAGATAAGCAAATCACTACTATTACAGATGCA +TCAGTTGGAACAGAATACGATGCACAATCAAGAATTGGAGTTATAATTTGGTATGGAAAG +AACATTTTCAATGTATACTCAAATAAAAGCACCAACAAGTGTGTATCCTCAACCGAAGCG +GAACTTCATGCTATCTATGAAGGTTATGCAGACTCAGAAACCCTGAAAGCAACCTTAACA +GAACTTGGAGAAGGAAAAAATAAAGAACTTACAATGATTACTGATTCAAAACCAGCTATC +GAAGGCTTAAAACGGAGCTACCTACAACCCAAACAGAAGTTCACATGGATAAAAACCGAA +ATAATTAAAGAGAAACTAAAAGAGAAGACTATAAAACTAATAAAAATCAATGGTAAAGAA +AATATAGCAGATTTACTTACAAAACCAGTATCAATTTCTGACTTTGATAGATTTATTAAG +GTATTGAAGAATAAGATAACACCACAGGATATTTTGGCCTCAACGGACTATTGATAATTA +AATTACTTAATTAAGAACCGAACACACAGCAGATATCTGTTGGAGTACAATAATATATCT +TTAAGGGGGCA diff --git a/data/TY_lib.Yue_et_al_2017_NG.LTRonly.fa b/data/TY_lib.Yue_et_al_2017_NG.LTRonly.fa deleted file mode 100644 index 4fe75b5..0000000 --- a/data/TY_lib.Yue_et_al_2017_NG.LTRonly.fa +++ /dev/null @@ -1,18 +0,0 @@ ->TY1/TY2-LTR#LTR/Copia/TY1 -TGTTGGAATAAAAATCCACTATCGTCTATCAACTAATAGTTATATTATCAATATATTATCATATACGGTGTTAAGATGATGACATAAGTTATGAGAAGCTGTCATCGAAGTTAGAGGAAGCTGAAACGCAAGGATTGATAATGTAATAGGATCAATGAATATAAACATATAAAACGGAATGAGGAATAATCGTAATATTAGTATGTAGAAATATAGATTCCATTTTGAGGATTCCTATATCCTCGAGGAGAACTTCTAGTATATTCTGTATACCTAATATTATAGCCTTTATCAACAATGGAATCCCAACAATTATCTCAACATTCACATATTTCTCA ->TY1/TY2-LTR#LTR/Copia/TY1p -TGTTGGAATGAAATTCTAATATCATCTATTTAATAGTATATTATAATATGCGGTGCAAGAGGATGACATAAAGATTGAGAAACAGTCATCCAATCTAATGGAAGCTGAAATGCAAGGATTGATAATGTAATAGGATAATGAATAACAACATATAAAAAGAAAGAAGATAAAATAATAACACTATGTAGAACTATCGATTCCCTTTTGTGGATTCCTATATCCTCGAGGAGAACTTCTAGTATATTCTATATACCTAATATTATAGCCTTTAGTAACAATGGAATCCCAACAATTATCTAATTACCCACACAATTCTCA ->TY1/TY2-LTR#LTR/Copia/TY2 -TGTTGGAATAAAAATCAACTATCATCTACTAACTAGTATTTACGTTACTAGTATATTATCATATACGGTGTTAGAAGATGACGCAAATGATGAGAAATAGTCATCTAAATTAGTGGAAGCTGAAACGCAAGGATTGATAATGTAATAGGATCAATGAATATTAACATATAAAATGATGATAATAATATTTATAGAATTGTGTAGAATTGCAGATTCCCTTTTATGGATTCCTAAATCCTCGAGGAGAACTTCTAGTATATCTACATACCTAATATTATTGCCTTATTAAAAATGGAATCCCAACAATTACATCAAAATCCACATTCTCTTCA ->TY3-LTR#LTR/Gypsy/TY3 -TGTTGTATCTCAAAATGAGATATGTCAGTATGACAATACGTCACCCTGAACGTTCATAAAACACATATGAAACAACCTTATAACAAAACGAACAACATGAGACAAAACCCGACCTTCCCTAGCTGAACTACCCAAAGTATAAATGCCTGAACAATTAGTTTAGATCCGAGATTCCGCGCTTCCACCACTTAGTATGATTCATATTTTATATAATATATAAGATAAGTAACATTCCGTGAATTAATCTGATAAACTGTTTTGACAACTGGTTACTTCCCTAAGACTGTTTATATTAGGATTGTCAAGACACTCCGGTATTACTCGAGCCCGTAATACAACA ->TY3-LTR#LTR/Gypsy/TY3p -TGTTGTATCTCAAGATGAGATACCTCAGCATTACTAGATTTACCAACCTAGACATAAAACATGTATGAAACACGTACGAAACAATAGACAAGATTGAGTATACTAGGCAACCTACTTGCCTAAGATGAACCAAACTAACCAAACGTATAAATACCTGAACAATTAGTTTAGATCCGAGATTCCGCGCTTCCACCCTTTAGTTAGATTCAGATCTTATATAGATTATATAGGATAAGTAACATTCTGTGAATCACGATAATAATAAGTCTGACAACAAGTTACTCTCCTAAACGACTTTAGGATTGTCAAGACATCCGGTATTACTCGAGCCCGTAATACAACA ->TY4-LTR#LTR/Copia/TY4 -TGTTGGAACGAGAGTAATTAATAGTGACATGAGTTGCTATGGTAACAATCTAATGCTTACATCGTATATTAATGTACAACTCGTATACGTTTAAGTGTGATTGCGCCTATTGCAGAAGGAATGTTAAACGAGAAGCTCAGACAATACTGAAGCTGTGTTAAAGACCTATTAGTTGAACATGTTATGGTAGGTACATATATGAGGAATATGAGTCGTCACATCAATGTATAGTAACTACCGGAATCACTATTATATTGGTCATAATTAATATGACCAATCGGCGTGTGTTTTATATACCTCTCTTATTTAGTATAAGAAGATCAGTACTCACTTCTTCATTAATACTAATTTTTAACCTCTAATTATCAACA ->TY4-LTR#LTR/Copia/TY4p -TGTTGGAACGAGAGTAATTAATAGTGACATGAGTTGCTATAGTAACAATCTAATGCTTACATCGTATATTAATGTACACCTCGTATACGTTTAAGTGTGATTGCACCTATTGCAGAAGGAATGTTAAACGAGAAGCTCAGACAATACTGAAGCTGAGTTAAAAATCTATTAGTTGAACATGATATGGTAGGTACATATATGAGGAATATGAGTCGTCACATCAATGTATAGTAACTACCGGAATCACTATTATATTGGTCATAATTAATATGACCAATCGGCGTGTGTTTTATATACCTCTCTTATTTAGTATAAGAAGATCAGTACTTATTTCTTCATTAGTACTATATTTTAACCTCTAATTATCAACA ->TY5-LTR#LTR/Copia/TY5 -TGTTGAATGTGATAACCCAAAAGCATGATATGGGTAATGTTTCAGTACTGTTTCAGAATTGTTTCAGTAATGTTTTAGACAAGGAAAACATAGAGCAGCAAACCTCCGATCCGACAGTACTTAAGAAACCATAGTTTCTGTGTACAAGAGTAGTACCTATGTAATTCTTACATTTACATAACATATAGAAAGGTCCAATAAACTTACAACATTATGACATATAAGCTAGATCGTAATTCACTACGTCAACA ->TY5-LTR#LTR/Copia/TY5p -TGTTGAATGTGATAACCCAAAAGCATGATATGGGTAATGTTTCAGTACTGTTTCAGAATTGTTTCAGTAATGTTTTAGACAAGGAAAACATAGAGCAGCAAACCTCCGATCCGACAGTACTTAAGAAACCATAGTTTCTGTGTACAAGAGTAGTACCTATGTAATTCTTACATTTTACATAACATATAGAAAGGTCCAATAAACTTACAACATTATGACATATAAGCTAGATCGTAATTCACTACGTCAACA diff --git a/data/TY_lib.Yue_et_al_2017_NG.fa b/data/TY_lib.Yue_et_al_2017_NG.fa deleted file mode 100644 index cb04beb..0000000 --- a/data/TY_lib.Yue_et_al_2017_NG.fa +++ /dev/null @@ -1,36 +0,0 @@ ->TY1-I#LTR/Copia -TGGTAGCGCCTGTGCTTCGGTTACTTCTAAGGAAGTCCACACAAATCAAGATCCGTTAGACGTTTCAGCTTCCAAAACAGAAGAATGTGAGAAGGCTTCCACTAAGGCTAACTCTCAACAGACAACAACACCTGCTTCATCAGCTGTTCCAGAGAACCCCCATCATGCCTCTCCTCAAACTGCTCAGTCACATTCACCACAGAATGGGCCGTACCCACAGCAGTGCATGATGACCCAAAACCAAGCCAATCCATCTGGTTGGTCATTTTACGGACACCCATCTATGATTCCGTATACACCTTATCAAATGTCGCCTATGTACTTTCCACCTGGGCCACAATCACAGTTTCCGCAGTATCCATCATCAGTTGGAACGCCTCTGAGCACTCCATCACCTGAGTCAGGTAATACATTTACTGATTCATCCTCAGCGGACTCTGATATGACATCCACTAAAAAATATGTCAGACCACCACCAATGTTAACCTCACCTAATGACTTTCCAAATTGGGTTAAAACATACATCAAATTTTTACAAAACTCGAATCTCGGTGGTATTATTCCGACAGTAAACGGAAAACCCGTACGTCAGATCACTGATGATGAACTCACCTTCTTGTATAACACTTTTCAAATATTTGCTCCCTCTCAATTCCTACCTACCTGGGTCAAAGACATCCTATCCGTTGATTATACGGATATCATGAAAATTCTTTCCAAAAGTATTGAAAAAATGCAATCTGATACCCAAGAGGCAAACGACATTGTGACCCTGGCAAATTTGCAATATAATGGCAGTACACCTGCAGATGCATTTGAAACAAAAGTCACAAACATTATCGACAGACTGAACAATAATGGCATTCATATCAATAACAAGGTCGCATGCCAATTAATTATGAGAGGTCTATCTGGCGAATATAAATTTTTACGCTACACACGTCATCGACATCTAAATATGACAGTCGCTGAACTGTTCTTAGATATCCATGCTATTTATGAAGAACAACAGGGATCGAGAAACAGCAAACCTAATTACAGGAGAAATCTGAGTGATGAGAAGAATGATTCTCGCAGCTATACGAATACAACCAAACCCAAAGTTATAGCTCGGAATCCTCAAAAAACAAATAATTCGAAATCGAAAACAGCCAGGGCTCACAATGTATCCACATCTAATAACTCTCCCAGCACGGACAACGATTCCATCAGTAAATCAACTACTGAACCGATTCAATTGAACAATAAGCACGACCTTCACCTAGGCCAGGAACTTACTGAATCTACGGTAAATCACACTAATCATTCTGATGATGAACTCCCTGGACACCTCCTTCTCGATTCAGGAGCATCACGAACCCTTATAAGATCTGCTCATCACATACACTCAGCATCATCTAATCCTGACATAAACGTAGTTGATGCTCAAAAAAGAAATATACCAATTAACGCTATTGGTGACCTACAATTTCACTTCCAGGACAACACCAAAACATCAATAAAGGTATTGCACACTCCTAACATAGCCTATGACTTACTCAGTTTGAATGAATTGGCTGCAGTAGATATCACAGCATGCTTTACCAAAAACGTCTTAGAACGATCTGACGGCACTGTACTTGCACCTATCGTACAATATGGAGACTTTTACTGGGTATCTAAAAGGTACTTGCTTCCATCAAATATCTCCGTACCCACCATCAATAATGTCCATACAAGTGAAAGTACACGCAAATATCCTTATCCTTTCATTCATCGAATGCTTGCGCATGCCAATGCACAGACAATTCGATACTCACTTAAAAATAACACCATCACGTATTTTAACGAATCAGATGTCGACTGGTCTAGTGCTATTGACTATCAATGTCCTGATTGTTTAATCGGCAAAAGCACCAAACACAGACATATCAAAGGTTCACGACTAAAATACCAAAATTCATACGAACCCTTTCAATACCTACATACTGACATATTTGGTCCAGTTCACAACCTACCAAAAAGTGCACCATCCTATTTCATCTCATTTACTGATGAGACAACAAAATTCCGTTGGGTTTATCCATTGCACGACCGTCGCGAGGACTCTATCCTCGATGTATTTACCACGATACTAGCTTTCATTAAAAACCAATTTCAGGCCAGTGTCTTGGTTATACAAATGGACCGTGGTTCTGAGTATACTAACAGAACTCTCCATAAATTCCTTGAAAAAAATGGTATAACTCCATGCTATACAACCACAGCGGATTCCCGAGCACATGGAGTCGCTGAACGGCTAAACCGTACCTTATTAGATGACTGCCGTACTCAACTGCAATGTAGTGGTTTACCGAACCATTTATGGTTCTCTGCAATCGAATTTTCTACTATTGTGAGAAATTCACTAGCTTCACCTAAAAGCAAAAAATCTGCAAGACAACATGCTGGCTTGGCAGGACTTGATATCAGTACTTTGTTACCTTTCGGTCAACCTGTTATCGTCAATGATCACAACCCTAACTCCAAAATACATCCTCGTGGCATCCCAGGCTACGCTCTACATCCGTCTCGAAACTCTTATGGATATATCATCTATCTTCCATCCTTAAAGAAGACAGTAGATACAACTAACTATGTTATTCTTCAGGGCAAGGAATCCAGATTAGATCAATTCAATTACGACGCACTCACTTTCGATGAAGACTTAAACCGTTTAACTGCTTCATATCATTCGTTCATTGCGTCAAATGAGATCCAAGAATCCAATGATCTTAACATAGAATCTGACCATGACTTCCAATCCGACATTGAACTACATCCTGAGCAACCGAGAAATGTCCTTTCAAAAGCTGTGAGTCCAACCGATTCCACACCTCCGTCAACTCATACTGAAGATTCGAAACGTGTTTCTAAAACCAATATTCGCGCACCCAGAGAAGTTGACCCCAACATATCTGAATCTAATATTCTTCCATCAAAGAAGAGATCTAGCACCCCCCAAATTTCCAATATCGAGAGTACCGGTTCGGGTGGTATGCATAAATTAAATGTTCCTTTACTTGCTCCCATGTCCCAATCTAACACACATGAGTCGTCGCACGCCAGTAAATCTAAAGATTTCAGACACTCAGACTCGTACAGTGAAAATGAGACTAATCATACAAACGTACCAATATCCAGTACGGGTGGTACCAACAACAAAACTGTTCCGCAGATAAGTGACCAAGAGACTGAGAAAAGGATTATACACCGTTCACCTTCAATCGATGCTTCTCCACCGGAAAATAATTCATCGCACAATATTGTTCCTATCAAAACGCCAACTACTGTTTCTGAACAGAATACCGAGGAATCTATCATCGCTGATCTCCCACTCCCTGATCTACCTCCAGAATCTCCTACCGAATTCCCTGACCCATTTAAAGAACTCCCACCGATCAATTCTCGTCAAACTAATTCCAGTTTGGGTGGTATTGGTGACTCTAATGCCTATACTACTATCAACAGTAAGAAAAGATCATTAGAAGATAATGAAACTGAAATTAAGGTATCACGAGACACATGGAATACTAAGAATATGCGTAGTTTAGAACCTCCGAGATCGAAGAAACGAATTCACCTGATTGCAGCTGTAAAAGCAGTAAAATCAATCAAACCAATACGGACAACCTTACGATACGATGAGGCAATCACCTATAATAAAGATATTAAAGAAAAAGAAAAATATATCGAGGCATACCACAAAGAAGTCAATCAACTGTTGAAGATGAAAACTTGGGACACTGACGAATATTATGACAGAAAAGAAATAGACCCTAAAAGAGTAATAAACTCAATGTTTATCTTCAACAAGAAACGTGACGGTACTCATAAAGCTAGATTTGTTGCAAGAGGTGATATTCAGCATCCTGACACTTACGACTCAGGCATGCAATCCAATACCGTACATCACTATGCATTAATGACATCCCTGTCACTTGCATTAGACAATAACTACTATATTACACAATTAGACATATCTTCGGCATATTTGTATGCAGACATCAAAGAAGAATTATACATAAGACCTCCACCACATTTAGGAATGAATGATAAGTTGATACGTTTGAAGAAATCACTTTATGGATTGAAACAAAGTGGAGCGAACTGGTACGAAACTATCAAATCATACCTGATACAACAATGTGGTATGGAAGAAGTTCGTGGATGGTCATGCGTATTTAAAAACAGTCAAGTGACAATTTGTTTATTCGTAGATGATATGGTATTGTTTAGCAAAAATCTAAATTCAAACAAAAGAATTATAGACAAGCTTAAGATGCAATACGACACCAAGATTATAAATCTAGGCGAAAGTGATGAGGAAATTCAATATGACATTCTTGGCTTGGAAATCAAATACCAAAGAGGTAAATACATGAAATTGGGTATGGAAAACTCATTAACTGAAAAAATACCCAAACTAAACGTACCTTTGAACCCAAAAGGAAGGAAACTTAGCGCTCCAGGTCAACCAGGTCTATATATAGACCAGCAAGAACTAGAGCTAGAAGAAGATGATTACAAAATGAAGGTACATGAAATGCAAAAGCTGATAGGTCTAGCATCATATGTTGGATATAAATTTAGATTTGACCTATTATACTACATCAACACACTTGCACAACATATACTATTTCCGTCCAAGCAAGTGTTAGATATGACATATGAATTGATACAGTTCATATGGAATACGAGAGATAAGCAATTAATATGGCACAAAAGCAAACCTGTTAAGCCAACAAATAAATTAGTTGTTATAAGCGATGCCTCGTATGGCAACCAACCGTATTATAAATCACAAATTGGCAACATATATTTACTTAATGGAAAGGTAATTGGAGGAAAGTCCACCAAGGCTTCATTAACATGTACTTCAACTACGGAAGCAGAAATACACGCGATAAGTGAATCTGTCCCATTATTAAATAATCTAAGTTACCTGATACAAGAACTTGACAAGAAACCAATTACCAAAGGATTACTAACCGACAGTAAATCTACAATCAGTATAATTATATCCAATAATGAAGAGAAATTTAGGAACAGATTTTTTGGTACTAAAGCAATGAGATTGAGAGATGAAGTATCAGGAAATCATCTGCACGTATGCTATATCGAAACCAAAAAGAATATTGCAGACGTAATGACCAAACCTCTTCCGATAAAAACATTCAAACTATTAACAAACAAATGGATTCATTAGATCTATTACATTATGGGTGGTA ->TY1-LTR#LTR/Copia -TGTTGGAATAAAAATCCACTATCGTCTATCAACTAATAGTTATATTATCAATATATTATCATATACGGTGTTAAGATGATGACATAAGTTATGAGAAGCTGTCATCGAAGTTAGAGGAAGCTGAAACGCAAGGATTGATAATGTAATAGGATCAATGAATATAAACATATAAAACGGAATGAGGAATAATCGTAATATTAGTATGTAGAAATATAGATTCCATTTTGAGGATTCCTATATCCTCGAGGAGAACTTCTAGTATATTCTGTATACCTAATATTATAGCCTTTATCAACAATGGAATCCCAACAATTATCTCAACATTCACATATTTCTCA ->TY1p-I#LTR/Copia -TGGTAGCGCCTGTGCTTCGGTTACTTCTAAGGAAGTCCACACAAATCAAGATCCGTTAGACGTTTCAGCTTCCAAAATTCAAGAATATGATAAGGCTTCCACTAAGGCTAACTCTCAACAGACAACAACACCTGCTTCATCAGCTGTTCCAGAGAACCCCCATCATGCCTCTCCTCAAACTGCTCAGTCACATTCACCACAGAATGGGCCGTACCCACAGCAGTGCATGATGACCCAAAACCAAGCCAATCCATCTGGTTGGTCATTTTACGGACACCCATCTATGATTCCGTATACACCTTATCAAATGTCGCCTATGTACTTTCCACCTGGGCCACAATCACAGTTTCCGCAGTATCCACCATCAGTTGGAACGCCTCTGAGCACCCCATCACCTGAGTCAGGTAATACATTTACTGATTCATCCTCAGCGGACTCTGATATGACATCCACTAAAAAATATGTCAGACCACCACCAATGTTAACCTCACCTAATGACTTTCTAAATTGGGTTAAAACATACATCAAATTTTTACAAAACTCGAATCTCGGTGATATTATTCCGACAGTATACGGAAAACCCGTACGTCAGATCACTGATGATGAACTCACCTTCTTGTATAACACTTTTCAAATATTTGCTCCCTCTCAATTCCTACCTACCTGGGTCAAAGACATCCTATCTGTTGATTATACGGATATCATGAAAATTCTTTCCAAAAGTATTGAAAAAACGCAATCTGATACCCAAGAGGCAAATGACATTGTGACCCTGGCAAATTTGCAATATAATGGCAGTACACCTGCAGATGCATTTGAAACAAAAGTCACAAACATTATCGACAGACTAAATAATAATGGCATTCATATCAATAACAAGGTCGCATGCCAATTAATTATGAGAGGTCTATCTGGCGAATATAAATTTTTACGCTACACACGTCATCGACATCTAAATATGACAGTCGCTGAACTGTTCTTAGATATCCATGCTATTTATGAAGAACAACAGGGATCGAGAAACAGTAAACCCAATTACAGGAGAAATCCGAGTGATGAGAAGAATGATTCTCGCAGCTATACGAATACAACCAAACCCAAAGTTATAGCTCGGAATCCTCAAAAAACAAATAATTCGAAATCGAAAACAGCCAGGGCTCATAATGTATCCACATCTAATAACTCTCCCAGCACTGACAACGATTCCATCAGTAAATCAACTACTGAACCGATTCAATTGAACAATAAGCACGACCTTCATCTTAGGCCAGAAACTTACTGAATCTACAGTAAATCATACGAATCATTCCGATGATGAACTTCCTGGACACCTTCTTCTTGATTCAGGAGCATCACGAACTCTTATAAGATCTGCCCATCACATACACTCAGCGATATCTAATCCCGACATAAGCGTAGTTGATGTTCAAAAAAACAATATACCAATTAACGCTGTTGGTGATCTTCAATTTCACTTCCAGGACGACACCAAAACAACAATAAAGGTATTGCACACACCTAACATAGCCTATGACTTACTCAGTTTGAATGAACTGGCTGCACTAAATATTACAGCGTGCTTTACCAAAAACGTCTTAGAACGACCTGACGGCACCGTACTTGCACCTATCGTAAAACATGGAGACTTTTACTGGGTGTCTAAAAGGTACTTGCTTCCGTCGAATATCTCAGTACCCACAATTAATAACGTTCACACAAGTGAAAACACACGTAAGTATCCTTATCCTTTCATTCATCGGATGCTTGCGCATGCCAATGCCCAGACAATTAGATATTCACTTAAAAAGAACACTATTACGTATTTCAATGAATCAGATGTTGACTGGTCTAACGCTACTGATTATCAATGTCCCGATTGTTTAATCGGCAAAAGCACCAAACATAGACATATCATAGGATCACGGCTAAAATACCAAAGTTCATATGAACCTTTTCAATACTTACATACTGACATATTTGGGCCTGTTCACAACCTACCAAAGAGTGCACCATCCTATTTCATCTCATTCACTGATGAGAAAACAAAATTCCGTTGGGTTTATCCATTACACGACCGTCGCGAGGACTCTATTCTCGATATCTTTACTAAGATACTAGCTTTCATTAAAAACCAGTTTCAGTCCAATGTTTTGGTTATTCAAATGGACCGTGGTTCTGAGTACACTAACAAAACTCTCCATAAATTCCTTGAAAAATATGGCATAACCCCATGTTATACAACCACAGCGGATTCCCGAGCACATGGTGTCGCTGAACGGCTGAACCGTACCTTATTAGATGACTGTCGTACTCAACTGCAATGTAGTGGTCTACCGAATCATCTATGGTTCTCGGCAGTCGAATTTTCTACTATCGTACGGAACTCACTAGCTTCACCTAAAAGCAAAAAATCCGCAAGACAACTCGCTGGGTTGGCAGGACTCGACATCAGTACTTTATTACCTTTCGGTCAACCCGTTATAGTCAATAATCATAACCCTGACTCCAAAATTCATCCTCGTGGCATTCCTGGCTACGCTCTACATCCATCTCGAAACTCTTATGGATATATCATCTATGTCCCGTCTTTGAAGAAGACAGTAGATACAACTAATTACGTTATTCTTCAGGGCAAGGAATCCAGATTAGACCAATTCAATTACGACGCACTCACCTTCGATGAAGACGTGAATCGTATAACTGCTTCATATCAATCGTTCATTGCTTCAAATGAGATCCAACAATCTAACGATCTTAACATAGAATCTGACCATGATTTTCAATCTGACGTAGAACTGAACCCTGACCACCAGAGAAATGTCCCTTCAAACGTTCCGATTCCAACTGACTCTCCACCTCCATCAACTCATACTGAAGATTCAAAACCTATATCTGAAATCAATCTTCGTGCACCCAAAGAAGTTGATCCTAACATATCTGAATCTAATATTCTTCCATCTAAGAAGAGATCTAACATCCCCCAAATTTCTGCTACCGACAGTGCCGGTTCGGGTGGTATAAATAAATCAGATGTTCCTTTACTTACTCCTTTGTCCAAATCTGACACACAAAATTCATACCAAGCCAGTGAATCTGATGATTTCAGTGACTCAGACTCACACAGCGACATCGATACTGACTCTACAAACGTGACAATACCCAGTTTGGGTGGTATCAACAACAAAACTGTTCCGCAGACAAGTGACCAAGAGACTGAGAAAAGGATTATACATCGTTCACCTTCAATCGATGCTTCTCCACCGGAAAATAATTCATCGCACAATATTGTTCCTATCAAAACGCCAACTAATGTTTCTGAACAGAATACCGAGGAATCTATTATCGCTGATCTCCCACTCCCTGATCTATCTCCAGAATCTCCTACCGAATTCCCTGACCCATTTAAAGAACTCCCACCGATAAATTCTCATCAAACTAATTCCAGTTTGGGTGGTATGGATGACTCTAATATCTCTGCTACTATCACTAGTAAGAAAAGATCATTAGAAGATAATGAAACTGAAATTGAGGTATCACGAGACACATGGAATAGTAAGAATATGCGTAGCTTAGAACCTCCAAGGTCAAAGAAACGAATACATCTAATCGCGGCTGTAAAAGCAGTAAAATCAATCAAACCAATACGAACAACCTTAAGATACGATGAGGCAATCACCTATAATAAAGATATTAAAGAAAAGGAAAAATATATCGAAGCATACCACAAAGAAGTCAACCAACTGTTGAAAATGAATACTTGGGACACTGACAAATATTATGACAGAAAAGAAATAGACCCTAAAAGAGTAATAAACTCAATGTTTATCTTCAACAAGAAACGTGACGGAACTCATAAAGCTAGATTTGTTGCAAGAGGTGACATTCAGCATCCTGATACGTACGATACAGGTATGCAATCCAACACTGTACATCATTATGCGTTGATGACATCCCTATCACTTGCATTAGACGATGACTCCTTCATTACACAATTAGACATATCTTCGGCGTACTTGTATGCAGACATCAAAGAAGAATTATACATAAGACCTCCACCACATTTAGGAATGAACAACAAGTTAATACGGTTGAGGAAATCACTTTATGGTTTGAAACAAAGTGGTGCAAACTGGTATGAAACGATCAAATCATATCTGATTGAACAATGTGATATGGAAGAAGTTCGCGGATGGTCATGCGTATTTAAGAACAATCAAGTAACAATCTGCTTATTCGTTGATGATATGATATTGTTCAGCAAAGACTTAAATTCAAATAAAAGAATTATAGCAAAACTCAAGATGCAATACGATACCAAGATTATAAATCTAGGTGAAAGCGATGATGAAATTCAATACGACATCCTTGGCTTAGAAATCAAATATCAAAGAGGTAAATACATGAAATTAGGTATGGAAAACTCACTAACTGAGAAAATACCCAAATTAAACGTACCTTTGAATCCAAAAGGAAGAAAACTTGGTGCTCCAGGTCAACCAGGTCTCTATATAAACCAGAAGGAGCTAGAGCTAGAAGAAGACGACTACAACATGAAGGTGCATGAAATGCAAAAGTTGATAGGTCTAGCGTCATATGTTGGATATAAATTCAGATTTGACCTATTATACTATATCAACACACTTGCACAACATATACTATTTCCGTCCAAACAAGTGTTAAACATGACATATGAATTGATACAATTCTTATGGGACACTAGAGACAAACAATTAATATGGCACAAAAGCAAATCTGCAAAACCAGAAAATAAATTAGTTGTAATAAGCGATGCCTCTTATGGCAACCAACCATATTACAAATCTCAGATTGGTAATATCTATTTACTAAATGGAAAGGTGATCGGAGGAAAATCAACAAAAGCTTCATTAACATGTACTTCAACCACAGAAGCAGAAATACACGCAATCAGTGAAGCCATTCCATTATTAAATAACTTGAGTCACCTTATACAAGAACTAAATGGGAAATCAATCATTAAAGGCTTACTTACTGACAGCAGATCTACAATCAGTATAGTTATGTCCAAAAATGAAGAGAAACTTAGAAACAGATTTTTCGGTACCAAAGCAATGAGACTTCGGGACGAAGTATCAAATAATAACCTCCACGTATGCTACGTGGATACCAAAAGGAACATTGCTGACGTGATGACAAAACCCCTCCCAATAAAAACATTTAAACTATTAACAAACAAGTGGATTCATTAGATCTATTACATTATGGGTGGTA ->TY1p-LTR#LTR/Copia -TGTTGGAATGAAATTCTAATATCATCTATTTAATAGTATATTATAATATGCGGTGCAAGAGGATGACATAAAGATTGAGAAACAGTCATCCAATCTAATGGAAGCTGAAATGCAAGGATTGATAATGTAATAGGATAATGAATAACAACATATAAAAAGAAAGAAGATAAAATAATAACACTATGTAGAACTATCGATTCCCTTTTGTGGATTCCTATATCCTCGAGGAGAACTTCTAGTATATTCTATATACCTAATATTATAGCCTTTAGTAACAATGGAATCCCAACAATTATCTAATTACCCACACAATTCTCA ->TY2-I#LTR/Copia -TGGTAGCGCCTATGCTTCGGTTACTTCTAAGGAAGTCCCATCAAATCAAGATCCGTTAGCCGTTTCAGCTTCCAATTTACCGGAATTTGATAGAGATTCCACTAAGGTTAATTCTCAACAAGAGACAACACCTGGGACATCAGCTGTTCCAGAGAACCATCATCATGTCTCTCCTCAACCTGCTTCAGTACCACCTCCACAGAATGGACAGTACCAACAGCACGGCATGATGACCCCAAACAAAGCTATGGCCTCTAACTGGGCACATTACCAACAACCATCTATGATGACGTGTTCACATTATCAAACGTCACCTGCGTATTATCAACCGGACCCACACTATCCGTTGCCACAGTATATCCCACCACTGAGTACTTCCTCACCTGATCCAATCGATTTAAAAAATCAACACTCTGAAATACCTCAAGCTAAGACAAAGGTGGGAAATAACGTCTTACCACCACACACTTTAACATCAGAAGAAAACTTTTCTACATGGGTTAAATTTTACATCAGATTTTTGAAGAACTCTAATCTCGGTGACATCATTCCAAATGACCAGGGTGAAATCAAAAGACAAATGACTTATGAAGAACATGCGTATATATACAATACCTTCCAAGCATTTGCCCCATTTCATTTATTGCCAACATGGGTAAAACAAATTTTAGAAATTAATTATGCTGACATCCTTACAGTCCTTTGTAAAAGTGTGTCCAAAATGCAAACTAACAATCAAGAATTAAAGGATTGGATAGCTCTTGCCAACCTTGAGTACGACGGAAGTACATCTGCTGATACATTTGAAATTACAGTCAGTACGATCATTCAGAGGCTAAAAGAAAACAATATCAATGTTAGCGACAGATTGGCCTGTCAACTAATACTTAAAGGTCTATCCGGTGACTTCAAATACCTACGTAATCAATATCGTACCAAAACGAACATGAAACTTTCCCAATTATTCGCTGAAATTCAATTAATATATGACGAAAATAAAATCATGAATCTAAATAAACCGTCCCAATACAAACAACACAGCGAATACAAAAATGTTTCTCGCACATCTCCAAACACGACTAACACAAAGGTTACAACTCGTAATTATCATAGAACAAATAGTTCAAAACCAAGAGCAGCAAAAGCTCACAATATTGCTACATCTAGTAAATTCTCAAGGGTGAACAATGATCACATTAATGAATCAACCGTTTCATCACAATACTTAAGCGATGACAACGAACTTAGTCTTAGGCCAGCAACAGAAAGAATCTAAGCCAACACACACAATAGACTCGAATGACGAACTACCTGATCACCTTCTTATTGATTCAGGAGCTTCGCAAACGCTTGTCAGATCAGCCCATTATTTACACCATGCAACACCCAATTCTGAAATAAACATAGTCGATGCTCAAAAACAAGACATTCCTATAAATGCCATTGGTAATCTTCACTTCAACTTTCAGAACGGCACCAAAACATCAATAAAAGCACTACACACACCAAACATAGCCTATGATCTATTAAGTTTGAGTGAGCTGGCTAACCAAAATATTACTGCCTGCTTTACCAGAAACACTTTAGAAAGATCGGATGGTACAGTACTAGCTCCCATAGTCAAACATGGAGACTTTTACTGGTTATCTAAAAAATACCTAATTCCTTCGCACATTTCAAAGCTAACAATAAACAACGTCAACAAAAGCAAAAGCGTAAATAAATATCCATATCCGTTAATACATCGAATGCTTGGACATGCTAACTTCCGAAGTATTCAGAAGTCTCTTAAGAAGAATGCAGTTACATATTTGAAGGAATCGGATATTGAATGGTCTAACGCTAGCACATATCAATGTCCTGACTGTCTAATCGGCAAAAGCACGAAACATAGACATGTCAAAGGATCACGACTAAAGTACCAAGAATCATATGAGCCTTTTCAGTACTTGCATACCGATATATTTGGTCCTGTACATCACTTACCGAAAAGTGCACCTTCTTACTTTATATCGTTTACAGATGAGAAAACCAGATTCCAATGGGTGTACCCATTACACGACCGTCGTGAAGAATCTATCCTCAATGTTTTTACATCGATATTAGCATTTATTAAGAACCAATTCAATGCTCGCGTTCTAGTTATCCAGATGGATCGTGGCTCCGAGTACACTAACAAAACTCTTCATAAGTTCTTTACGAACAGAGGTATTACTGCATGCTATACAACCACGGCAGATTCTAGAGCACACGGTGTCGCTGAACGATTAAATCGTACTTTATTAAACGATTGTCGCACACTGCTTCATTGCAGTGGTCTACCAAATCATCTATGGTTCTCAGCAGTCGAATTTTCTACTATAATCAGAAATTCATTAGTCTCACCAAAAAACGATAAATCTGCAAGACAACATGCAGGTTTAGCTGGACTGGACATTACTACTATACTACCTTTCGGTCAACCGGTTATAGTTAACAACCATAATCCCGACTCGAAAATACATCCTCGTGGCATTCCAGGTTACGCCTTACATCCGTCACGAAACTCTTATGGCTATATTATCTATCTTCCATCATTAAAAAAGACAGTAGATACTACCAATTACGTTATATTACAAGACAACCAATCCAAATTGGACCAATTCAATTATGATACACTCACCTTTGATGATGATCTCAATCGTTTAACAGCCCATAACCAATCTTTTATTGAACAAAATGAAACAGAGCAGTCATATGATCAAAATACAGAATCTGATCATGACTATCAATCGGAGATTGAAATAAACTCTGATCCTCTAGTGAACGACTTCTCGTCCCAATCAATGAACCCCTTACAATTAGACCACGAACCAGTCCAAAAAGTACGTGCACCAAAAGAAGTTGATGCCGACATATCTGAATACAATATTCTTCCATCTCCTGTACGATCTCGTACACCCCATATCATTAATAAAGAGAGTACCGAAATGGGTGGTACCATTGAATCAGATACTACTTCACCTAGACACTCGTCTACCTTCACTGCACGAAACCAAAAGCGACCTGGTAGTCCCAATGATATGATTGATTTGACCTCACAGGATAGAGTTAATTATGGACTTGAAAACATCAAAACTACACGTTTGGGTGGTACGGAGGAACCATATATTCAACGAAATAGTGATACAAATATCAAATACAGGACTACAAATAGTACGCCCTCAATAGATGACCGTTCGTCCAACAGTGAATCCACTACTCCCATCATCTCCATAGAAACAAAGGCTGTATGTGATAATACACCCTCCATTGATACGGATCCGCCAGAATATCGATCTTCTGACCATGCGACTCCTAATATAATGCCTGACAAATCCTCAAAAAATGTTACGGCTGATTCTATTCTTGACGACCTCCCACTTCCTGACTTAACCCATAAATCTCCTACGGACACTTCTGATGTTTCAAAAGATATTCCACACATACACTCTCGTCAGACTAATTCCAGTTTGGGTGGTATGGATGATTCTAATGTTCTGACTACTACCAAAAGTAAGAAAAGATCATTAGAAGATAATGAAACTGAAATTGAGGTATCCCGAGACACATGGAATAATAAGAATATGAGAAGTCTGGAACCACCAAGATCGAAGAAACGCATAAATTTAATTGCAGCAATAAAAGGAGTGAAATCGATCAAACCAGTTCGAACGACCTTAAGATATGATGAAGCAATTACATATAATAAAGACAACAAAGAAAAAGACAGATATGTTGAAGCTTATCATAAAGAAATTAGCCAACTATTGAAAATGAACACTTGGGATACAAACAAATATTATGATAGAAATGACATAGATCCTAAAAAAGTAATAAACTCAATGTTTATATTTAACAAGAAACGTGATGGTACACACAAAGCTAGATTTGTTGCAAGAGGCGACATTCAACACCCCGATACATATGATTCTGATATGCAATCCAATACCGTACATCACTATGCACTGATGACGTCACTGTCAATCGCATTAGACAACGACTATTATATCACACAGCTGGACATATCCTCTGCTTACTTATATGCTGATATCAAAGAAGAATTATACATAAGACCTCCACCACATTTAGGTTTGAATGATAAATTACTACGTTTGAGAAAATCACTCTATGGTTTGAAACAAAGTGGTGCAAACTGGTATGAAACCATTAAATCATATTTAATAAATTGTTGCGACATGCAAGAAGTTCGCGGATGGTCATGCGTATTTAAGAATAGTCAAGTAACAATTTGCTTATTCGTTGATGATATGATATTATTCAGCAAAGACTTAAATGCAAATAAGAAAATCATAACAACACTCAAGAAACAATACGATACAAAGATAATAAATCTGGGTGAAAGAGATAACGAAATTCAGTACGACATACTTGGATTAGAGATCAAATATCAAAGAAGCAAGTACATGAAATTAGGTATGGAAAAATCCTTGACAGAAAAATTACCCAAACTAAACGTACCTTTGAACCCAAAAGGAAAGAAACTTAGAGCTCCAGGTCAACCAGGTCATTATATAGACCAGGATGAACTAGAAATAGATGAAGATGAATACAAAGAGAAGGTACATGAAATGCAAAAGTTGATTGGTCTAGCTTCATATGTTGGATATAAATTTAGATTTGACTTACTATACTACATCAACACACTTGCTCAACATATACTATTCCCCTCTAGACAAGTTTTAGACATGACATATGAGTTAATACAATTCATGTGGGACACTAGAGATAAACAATTAATATGGCACAAAAACAAACCTACCAAGCCAGATAATAAACTAGTCGCAATAAGCGATGCTTCATATGGTAACCAACCATATTACAAGTCACAAATTGGTAACATTTTCCTACTCAACGGAAAAGTGATTGGAGGAAAGTCGACAAAGGCTTCGTTAACATGCACTTCAACTACAGAAGCAGAAATACACGCAGTCAGTGAAGCTATACCGCTATTGAATAACCTCAGTCACCTTGTGCAAGAACTTAACAAGAAACCAATTATTAAAGGCTTACTTACTGATAGTAGATCAACGATCAGTATAATTAAGTCTACAAATGAAGAGAAATTTAGAAACAGATTTTTTGGCACAAAGGCAATGAGACTTAGAGATGAAGTATCAGGTAATAATTTATACGTATACTACATCGAGACCAAGAAGAACATTGCTGATGTGATGACAAAACCTCTTCCGATAAAAACATTTAAACTATTAACAAACAAATGGATTCATTAGATCTATTACATTATGGGTGGTA ->TY2-LTR#LTR/Copia -TGTTGGAATAAAAATCAACTATCATCTACTAACTAGTATTTACGTTACTAGTATATTATCATATACGGTGTTAGAAGATGACGCAAATGATGAGAAATAGTCATCTAAATTAGTGGAAGCTGAAACGCAAGGATTGATAATGTAATAGGATCAATGAATATTAACATATAAAATGATGATAATAATATTTATAGAATTGTGTAGAATTGCAGATTCCCTTTTATGGATTCCTAAATCCTCGAGGAGAACTTCTAGTATATCTACATACCTAATATTATTGCCTTATTAAAAATGGAATCCCAACAATTACATCAAAATCCACATTCTCTTCA ->TY3-I#LTR/Gypsy -CCTGGTAGCGTTAAAGGTTACTAATTGTTCAAACGAACCATCGAAAAGCCGAACCTAGCTACACCACACCCCAGTATGAGCTTTATGGATCAAATCCCAGGAGGAGGAAATTATCCAAAACTCCCAGTAGAATGCCTTCCTAACTTCCCGATCCAACCATCTTTGACCTTCAGAGGTAGAAATGACTCGCATAAACTGAAAAACTTTATCTCCGAAATAATGTTAAACATGTCTATGATATCTTGGCCGAATGATGCCAGTCGTATTGTGTACTGCAGAAGACATTTATTAAACCCCGCTGCTCAGTGGGCTAATGACTTTGTACAAGAACAAGGTATACTTGAAATAACATTCGACACATTCATACAAGGATTATATCAGCATTTCTATAAGCCACCAGATATCAATAAAATCTTTAATGCAATCACGCAACTTTCCGAAGCTAAACTTGGTATTGAGCGTCTCAACCAACGATTCAGAAAGATTTGGGACAGAATGCCACCAGACTTCATGACCGAAAAAGCTGCCATAATGACATATACTAGGCTATTGACAAAGGAAACCTATAATATTGTCAGAATGCACAAACCAGAGACATTAAAAGACGCCATGGAAGAGGCTTACCAGACAACTGCACTAACTGAAAGATTCTTCCCAGGATTCGAACTTGATGCTGATGGAGACACTATCATCGGTGCCACAACCCACTTACAAGAAGAATACGACTCTGACTATGATTCAGAAGATAATCTGACCCAGAATGGATACGTCCATACCGTAAGGACAAGAAGATCTTACAATAAACCAATGTCAAATCATCGAAACAGGAGAAATAACAACCCATCTAGAGAAGAATGTATAAAAAATCGGCTATGCTTCTATTGTAAGAAAGAGGGACATCGCCTGAACGAATGTAGAGCACGTAAGGCGAGTTCTAACCGATCTTGAACTCGAATCAAAAGACCAACAAACTCCTTTTATCAAAACCTTACCAATTGTACACTATATCGCCATCCCCGAGATGGACAATACCGCCGAAAAAACCATAAAAATACAAAACACGAAAGTAAAAACCCTGTTTGACAGTGGATCACCCACGTCATTTATCCGAAGAGATATTGTAGAACTTCTCAAATACGAAATCTACGAGACCCCTCCACTCCGTTTTAGAGGATTCGTAGCCACCAAATCCGCCGTTACATCCGAAGCAGTCACCATTGACCTCAAAATCAATGACCTGCATATAACTTTAGCCGCGTACATACTGGATAACATGGACTACCAATTGTTAATTGGAAATCCAATCTTACGCCGCTACCCGAAAATCCTGCACACAGTACTGAATACCAGAGAGAGCCCCGACTCCTTAAAGCCCAAGACTTATCGCTCCGAAACCGTTAATAACGTTAGAACCTACTCCGCTGGTAATCGTGGTAACCCCAGAAACATAAAACTGTCTTTTGCCCCCACCATTCTCGAAGCAACTGACCCGAAATCCGCTGGTAATCGTGGTGACTCCAGAACCAAAACCCTGTCTCTTGCAACCACTACTCCTGCAGCAATTGACCCGCTTACGACCCTTGATAACCCAGGTAGTACTCAAAGTACATTTGCGCAATTCCCGATACCTGAAGAAGCGAGCATCCTAGAAGAGGATGGAAAATACTCCAACGTTGTCTCAACCATTCAGAGTGTAGAACCTAATGCTACTGATCACAGCAATAAGGACACCTTTTGCACTTTGCCAGTTTGGTTACAACAGAAGTATAGAGAGATCATACGTAATGATCTCCCACCAAGACCTGCCGACATTAATAACATCCCCGTAAAACATGATATTGAAATTAAACCTGGCGCAAGACTACCTCGACTACAGCCATACCATGTTACAGAAAAGAACGAACAAGAAATCAACAAAATAGTTCAAAAACTGCTCGATAACAAGTTCATTGTTCCCTCAAAGTCGCCTTGCAGCTCCCCTGTAGTCCTCGTCCCGAAGAAAGACGGTACCTTCCGACTCTGCGTCGATTACCGCACCCTGAACAAAGCTACCATCTCCGACCCATTCCCATTACCCAGAATCGACAACCTATTGAGCCGTATTGGAAATGCCCAGATATTTACCACGCTAGATTTGCATAGTGGTTACCACCAGATCCCGATGGAACCCAAAGACCGCTACAAAACCGCCTTTGTCACACCATCCGGTAAGTATGAATATACCGTCATGCCATTTGGCTTAGTCAATGCACCTAGTACATTCGCAAGATACATGGCTGATACATTTAGAGACCTGAGATTCGTCAATGTTTACCTTGATGATATATTAATATTCTCCGAATCTCCAGAAGAACATTGGAAACATTTAGACACGGTACTAGAAAGATTAAAGAACGAGAACCTCATTGTTAAGAAGAAAAAATGTAAATTTGCATCTGAAGAAACTGAGTTTTTAGGCTATAGTATTGGAATCCAGAAAATAGCTCCACTACAGCACAAATGTGCAGCAATCCGAGACTTTCCGACGCCTAAAACAGTAAAACAAGCACAGAGATTTTTAGGAATGATTAATTACTACAGACGATTCATTCCAAATTGCTCCAAGATTGCACAGCCAATCCAACTGTTTATTTGTGACAAAAGTCAATGGACAGAAAAACAAGACAAGGCAATTGATAAACTAAAAGACGCCTTGTGTAACTCCCCCGTCCTAGTACCATTCAACAACAAAGCAAACTACCGACTTACAACAGACGCCTCAAAAGACGGCATTGGTGCTGTTCTAGAAGAAGTCGACAACAAGAACAAACTTGTTGGTGTCGTCGGTTACTTCTCTAAATCCTTAGAGAGTGCCCAGAAAAACTATCCTGCTGGCGAATTAGAACTACTTGGAATTATCAAAGCACTCCACCACTTCCGATATATGCTTCACGGAAAGCATTTCACGTTAAGAACAGACCACATTAGTTTGTTATCATTACAAAACAAGAACGAACCCGCACGACGCGTGCAACGCTGGTTAGATGACCTAGCCACATATGACTTCACCTTAGAATACCTAGCTGGACCCAAGAACGTTGTCGCAGATGCCATATCCCGTGCCGTATATACTATAACCCCCGAAACATCCCGACCTATCGACACAGAAAGCTGGAAATCTTACTACAAATCAGACCCATTATGTAGTGCTGTCTTAATTCATATGAAAGAATTGACACAACACAACGTCACACCTGAAGATATGTCAGCCTTCCGTAGTTACCAGAAGAAACTCGAACTATCAGAGACCTTCCGAAAGAATTATTCCCTAGAAGACGAAATGATCTATTACCAAGACCGACTAGTAGTACCAATAAAACAACAGAACGCAGTTATGAGACTATATCATGACCATACCTTATTTGGAGGACATTTTGGTGTAACAGTGACCCTTGCGAAAATCAGCCCAATTTACTATTGGCCAAAATTACAACATTCGATCATACAATACATCAGGACCTGCGTACAATGTCAACTAATAAAATCACACCGACCACGCTTACATGGACTATTACAACCACTCCCTATAGCAGAAGGAAGATGGCTTGATATATCAATGGATTTTGTGACAGGATTACCCCCGACATCAAATAACTTGAATATGATCCTCGTCGTAGTTGATCGTTTTTCGAAACGCGCTCACTTCATAGCTACAAGGAAAACCTTAGACGCAACACAACTAATAGATCTACTCTTTCGATACATTTTTTCATATCATGGTTTTCCCAGGACAATAACCAGTGATAGAGATGTCCGTATGACCGCCGACAAATATCAAGAACTCACGAAAAGACTAGGAATAAAATCGACAATGTCTTCCGCGAACCACCCCCAAACAGATGGACAATCCGAACGAACGATACAGACATTAAACAGGTTACTAAGAGCCTATGCTTCAACCAATATTCAGAATTGGCATGTATATTTACCACAAATCGAATTTGTTTACAATTCTACACCTACTAGAACACTTGGAAAATCACCATTTGAAATTGATTTAGGATATTTACCGAATACCCCTGCTATTAAGTCAGATGACGAAGTCAACGCAAGAAGTTTTACTGCCGTAGAACTTGCCAAACACCTCAAAGCCCTTACCATCCAAACGAAGGAACAGCTAGAACACGCTCAAATCGAAATGGAAACTAATAACAATCAAAGACGTAAACCCTTATTGTTAAACATAGGAGATCACGTATTAGTGCATAGAGATGCATACTTCAAGAAAGGTGCTTATATGAAAGTACAACAAATATACGTCGGACCATTTCGAGTTGTCAAGAAAATAAACGATAACGCCTACGAACTAGATTTAAACTCTCACAAGAAAAAGCACAGAGTTATTAATGTACAATTCCTGAAAAAGTTTGTATACCGTCCAGACGCGTACCCAAAGAATAAACCAATCAGCTCCACTGAAAGAATTAAGAGAGCACACGAAGTTACTGCACTCATAGGAATAGATACTACACACAAAACTTACTTATGTCACATGCAAGATGTAGACCCAACACTTTCAGTAGAATACTCAGAAGCTGAATTTTGCCAAATTCCCGAAAGAACACGAAGATCAATATTAGCCAACTTTAGACAACTCTACGAAACACAAGACAACCCTGAGAGAGAGGAAGA ->TY3-LTR#LTR/Gypsy -TGTTGTATCTCAAAATGAGATATGTCAGTATGACAATACGTCACCCTGAACGTTCATAAAACACATATGAAACAACCTTATAACAAAACGAACAACATGAGACAAAACCCGACCTTCCCTAGCTGAACTACCCAAAGTATAAATGCCTGAACAATTAGTTTAGATCCGAGATTCCGCGCTTCCACCACTTAGTATGATTCATATTTTATATAATATATAAGATAAGTAACATTCCGTGAATTAATCTGATAAACTGTTTTGACAACTGGTTACTTCCCTAAGACTGTTTATATTAGGATTGTCAAGACACTCCGGTATTACTCGAGCCCGTAATACAACA ->TY3p-I#LTR/Gypsy -TCTGGTAGCGTTAAAGGTTACTAATTGTTCAAGCAAACCAACGAATCCCTGAACCTAGCTACACCAACATCTGTCATGAGCTTTATGGATCAAATCCCAGGAGGAGGAAGTTACCCAAAGCTTCCGGTGGAATGTCTTCCCAATTTCCCGATCCAACCAGCACTAACCTTCAGAGGTAGAAATGACTCGCACAAGTTGAAAAACTTCATCTCTGAAATAATGTTAAACATGTCTATGATTCCTTGGCCCAACGAAGCCAGTCGTATTGTCTATTGTAGAAAACACTTACTGAACCCTGCTGCTCAATGGGCTAATGATTTTGTCCAAGAGCAAGGCATACTGGAAATAACATTCGACACCTTCATACAAGGACTCTATCAGCATTTCTATAAGCCACCAGACATCAACAAAATCTTCAATACGATCAATCAACTATCTGAAGCAAAACTGGGTATTGAACGTCTCAACAAACAATTCAAAATGATTTGGGACAGAATGCCACCAGACTTTATGACCGAAAAAGCCGCTATTATGACATATACCCGCTTACTGACAAAGGAAACCTACAATATAGTTAGATTGCATAAACCAAAAACGTTGAGAGGAGCCATGGAGGAGGCTTACCAAACAACAGCACTAACTCAGAGATTCTTCCCAGAATTTGAGCTAGACGCCGATGGAGATACTATAATCGCAGCCGCAACTCGTTTACACGAACAGTACGACTACGACAGTGACCCACAAGAAAACTTTTTGGTCCAGAAGAGACACGTCCACGCAGTTCGGACAAGAAGATCATACAATAAACCGACCGCGACTTATCACAACAGGAGAAGCAATAATCCATCTAGAGAAGAGTGTGTAAAGAACCGTCTCTGTTTTTATTGTAAGAAAGAAGGACACCGTCTGAACGAGTGTAGAGCTCGTAATGCGAGTTCTAGCCGATCCTGAACTTAAGTCGAAAGACCACACGAAACTTTCTATCACATCCCGACCTATTGTACATTATATCGCCATACCTGAAATGGACAAAACTGCCGAAAAACACATAAAAATAAAAAACACGAAAATAAAAACCCTGTTTGATAGTGGATCGCCCACATCATTTATCCGAAGAGATACCGTAAATCTCCTGAATCTGCCAACCCATGATACTCCACCGCTCCGCTTTAGAGGATTCATATCCACCGAATCCGCCACCACTTCAGAAGCAGTTACGCTCGACCTTACAGTCGACAATCTGCAAATCAATGTAGCCGCGTATGTACTCGATAAAATGGACTACCAACTTCTAATCGGAAATCCAATTCTACGCCGCTACCCAAAACTCCTGTACACAATCCTGAACACTAAGCAGTGTACCTCCGCCCAGAAGCCCAAGGCTTACCATCCCGAAAACATTAACTATGTGAAAGCAAAATCCGCTGGTAATCGTGGTAACTCCAGAAACAAAACACTGTCCTTTGCCCCCACTATTCCTGAAGCAACTGACCAGAAATCCGCTGGTAATCGTAGTAACTCCAGAACAAATACTATGTCTTTTGCAACTACCAATCCAGAAACAACTGACCCGCTTACGACCCTCGACAATCCAGGTAGTACTCAAAGTACATTTGCGCAATTCCCGATACCTGAAGAAGCGACCATCCTAGAAGAGGATGGAAAATACTCCAACGTTGTTTCAACCATACAGAACGTAGAACCTAAAGCTACTGATCACAGCAACAAGGACACATTTTCAACGTTGCCTGTTTGGTTACAACAGAAGTATATAGAGATTATACGTAATGATCTCCCGCCAAGACCGGCCAATATCCACAACATGCCCGTAAAACACGACATTGAAATTAAACTTGACACAAGACTACCTCGACTACAGCCATATCATGTTACAGAAAGGAACGAACAAGAAATTAACAAGATCGTTCAAGAACTGCTCGACAACAAGTTCATTGTCCCCTCTAAATCTCCGTGCAGTTCCCCTGTAGTCCTTGTCCCGAAGAAAGATGGTACGTTTAGACTTTGCGTTGACTACCGTGCCCTGAACAAGGTTACCATCTCCGACCCATTCCCATTACCCAGAATCGACAACCTATTAAGCCGTATTGGGAATGCCCAAATATTCACCACGCTAGATTTGCACAGTGGTTATCACCAGATTCCAATGGAACCAAAAGACCGCTACAAAACCGCTTTTGTCACCCCGTCCGGTAAATATGAATACACTGTCATGCCATTTGGTCTAGTGAATGCACCTAGCACCTTTGCAAGATACATGGCCGACATTTTCAGAGACTTGAGATTTGTCAATGTCTACCTTGATGATATACTAATCTTCTCTGAATCCCAAGAAGAACACTGGAAACATTTAGACACAGTTCTTGGAAGACTTAAGAAGGAAAACCTTATTGTCAAAAAGAAAAAATGCAAGTTTGCATCAGAACAAATTGAATTTCTAGGTTATAATATTGGAATTCAGAAAATAACCCCATTACAACACAAATGTGCTGCCATTCGAGATTTTCCGAAACCCAGAACAGTAAAGCAAGCACAACGATTTTTAGGAATGATTAATTACTATAGACGATTCATTCCAAATTGCTCTAAGATTGCACAACCAATCCAGCTCTTTATATGCGACAAGAGTCAATGGACAGAAGAGCAGGACAAGGCAATCGAGAAATTAAAATCCGCCCTATGTAATTCCCCTGTTCTAGTACCATTTAACAACAAAGCAATTTACCGATTAACTACAGACGCATCAAAAGATGGCATCGGTGCCGTTCTAGAAGAAGTCAATGCCAAAAACGCACTTGTCGGTGTCGTCGGTTATTTCTCTAAATCCTTAGAAAGTGCTCAAAAGAACTACCCCGCCGGTGAACTAGAACTACTTGGAATTATTAAGGCACTTCACCACTTCCGTTATATGCTCCATGGAAAACATTTTACATTGAGAACGGATCACATTAGCTTACTGTCACTGCAGAATAAGAATGAACCTGCACGAAGAGTTCAAAGATGGTTGGATGACCTAGCCACTTATAACTTCACCCTAGAATACTTAGCTGGACCCAAAAACGTCGTCGCAGATGCTATATCCCGTGCCGTGTACACTATAATCCCAGAAATACCCCAACCTATCGACCCAGAAAATTGGAAAACTCATTACAAATCAGACCCATTATGCAGTGCCACCTTGATTTACATGGAAGAATTGACACAACACAATGTCATGCCTGAGGATATGTCCGCATTCCGTAGCTATCACAAGAAATTTCAGTTATCAGAGACCTTCCGAAAGAACTACTCCCTAGAAAATGGAATAATCTACTATCGAGACCGATTAGTAGTCCCGGTAAAACAACAGAACGAAGTCATAAAACTGTATCACGATCATACTTTATTCGGAGGCCATTTTGGTGTAACTGTAACATTTGGAAAGATTGCTCCAATTTTTTACTGGCCGAAATTGCAACATTCGATTACACAATACATCCGTACCTGCGTACAATGTCAACTCACAAAATCACATCGACCACGTTCACAAGGACTATTGCAACCGCTTCCCGTAGCAGAAGGAAGATGGCTTAATATATCAATGGATTTCGTGACTGGACTACCCGTAACAACAAACGATTTGAATATGATCCTCGTTGTTGTTGACCGCTTCTCGAAACGCGCTCACTTCATAGCTACAAGGAAAACAGCAGACGCATCACAGCTAATAAATACGCTATTCCGCTATATCTTTTCATATCATGGTTTCCCGAAAACAATAACCAGTGATAGAGACATCCGTATAACCGCAGAAAAATATCAAGAACTTACAAAAAGATTAGGGATAAAATCGACAATGTCTTCTGCAAACCACCCCCAAACAGATGGACAATCCGAAAGAACGATTCAAACATTGAACCGATTGATAAGAGCTTATGCCTCCACCAATACCCGGAACTGGCACACCTACTTACCACAAATTGAATTTGTCTATAACTCCACACCGACCAGAACACTTGGAAAGTCACCATTCGAAATTGATTTAGGATATACTCCCAATGCACCTACCATTAAAACGGATTGCGAAATCAATGCAAGAAGTTTTACCGCCGTAGAACTGGCCCGACACCTCAAAGCTATTACGATCCAAACAAAAGAACGACTAGAGTCTGCTCAGATTGAAATGGAAACTAATAACAACCAAAGACGTAAAACTTTGTTACTGAACATAGGAGATCACGTACTAGTGCATAGAGATGCATACTTCAAGAAAGGAACGTATATGAAGGTACAACCTATATACGTTGGACCATTTCGAGTTGTCAAGAAAATAAATGATAACGCTTACGAACTCGACCTGGATTCACACAAGAGAAAACATAGAGTTATTAACGTACAATACCTAAAGAAATTTGTATACCGACCCGACGCATATCCAAAGAATAAACCAATCAGTTCCGTTGAAAGAATCAACAGAGCCAATGAAGTCATTGCAGTTATAGGGATAGATACCACACACAAAACATACTTATGTCGTATGCAGGATGTGGACCCGACAATCTCAGTAGAATATTCAGAAGCTGAATTCTACCAAATCCCAGAGGAAATACGAAAGTCAATATTAGCCAATTTTAGACAACTGTACGAAACTCAAGACAACTCCGAGAGAGAGGAAGAT ->TY3p-LTR#LTR/Gypsy -TGTTGTATCTCAAGATGAGATACCTCAGCATTACTAGATTTACCAACCTAGACATAAAACATGTATGAAACACGTACGAAACAATAGACAAGATTGAGTATACTAGGCAACCTACTTGCCTAAGATGAACCAAACTAACCAAACGTATAAATACCTGAACAATTAGTTTAGATCCGAGATTCCGCGCTTCCACCCTTTAGTTAGATTCAGATCTTATATAGATTATATAGGATAAGTAACATTCTGTGAATCACGATAATAATAAGTCTGACAACAAGTTACTCTCCTAAACGACTTTAGGATTGTCAAGACATCCGGTATTACTCGAGCCCGTAATACAACA ->TY4-I#LTR/Copia -TGGCGACCCCAGTGAGGGGTGAAACAAGAAATGTTATTGACGACAACATTTCTGCGCGGATTCAATCGAAAGTCAAAACAAATGATACTGTCAGACAGACGCCATCATCATTAAGAAAAGTTTCTATTAAAGATGAACAGGTGAGACAATATCAAAGAAACTTAAATAGGTTTAAAACCATACTAAATGGTTTAAAGGCAGAAGAGGAAAAACTTTCTGAGGCTGATGATATTCAGATGCTAGCTGAAAAATTATTAAAACTCGGAGAAACCATTGACAAGGTTGAGAATAGGATTGTGGATCTAGTTGAAAAGATACAATTATTGGAAACAAACGAGAACAATAATATATTACATGAACATATAGATGCTACAGGGACTTACTATTTATTCGATACGTTAACTTCAACCAACAAAAGATTCTACCCTAAGGATTGTGTTTTTGATTATAGGACTAATAATGTCGAGAACATTCCTATTCTCTTAAACAATTTTAAAAAATTCATCAAGAAATATCAATTTGATGATGTCTTTGAAAATGATATCATAGAAATCGATCCTCGTGAAAATGAAATCTTGTGCAAGATAATCAAAGAAGGACTCGGTGAAAGTTTAGATATCATGAACACAAATACAACTGACATTTTTAGGATAATCGATGGTTTAAAAAAACAAAATATAGAAGTTTGCATGGTAGAGATGTCAGAATTAGAGCCTGGGGAAAAGGTTTTGGTTGATACAACATGTAGAAATTCCGCATTGTTAATGAATAAACTTCAAAAGTTGGTACTAATGGAAAAATGGATTTTTTCTAAATGCTGCCAAGATTGTCCTAATCTAAAGGATTACCTACAAGAAGCTATCATGGGAACCTTACATGAATCCTTAAGAAATTCTGTGAAACAACGTTTGTACAACATTCCACATGACGTAGGAATTGATCACGAAGAATTTCTAATCAATACTGTTATTGAAACAGTAATTGATTTGAGCCCAATTGCAGACGATCAAATAGAAAATAGCTGCATGTATTGCAAATCTGTTTTCCATTGCTCAATTAACTGCAAAAAGAAACCAAATAGGGAACTTAGGCCTGACTCGACCAATTTCTCAAAAACCTATTATCTACAAGGTGCACAGAGACAACAACCACTTAAGTCCAGTGCAAAACGAACAAAAGTCTTGGAACAAGACACAAAAAAGGTCGAACAAAGTGTACAACAGCAAAAAACTGGTAATTATTGATACCGGTTCCGGAGTAAACATTACCAATGACAAAACCTTACTGCATAATTACGAAGACAGTAATCGCAGTACACGATTTTTTGGTATTGGGAAAAACAGTTCAGTGTCTCTTAAAGGGTATGGCTATATAAAAATCAAGAATGGTCACAACAATACTGACAATAAGTGTCTATTAACTTACTATGTACCGGAAGAAGAATCCACTATAATCAGCTGTTATGACTTAGCCAAGAAAACCAAAATGGTTTTAAGTCGAAAATATACCAGATTGGGAAACAAAATCATAAAAATTAAAACCAAGATAGTTAATGGTGTCATTCACGTAAAAATGAACGAGTTAATTGAACGTCCTTCCGATGATTCAAAAATAAATGCAATAAAACCTACTTCTTCTCCTGGATTTAAACTAAATAAAAGGTCTATTACCTTGGAAGATGCTCATAAAAGAATGGGCCATACAGGAATTCAACAAATTGAAAATTCCATAAAACATAATCATTATGAAGAATCCCTTGACTTAATCAAAGAACCAAATGAATTTTGGTGTCAAACCTGTAAAATCTCTAAAGCCACGAAAAGAAATCATTATACCGGGTCTATGAATAATCATAGTACTGATCATGAACCAGGCTCATCATGGTGCATGGATATATTTGGCCCTGTATCAAGTTCAAACGCGGACACTAAAAGGTACATGCTTATTATGGTGGATAACAACACGAGATATTGCATGACCTCCACACACTTCAATAAGAATGCTGAAACTATTTTAGCTCAAGTTAGAAAGAATATTCAGTACGTGGAAGCACAATTTGACAGGAAAGTCAGAGAAATTAATTCAGACAGAGGTACTGAATTCACAAATGATCAGATAGAAGAATATTTTATTTCAAAAGGAATACATCACATACTTACTTCTACACAAGATCATGCTGCTAACGGAAGAGCAGAAAGATACATAAGAACAATAATAACTGATGCAACAACACTCCTAAGACAAAGTAACTTAAGAGTAAAATTTTGGGAATACGCAGTAACTTCTGCTACCAATATAAGAAATTACCTGGAACACAAAAGTACAGGTAAACTACCATTGAAGGCAATCTCACGTCAACCTGTGACAGTGAGATTAATGTCATTCTTACCATTTGGCGAAAAAGGAATAATTTGGAATCATAATCACAAAAAATTGAAACCATCTGGACTTCCTTCTATAATTCTATGCAAAGATCCAAATAGTTATGGATACAAATTCTTTATACCATCCAAAAATAAAATTGTCACATCTGATAATTATACAATTCCCAACTATACAATGGACGGTAGAGTAAGAAATACTCAGAATATTAACAAGAGTCATCAATTCAGTTCAGATAATGATGATGAAGAAGATCAAATCGAAACGGTCACAAACTTATGTGAAGCTTTGGAAAACTACGAAGATGATAATAAACCAATTACTCGCCTGGAAGATTTGTTCACAGAGGAAGAGTTATCTCAAATAGACTCAAACTCAAAATACCCATCTCCTAGTAATAACCTAGAAGGGGACTTGGATTACGTATTTTCTGATGTTGAGGAATCTGGAGATTATGACGTTGAATCTGAACTTTCAACGACAAATAATTCAATCTCAACTGATAAAAACAAAATTTTGTCAAACAAGGATTTTAATTCAGAACTTGCATCGACTGAAATATCCATCAGTGGAATCGATAAGAAAGGATTAATAAATACAAGTCATATTGATGAAGATAAGTATGATGAAAAAGTCCACAGAATTCCATCGATTATACAAGAGAAACTGGTAGGAAGGAAAAATACTATTAAAATCAATGACGAAAACAAAATCTCCGACAGAATTCGTAGTAAAAACATTGGGAGTATTTTAAACACTGGACTCAGTAGATGTGTAGATATCACCGATGAATCTATTACTAACAAAGATGAGTCAATGCACAACGCAAAACCCGAACTAATTCAGGAGCAGTTAAAAAAAACAAATCATGAAACTTCGTTTCCTAAAGAAGGGAGCATTGGAACAAATGTAAAATTCCGAAATACAAACAATGAGATTTCTTTAAAAACAGGCGATACGAGTTTACCAATAAAAACTTTAGAAAGCATTAACAATCACCATAGTAATGATTATTCCACAAACAAAGTTGAAAAGTTTGAGAAGGAAAATCATCATCCGCCCCCGATTGAGGACATTGTGGATATGAGTGATCAAACTGATATGGAATCAAACTGTCAGGATGGTAATAACTTAAAAGAATTAAAAGTCACCGATAAAAATGTACCAACTGACAATGGAACAAATGTGTCACCAAGGTTGGAACAAAATATTGAAGCATCTGGATCACCAGTACAAACAGTTAATAAAAGTGCCTTCTTAAACAAAGAATTCAGTTCTTTGAACATGAAAAGAAAACGGAAAAGACACGATAAAAACAATAGTCTAACAAGCTATGAATTAGAAAGAGATAAGAAGCGTTCAAAAAAGAATCGAGTGAAATTAATTCCAGATAATATGGAAACAGTTTCAGCACCAAAAATTCGAGCCATATATTATAATGAAGCTATTTCAAAAAATCCTGACCTCAAAGAAAAACATGAATACAAACAGGCATATCATAAAGAATTACAGAATTTAAAAGATATGAAGGTATTTGATGTCGATGTGAAGTACAGTAGATCAGAAATCCCTGATAATTTAATAGTACCCACCAACACGATATTCACAAAGAAAAGAAATGGGATTTATAAGGCTAGGATAGTCTGCAGAGGTGATACTCAGTCACCAGACACTTACAGTGTAATAACTACAGAATCTTTAAATCACAATCATATTAAGATATTCTTAATGATTGCAAACAACAGAAATATGTTTATGAAGACCCTGGATATCAATCATGCATTCCTATATGCTAAATTGGAAGAAGAAATATACATCCCACATCCGCATGATAGGAGATGTGTAGTCAAGCTAAATAAGGCGTTATATGGTCTAAAACAGAGTCCTAAAGAATGGAATGATCATCTAAGACAATACTTGAATGGAATTGGACTGAAAGATAACTCTTATACTCCGGGATTATACCAAACCGAGGATAAAAATCTAATGATTGCAGTCTATGTTGATGACTGCGTAATTGCGGCAAGCAATGAACAGAGATTGGATGAATTCATAAACAAATTGAAAAGTAATTTTGAACTGAAAATTACAGGAACATTAATAGACGATGTACTCGATACAGATATATTAGGAATGGATCTAGTATACAACAAAAGACTTGGTACTATCGATTTAACATTAAAATCATTCATAAATAGAATGGATAAAAAATACAACGAGGAATTGAAAAAGATTAGAAAAAGTTCAATTCCGCATATGTCAACTTATAAAATAGATCCTAAGAAAGACGTACTGCAAATGTCAGAAGAAGAGTTTAGACAAGGTGTTCTAAAGCTACAACAATTACTAGGTGAACTAAACTATGTCAGACACAAATGCAGATACGACATTGAATTTGCTGTTAAGAAAGTGGCTAGACTAGTAAATTACCCACATGAAAGAGTCTTTTATATGATTTACAAAATAATCCAGTACTTGGTTAGGTATAAAGATATTGGAATACACTATGACCGAGACTGTAATAAAGACAAAAAGGTTATTGCTATAACTGATGCATCAGTTGGATCAGAATATGATGCTCAATCAAGGATTGGAGTTATATTATGGTACGGTATGAATATTTTTAATGTTTATTCTAACAAGAGCACAAACAGATGTGTATCATCAACAGAAGCAGAGCTTCATGCCATTTATGAAGGCTATGCAGACTCAGAAACGTTGAAGGTAACATTAAAGGAGCTAGGAGAAGGAGACAATAATGACATTGTCATGATCACTGACTCAAAGCCAGCCATTCAAGGATTAAATCGCAGCTATCAACAACCAAAAGAGAAATTCACTTGGATAAAAACTGAAATAATAAAAGAAAAAATTAAAGAGAAGAGTATAAAACTGTTAAAAATTACCGGCAAAGGTAATATTGCTGATTTACTAACAAAACCAGTATCAGCATCTGATTTTAAAAGATTTATACAAGTATTAAAAAATAAAATAACATCACAGGATATTTTGGCCTCAACAGACTATTGATAATTAATTAATGAAGTTCTAAACACACAATGAATATCTGTTGAAGTACAATAATATATCTTTAAGGGAGCA ->TY4-LTR#LTR/Copia -TGTTGGAACGAGAGTAATTAATAGTGACATGAGTTGCTATGGTAACAATCTAATGCTTACATCGTATATTAATGTACAACTCGTATACGTTTAAGTGTGATTGCGCCTATTGCAGAAGGAATGTTAAACGAGAAGCTCAGACAATACTGAAGCTGTGTTAAAGACCTATTAGTTGAACATGTTATGGTAGGTACATATATGAGGAATATGAGTCGTCACATCAATGTATAGTAACTACCGGAATCACTATTATATTGGTCATAATTAATATGACCAATCGGCGTGTGTTTTATATACCTCTCTTATTTAGTATAAGAAGATCAGTACTCACTTCTTCATTAATACTAATTTTTAACCTCTAATTATCAACA ->TY4p-I#LTR/Copia -TGGCGACCCCAGTGAGGGATGGAACAAGAAATGTTATTGACGACAACATTTCTGCGCGGATTCAATCGAAAGTCAAAACAAATGATACTGTCAGACAGACGCCATCATCATTAAGAAAAGTTTCTATTAAAGATGAACAGGTACGGCAATATCAAAGAAACTTAAATAGGTTTAAAACCATACTAAATGGTTTAAAGGCAGAAGAGGAAAAACTTTCTGAGGCTGATGATATTCAGATGCTAGCCGAAAAATTATTAAAACTCGGAGAAACCATTGACAAGGTTGAGAATAGGATTCTGGATTTAGTTGAAAAGATACAATTATTGGAAACAAATGAGAACAATAATATTTTACATGAACATACAGATGCTACAGGGACTTACTATTTATTCGATACGTTAACTTCAACCAACAAAAGATTCTACCCTAAAGATTGTGTTTTTGATTATAGGACTAACAATGTTGAGAACATTCCTATTCTTTTAAACAATTTTAAAAAATTTATCAAGAAATATCAATTTGATGATGTCTTTGAAAATGATATCATAGAAATCGATCCTCGTGAAAATGAAATCTTGTGCAAAATAATCAAAGAAGGACTCGGTGAAAGTTTAGATATCATGAACACAAATACAACTGACATTTTTAGGATAATCGATGGTTTAAAAAACAAATATAGAAGTCTGCACGGTAGAGATGTCAGAATTAGAGCCTGGGAAAAGGTTTTGGTTGATACAACATGTAGAAATTCCGCATTATTAATGAATAAACTTCAAAAATTGGTACTAATGGAAAAATGGATTTTTTCCAAATGCTGCCAAGATTGTCCCAATCTAAAAGATTACCTACAAGAAGCTATCATGGGAACCTTACATGAATCCTTAAGAAATTCTGTGAAACAACGTTTGTACAATATTCCACATAACGTAGGAATTAATCACGAAGAATTTCTAATCAATACTGTTATTGAAACAGTAATTGATTTGAGCCCAATGGGTGACGATCAAATAGAAAATAGCTGCATGTATTGCAAATCTGTTTTCCATTGCTCAATTAACTGCAAAAAGAAACCAAATAGAGAACTTAGGCCTGACACGGCAAATTTCTCAAAAACCTATTATACGCAAGGTGCACAGAGACAACAACAACTTAAGTCCAGTACAAAACGAACAAAAGTCTTGGAACAAGACACAAAAAAGGTCGAACAAAGTGTACAACAGCAAAAAACTGGTAATTATTGATACCGGTTCCGGTGTAAACATTACCAATGACAAAACCTTACTGCATAATTACGAAGACAATACTCGCAGTACACGATTTTTTGGTATCGGGAAAAACAGCTCAGTGTCTGTTAAAGGGTATGGCTATATAAAAATCAAGAATGGTCACGACAATACTGACAATAAGTGCTTATTGACTTACTATGTACCGGAAGAAGAATCCACTATAATCAGCTGTTATGACTTAGCCAAGAAAACCAAATTGGTTTTAAGTCGAAAATATACCAACTTGGGAAACAAAATCATAAAAATAAAAACCAAGATAATAAATGGTGTCATTCACGTAAAAATGAATGAGTTAATTGAACGTCCTTCCGATGATTCAAAAATAAATGCAATAAAACCTACTTCTTCTACTGGATTTAAACCAAATAAAATGTCTATTACCTTGGAAGATGCTCATAAAAGAATGGGCCATACAGGAATTCAACAAATTGAAAATTCCATAAAACATAATCATTATGAAGAATACCTTGACTTAATCAAAGAACCAAATGAATTTTGGTGTCAAACCTGTAAAATCTCTAAAGCCACGAAAAGAAATCATTATACCGGGTCTATGAATAATCATAGTACTGATCATGAACCAGGCTCATCATGGTGCATGGATATATTTGGTCCTGTTTCAAGTTCAAACGCGGACACTAAAAGGTACATGCTTATTATGGTGGATAACAACACGAGATATTGCATGACCTCCACACACTTCAATAAGAATGCTGAAACTATATTAACACAAATCAGAAAGAATATTCAGTACGTGGAAACACAATTTGACAGAAAAGTCAGAGAAATTAATTCAGACAGAGGTACTGAATTCACAAATGATCAGATAGAAGAATATTTTATTTCAAAAGGAATACATCATATACTTACTTCTACACAAGATCATGCTGCTAATGGAAGAGCAGAAAGATACATCAGAACAATAATAACTGATGCAACAACACTCCTAAGACAAAGTAACTTAAGAGTAAAATTTTGGGAATACGCAGTAACTTCTGCTACCAATATAAGAAATTGCCTGGAACACAAACGTACAGGTAAACTACCATTGAAGGCAATCTCACGTCAACCTGTTACAGTGAGATTAATGTCATTCTTACCATTTGGCGAAAAAGGAATAATTTGGAACCATAATCACAAAAAATTGAAACCATCGGGACATCCTTCTATAATTTTATGCAAAGATCCAAATAGTTATGGATACAAATTCTTTATACCATCCATAAATAAAATTGTCACATCTGATAATTATACAATTCCCAACTATACTATGGACGGTAGAGTAAGAAATACTCAGAATATTTACAAAAGTCATCAAATCAGTTCACATAATGCTGATGAAGAAGATCAAATCGATACGGTCACAAACTTATGTGAAGCTTTGGAAAACTACGAAGATGATAATAGACCAATTACTCGCCTGGAAGATTTTTTCACAGAGGAAGAGTTATCTCAAATAGACTCAAACGCAAAATACCCATCTCCTAGTAATAACCTAGAAGGGGACTTGGATTACGTATTTTCTGATGTTGAAGAATCTGGAGATTATGACCTTGAATCTGAACTTTCAGCGACAAATACCTCAATCTCAACTGATAAAAACAAAATTTTGTCAAACAAGGATTCTAATTCAGAACTTGCATCGACTGAAATATCCATCAGTGGAATCGATAAAAAAGGATTAATAAATACAACTCATATTGATGAAGATAATTGTGATGAAAAAGTCCACAGAATTCCATCGATTATACAAGAAAACCTCGTAGGAAGTAAAAATACTATTAAAATCAATGACGAAAACAAAATCTCCAACAGAATTCGTAGTAAAAACATTGGGAGTACATTAAACTCTGGACTCAGTAGATGTGTAGATATTACCGATGAATCTATTACTAACAAAGATGAGTCAATACACAACCCAAAACCAGAACTAATACAGGAGCAGTTTAATAAAACAAACCATGAAACTTCGTTTCCTAAAGAAGGGAGCATTGGAAGAAATGTAAAATTCCGAAATCCAAACAATGAGATTTCTTTAAAAACAAGCGAAACGAGTTTACCAATAAAAACTTTAGAAAGTATTAACAATCACCACAGTAATGATTATTCCACAAACAAAGTTGAAAAGTTTGAGAAGGAAAATCATCATCCGCCCCCGATTGAGGACGTTGTGGATATGAGTGATCAAACAGATATGGAATCAAACTGTCAGGATGATAATAACATAAAAAAATTAGAAGACACCGACGAAAATGTACCAACTGAGAATGGAACCAATGTGTCACCAAGGTTGGAACGAAGTAGTAAAAAAAATGAGATCAACACTACAACCAATTAAAACGACAACTGAAGCATCTGGATCGTCAGTACAAACAGTTAATAAAAGTGCCTTTTTAAACAAAGAATTTAATTCTTTGAATATGAAAAGAAAACGGAAAAGACACGATAAAAACAATAGCTTAACAAGCTACGAATTAGAAAGAGATAAGAAGCGTTCAAAGAAGAATCGAGTGAAATTAATTCCAGATAATATGGAAACAAGTTCAGCACCGAAAATTAGAGCCATATATTATAATGAAGCTATTTCAAAAAATCCTGACCTCAAAGAAAAACATGAATACAAACAGGCATATCATAAAGAATTACAAAATCTAAAAGATATGAAGGTATTTGATGTCGATGTGAAGTACAGTAGATCAGAAATCCCTGATAATTTAATAGTACCCACCAACACAATATTCACAAAGAAGAGAAATGGGATTTATAAGGCTAGGATAGTCTGCAGAGGCGATACTCAGTCACCGGACACTTACAATGTAATAACTACAGAATCTTTAAATCACAATCATATTAAGATATTCTTAATGATTGCAAACAACAGAAATATGTTTATGAAGACTCTGGATATCAATCATGCATTCCTATATGCTAAATTGGAAGAAGAAATATACATCCCACATCCGCATGATCGGAGATGTGTAGTCAAACTAAATAAGGCGTTATATGGTCTAAAACAGAGTCCTAAAGAATGGAATGATCATCTAAGACAATACTTGAATGGTATTGGATTGAAAGATAACTCTTATACTCCGGGATTATACCAAACCGAGGATAAAAATCTAATGATTGCAGTTTATGTTGATGACTGCGTAATTGCGGCAAACAATGAACAGAGATTGGATGAATTCATAAACAAATTGAAAAGTAATTTTGAACTGAAAATTACAGGAACATTAATAGATGATGTACTCGATACAGATATATTAGGAATGGACTTAGTATACAACAAAAGACTTGGTACTATCGATTTAACATTGAAATCATTCATAAATAAAATGGATAAAAAATACAAAGAGGAATTGAAAAAGATTAGAAAAAGTTCAATTCCGCATACGTCAACTTATAAAATAGATCCTAAGAAAGACGGACTGCAAATGTCAGAAGAAGAGTTTAGACAAGGTGTTCTGAAATTACAGCAATTACTAGGTGAACTAAACTATGTCAGATACAAATGCAGATACGACATTGAATTTGCTGTTAAGAAAGTGGCTAGACTAGTAAATTACCCACATGAAAACGTCTTCTATATGATTTACAAAATAATCCAGTACTTGGTTCGGTATAAAGATATTGGAATACACTATGACCGAGACTGTAATAAAGATAAGAAGGTTATTGCTATTACTGATGCATCAGTTGGATCAGAATATGATGCTCAATCAAGGATTGGAGTTATATTATGGTACGGGATGAATATTTTTAATGTTTATTCTAACAAGAGCACAAACAGATGTGTATCATCAACAGAAGCAGAGCTTCATGCCATTTATGAGGGCTATGCAGACTCAGAAACGTTGAAGGAAACATTAAAAGAGCTAGGAGAAGGAGAAAATAATGACATTGTCATGATCACTGACTCAAAGCCAGCCATTCAAGGATTAAATCGTAGCTATCAACAACCAAAAGAAAAATTCACTTGGATAAAAACTGAAATAATAAAAGAAAAAATTAAAGAGAAGAGTATAAAACTGTTAAAAATTACCGGCAAAGGTAATATTGCTGATTTACTAACAAAACCAGTATCAGCATCTGATTTTGAAAGATTTATACAAGTATTAAAAAATAAAATAACATCACAGGATATTTTGGCCTCAACAGACTATTGATAATTAATTAATGAAGTTCTAAACACACAAGGAATATCTGTTGAAGTACAATAATATATCTTTAAGGGAGCA ->TY4p-LTR#LTR/Copia -TGTTGGAACGAGAGTAATTAATAGTGACATGAGTTGCTATAGTAACAATCTAATGCTTACATCGTATATTAATGTACACCTCGTATACGTTTAAGTGTGATTGCACCTATTGCAGAAGGAATGTTAAACGAGAAGCTCAGACAATACTGAAGCTGAGTTAAAAATCTATTAGTTGAACATGATATGGTAGGTACATATATGAGGAATATGAGTCGTCACATCAATGTATAGTAACTACCGGAATCACTATTATATTGGTCATAATTAATATGACCAATCGGCGTGTGTTTTATATACCTCTCTTATTTAGTATAAGAAGATCAGTACTTATTTCTTCATTAGTACTATATTTTAACCTCTAATTATCAACA ->TY5-I#LTR/Copia -GGTTATGAGCCCTGAGAGCAATGCTTCAGAGACCATAATTAATCTATCTAATCCCAACAATTATAAACAGTGGCTGTACGGTATCGAGACCGCTGCTGAATATGCTAACGAATATATGAACGAATTCGTTCATACCGGAGATATCCAATCAATGAAAAGGGATTACAATCTCAGCGCGAATGATGAAAGCTTTGTCAAAACCGTATTTAACAGTTTCCTGGTAAAGCTCTACAAGAAAACTATCGTGGGTGAAGCTGCATGTGAAATGAACTGGATATGTGATGATTCACTTGGAAGGGTCTCTGCTTATGATATTTTCTCGCACTTCGAAGAAAACTATAATGAAGTCACTATTGGATCCAGGCTTACTCTTATAGAGGACTTACCAAATATATCCTCCAAGCCTGTAGATGAAATCGCTTCCTTTTTGAAAACCCTATTCACAATGCTTGAAGACAATAGCGAAGAACAGGACAAAAAGAAAAGACGCGATACCAATATCGCGTTGCTATTAATGACCTTCTTACCCGAGTTAAAGGAATCATTCCACGAGAAATTCGGTGACTCTAAAGCTCTTCAGCTGTCACAAGTCATTAGATTCTGTAAATTAAAGGCGTCATCGAATTCATTATCTTCAGTCTCAGATACATTGGTTGCACAAGACAGAAGAAGCTATCAAAAGAAAGGAAATAAGGGATGTATGATTTGTGGGGCTGATCATCGCTTAAGCAACTGTTCTCTGCTTAAAAGAAGAATACCAGAAGCCAGAATCTTTAAATTATATCCTAATGACAAGACGAATAGATCTTCATCTGCTAGTGTTGCGATTCCTGACTATGAAACGCAAGGCCAAACAGCAGGACAGATAACACCAAAGTCCTGGCTCTGTATGTTATCTTCGACCGTCCCAGCTACCAAATCCTCAGATTGGATTTGTGACACAGGATGTACTTCACACATGTGCCACGACCGTTCTATGTTCTCATCATTTACTAGATCCTCTAAGAAAGACTTTGTCAGAGGAGTCGGCGGTTCCATACCCATCATGGGCTCCGGGACTGTAAACATCGGCACTGTTCAATTAAATGACGTATCCTACGTCCCTGATTTACCAGTCAACCTAATATCCATTTGGAAACTATGTGCTAAATCCAACTCTTCTGTTACGTTCACAAAAGAGGGTGTCACTGTGAAATCACCTGATGACGTGATTTCTACGGCTGGGAAGTTAAACAATTATCTGTACATTTTCGATGATCTTACGCCCGTAACTACCTTCTCTTCGCAAAATTACTTCTGCTCTAAAACATTGGATTCATCTAAAATGATAACTTCCGCAGCGTTTCATACCGTTGCAGATAAAATGTTGTCGCAACACATTTCTCCCACTGCTCTCCCGGTAAAATGGCATGCTCGTATGGGCCATCCCGGAGCAGATATTTACAATTCCTTGGCTAGAACTCTGCGTTTTCCAAAATTTAAGACGGCTGAATACACTATTTGTCCTACCTGCTCACTAGCAAAAGGAATCATCAAAAAGGGTAAAGTCTCGCTCAAAAAATATACCCAACCTCTTCAAATGGTACAGGCTGATCTCTGTGGTGGGTTTCGCTACCAAGAGTTTCAGTCAAATAAATATTTTCTTACTATCCGTGATGCCTATAGTCGCTACTACTCTGTAATACATTTAAAATCCAAAGCAGACGCTCCGATAAAATTCATGGAATGGATCAACGAAACCGAACAATACTTTAGCTCCCGGGGTGGATTCAAAGTCGGATCTGTTCGTACAGACAATGGTACAGAATTCGTAAATAAAAATCTTCATGCGTTTTTTAAATCTAAAGGAATAGAGCATCAGTTAACTATTCCATATCATAGTTATCAAAATGGTGCTGTTGAACGTGCACATCGTACCATCGAAGAACGCACTCGTTGTCTCCTTATCGGGGGGCGTGTTCCTCCGTCCTTGTGGTCTGAAGCTGTTTCTTGCGCAGTCTATTTAATCAATAGGTCCCCTGTAGTGTCCAAAAATAACAGTATCCCATACTGCCGGTGGTTCAACATCCCCGCAAAAGATTTCGGTATCGCACATCTTCGAATTTTTGGATGTACAGCATACGCAACCTTACAACCTAGTCTTCGAGACGGCAAACTTGCCCCAACTGTCATATCTGGTGTTATGGTTGGCTATGACTCTAACCATCGAGGATACAGGATTTATCATCCCGAAACTGGCCGCATCTTTGTGAGCAGTCAAGTTCGATTTGACGAACACATGTTTCCTCTTGCTGATACAGAGGCAGTTCACGTCTCTCACGACTTTGCCACTTCCGCTATTGGGGGGGTGTCCAAATATCCTGAAACAGGGTCAACCGTCTCTGCTCCAAAGAACGACGGATCTGACTTGGCAAATTTGCCAATAACTGTTCCCAAAAATGTAAATCAACCAGCACATAAACCTAATACCAGTAACATCTCTTCCTCTGATGATGATGAGGATATTTCAATGGAAATCGAAATGGAAAAACCTATCCCTGAGTGTAACCAAGACAACTTACCAAACTCCGGATGTCCACCAACAAGGATACAACATTCTAACTTTGAATCCTTACCAACCGTGTCTACCGAAGACGAAACTAATTCTTCTATGGAGAAAACTCCTGAAAGAGTTCCAGCGGCACTAACTTATCGAGAAATTCCAAAATCATCCGATTCAGAATATATTCCGACATGCCGAAATAGAACTAGACGTGTTAAAAGAACTAATAAGAAACCAACGCGATCCCGCGAAATAGAAATATATGATATATCACGTCCAAACGTAATATCGAGTGACAACTTACCTGAAGTTAGAAGTGCCAAGCAAAGAAAGACGGTGTCCAATACAAATGATACTGTAGCAAGGACAAATAGACTTCCAACCGTGCTACGAACTCTAGACTCAAACAACATTGACACGCTGCATGTTGCCAGTACTGGTGAAGAAGTGTCCATCGAAAGACTTTCAAGCATGGCTCTTCAGGAAGCGAAGAACAATTCCGCCAGAACTAATCAAGCTAATTCTCTTACTGATTGGTTTCCAGTAGGCGCAATGCCGATACCTGACCAGAGGTATCTATCCGTTCACGATGGAACATATATCAGCGACTCACAAGATGTGGGTGATACTGACCTCACTCCTGCTGTAACCAGGCTAGTTACTGAAGAGAATTCAATCGAATCTCCTCCATCGTTGGATTCATCGCCTCCAAATACCTCATTTAACGCGGCTCTAACTGCTATTATCCATAGCACAAAAAAAGGAAACCCGAAAACCTATGCCCAAGCAATGGGAAGGCCTGACTTTCAAGAATGGCACAACGCATGCCTCAAGGAACTTTCCGCGTTCAAAGATCACAATACGTACAAATTGGTGTCTCTTCCAAAGCAAAGAAGAGCTCTTGGATCGCGCTGGGTATTCACAATAAAAGACTCCGGGACGTACAAAGCTCGCCTTGTCGCCCAAGGACATACTCAAAAGGCTGGTATTGACTATCAAGAAACTTTTGCACCAGTCATTCGATATGACTCTGTTAGATTATTTCTGGCCCTTGCTAGCTGCCTCAAACTAATAGTATATCAGATGGACGTTGACACCGCGTTTCTAAACTCAAAAATGAATGAGCCGGTATACGTAAAACAACCACCCGGATTTATTAATGAAAGTAATCCCGACTATGTATGGGAACTATACGGCGGTATGTATGGACTCAAGCAAGCCCCATTACTATGGAACGAACATATCAACAATACTCTTCAAAAGATTGGTTTTCGTCGACATGAAGGCGAACATGGCTTATACTTTCGTTCCACATCTGATGGTCCCATCTACATTGCCCTATACGTAGACGACTTACTTGTTGCTGCTCCCTCTCCGAAAATATATGACAGGGTTAAGCAGAAACTAACGAAGTTATACTCAATGAAGGATCTAGGTAAAGTTGACAAATTCCTCGGTCTTAACATTAATCAATTTTCAAATGGAGACATCACTCTCTCACTTCAAGACTATATTGCTAAAGCTGCATCTGAAAGCGAAATAAACATATGTAAGCCTACACAGACTCCGCTCTGTGACTCAAAGCCTCTTTTCGAAACAACTTCCCCGCACCTAAAGGACATCACTCCTTATCAGAGCATAGTTGGACAGCTTCTCTTTTGTGCAAATACTGGTCGTCCTGACATATCTTATCCGGTCTCACTACTCTCCAGGTTTCTTCGCGAACCTCGCGCAATCCATTTGGAGTCTGCTCGACGAGTTCTACGGTACCTATATACCACCAGAAGTATGTGTCTCAAGTATCGTTCTGGATCTCTGTTGGCACTAACTGTATATTGTGATGCATCTCATGGAGCAATTCACGATCTCCCACACTCTACTGGGGGGTACGTGACTCTACTTGCTGGTGCTCCAGTTACGTGGTCATCAAAGAAACTCAAGGGTGTGATTCCTGTATCATCTACTGAGGCAGAATACATTACTGCAAGTGAAACTGTCATGGAGATAGAATGGATTCAAAACTTGTTTGAACACTTAGGCCAGCCACTTATCTCATCAACATTATACGTAGATAATGAACCTGCTATAAAACTATCTAAACATCCTGTATTTCACACGAGAACAAAACACATTGCCTTGAGATATCACAAGCTAAGAAGTGCAGTGGCAGCAGGCATAATTACCATAGAGCATGTTATTACAAAGAGACAAGTTGCTGACATATTTACAAAAATCCTTCCAGCAGAATCATTCAAAGCACATAGGGCTGTCATGGTGAGGGAACCAGAAACTGCAAAATAACCACTCTCATGCGTATTCAGTTATGGGGGGA ->TY5-LTR#LTR/Copia -TGTTGAATGTGATAACCCAAAAGCATGATATGGGTAATGTTTCAGTACTGTTTCAGAATTGTTTCAGTAATGTTTTAGACAAGGAAAACATAGAGCAGCAAACCTCCGATCCGACAGTACTTAAGAAACCATAGTTTCTGTGTACAAGAGTAGTACCTATGTAATTCTTACATTTACATAACATATAGAAAGGTCCAATAAACTTACAACATTATGACATATAAGCTAGATCGTAATTCACTACGTCAACA ->TY5p-I#LTR/Copia -GGTTATGAGCCCTGAGAGCAATGCTTCAGAGACCATAATTAATCTATCTAATCCCAACAATTATAAACAGTGGCTGTACGGTATCGAGACCGCTGCTGAATATGCTAACGAATATATGAACGAATTCGTTCATACCGGAGATATCCAATCAATGAAAAGGGATTACAATCTCAGCGCGAATGATGAAAGCTTTGTCAAAACCGTATTTAACAGTTTCCTGGTAAAGCTCTACAAGAAAACTATCGTGGGTGAAGCTGCATGTGAAATGAACTGGATATGTGATGATTCACTTGGAAGGGTCTCTGCTTATGATATTTTCTCGCACTTCGAAGAAAACTATAATGAAGTCACTATTGGATCCAGGCTTACTCTTATAGAGGACTTACCAAATATATCCTCCAAGCCTGTAGATGAAATCGCTTCCTTTTTTGAAAACCCTATTCACAATGCTTGAAGACAATAGCGAAGAACAGGACAAAAAGAAAAGACGCGATACCAATATCGCGTTGCTATTAATGACCTTCTTACCCGAGTTAAAGGAATCATTCCACGAGAAATTCGGTGACTCTAAAGCTCTTCAGCTGTCACAAGTCATTAGATTCTGTAAATTAAAGGCGTCATCGAATTCATTATCTTCAGTCTCAGATGCATTGGTTGCACAAGACAGAAGAAGCTATCAAAAGAAAGGAAATAAGGGATGTATGATTTGTGGGGCTGATCATCGCTTAAGCAACTGTTCTCTGCTTAAAAGAAGAATACCAGAAGCCAGAATCTTTAAATTATATCCTAATGACAAGACGAATAGATCTTCATCTGCTAGTGTTGCGATTCCTGACTATGAAACGCAAGGCCAAACAGCAGGACAGATAACACCAAAGTCCTGGCTCTGTATGTTATCTTCGACCGTCCCAGCTACCAAATCCTCAGATTGGATTTTTGACACAGGATGTACTTCACACATGTGCCACGACCGTTCTATGTTCTCATCATTTACTAGATCCTCTAAGAAAGACTTTGTCAGAGGAGTCGGCGGTTCCATACCCATCATGGGCTCCGGGACTGTAAACATCGGCACTGTTCAATTAAATGACGTATCCTACGTCCCTGATTTACCAGTCAACCTAATATCCATTTGGAAACTATGTGCTAAATCCAACTCTTCTGTTACGTTCACAAAAGAGGGTGTCACTGTGAAATCACCTGATGACGTGATTTCTACGGCTGGGAAGTTAAACAATTATCTGTACATTTTCGATGATCTTACGCCCGTAACTACCTTCTCTTCGCAAAATTACTTCTGCTCTAAAACATTGGATTCATCTAAAATGATAACTTCCGCAGCGTTTCATACCGTTGCAGATAAAATGTTGTCGCAACACATTTCTCCCACTGCTCTCCCGGTAAAATGGCATGCTCGTATGGGCCATCCCGGAGCAGATATTTACAATTCCTTGGCTAGAACTCTGCGTTTTCCAAAATTTTAAGACGGCTGAATACACTATTTGTCCTACCTGCTCACTAGCAAAAGGAATCATCAAAAAGGGTAAAGTCTCGCTCAAAAAATATACCCAACCTCTTCAAATGGTACAGGCTGATCTCTGTGGTGGGTTTCGCTACCAAGAGTTTCAGTCAAATAAATATTTTCTTACTATCCGTGATGCCTATAGTCGCTACTACTCTGTAATACATTTAAAATCCAAAGCAGACGCTCCGATAAAATTCATGGAATGGATCAACGAAACCGAACAATACTTTAGCTCCCGGGGTGGATTCAAAGTCGGATCTGTTCGTACAGACAATGGTACAGAATTCGTAAATAAAAATCTTCATGCGTTTTTTAAATCTAAAGGAATAGAGCATCAGTTAACTATTCCATATCATAGTTATCAAAATGGTGCTGTTGAACGTGCACATCGTACCATCGAAGAACGCACTCGTTGTCTCCTTATCGGGGGCGTGTTCCTCCGTCCTTGTGGTCTGAAGCTGTTTCTTGCGCAGTCTATTTAATCAATAGGTCCCCTGTAGTGTCCAAAAATAACAGTATCCCATACTGCCGGTGGTTCAACATCCCCGCAAAAGATTTCGGTATCGCACATCTTCGAATTTTTGGATGTACAGCATACGCAACCTTACAACCTAGTCTTCGAGACGGCAAACTTGCCCCAACTGTCATATCTGGTGTTTATGGTTGGCTATGACTCTAACCATCGAGGATACAGGATTTATCATCCCGAAACTGGCCGCATCTTTGTGAGCAGTCAAGTTCGATTTGACGAACACATGTTTCCTCTTGCTGATACAGAGGCAGTTCACGTCTCTCACGACTTTGCCACTTCCGCTATTGGGGGGGTGTCCAAATATCCTGAAACAGGGTCAACCGTCTCTGCTCCAAAGAACGACGGATCTGACTTGGCAAATTTGCCAATAACTGTTCCCAAAAATGTAAATCAACCAGCACATAAACCTAATACCAGTAACATCTCTTCCTCTGATGATGATGAGGATATTTCAATGGAAATCGAAATGGAAAAACCTATCCCTGAGTGTAACCAAGACAACTTACCAAACTCCGGATGTCCACCAACAAGGATACAACATTCTAACTTTGAATCCTTACCAACCGTGTCTACCGAAGACGAAACTAATTCTTCTATGGAGAAAACTCCTGAAAGAGTTCCAGCGGCACTAACTTATCGAGAAATTCCAAAATCATCCGATTCAGAATATATTCCGACATGCCGAAATAGAACTAGACGTGTTAAAAGAACTAATAAGAAACCAACGCGATCCCGCGAAATAGAAATATATGATATATCACGTCCAAACGTAATATCGAGTGACAACTTACCTGAAGTTAGAAGTGCCAAGCAAAGAAAGACGGTGTCCAATACAAATGATACTGTAGCAAGGACAAATAGACTTCCAACCGTGCTACGAACTCTAGACTCAAACAACATTGACACGCTGCATGTTGCCAGTACTGGTGAAGAAGTGTCCATCGAAAGACTTTCAAGCATGGCTCTTCAGGAAGCGAAGAACAATTCCGCCAGAACTAATCAAGCTAATTCTCTTACTGATTGGTTTCCAGTAGGCGCAATGCCGATACCTGACCAGAGGTATCTATCCGTTCACGATGGAACATATATCAGCGACTCACAAGATGTGGGTGATACTGACCTCACTCCTGCTGTAACCAGGCTAGTTACTGAAGAGAATTCAATCGAATCTCCTCCATCGTTGGATTCATCGCCTCCAAATACCTCATTTAACGCGGCTCTAACTGCTATTATCCATAGCACAAAAAAAAGGAAACCCGAAAACCTATGCCCAAGCAATGGGAAGGCCTGACTTTCAAGAATGGCACAACGCATGCCTCAAGGAACTTTCCGCGTTCAAAGATCACAATACGTACAAATTGGTGTCTCTTCCAAAGCAAAGAAGAGCTCTTGGATCGCGCTGGGTATTCACAATAAAAGACTCCGGGACGTACAAAGCTCGCCTTGTCGCCCAAGGACATACTCAAAAGGCTGGTATTGACTATCAAGAAACTTTTGCACCAGTCATTCGATATGACTCTGTTAGATTATTTCTGGCCCTTGCTAGCTGCCTCAAACTAATAGTATATCAGATGGACGTTGACACCGCGTTTCTAAACTCAAAAATGAATGAGCCGGTATACGTAAAACAACCACCCGGATTTATTAATGAAAGTAATCCCGACTATGTATGGAACTATACGGCGGTATGTATGGACTCAAGCAAGCCCCATTACTATGGAACGAACATATCAACAATACTCTTCAAAAGATTGGTTTTCGTCGACATGAAGGCGAACATGGCTTATACTTTCGTTCCACATCTGATGGTCCCATCTACATTGCCCTATACGTAGACGACTTACTTGTTGCTGCTCCCTCTCCGAAAATATATGACAGGGTTAAGCAGAAACTAACGAAGTTATACTCAATGAAGGATCTAGGTAAAGTTGACAAATTCCTCGGTCTTAACATTAATCAATTTTCAAATGGAGACATCACTCTCTCACTTCAAGACTATATTGCTAAAGCTGCATCTGAAAGCGAAATAAACATATGTAAGCCTACACAGACTCCGCTCTGTGACTCAAAGCCTCTTTTCGAAACAACTTCCCCGCACCTAAAGGACATCACTCCTTATCAGAGCATAGTTGGACAGCTTCTCTTTTGTGCAAATACTGGTCGTCCTGACATATCTTATCCGGTCTCACTACTCTCCAGGTTTCTTCGCGAACCTCGCGCAATCCATTTGGAGTCTGCTCGACGAGTTCTACGGTACCTATATACCACCAGAAGTATGTGTCTCAAGTATCGTTTCTGGATCTCTGTTGGCACTAACTGTATATTGTGATGCATCTCATGGAGCAATTCACGATCTCCCACACTCTACTGGGGGTACGTGACTCTACTTGCTGGTGCTCCAGTTACGTGGTCATCAAAGAAACTCAAGGGTGTGATTCCTGTATCATCTACTGAGGCAGAATACATTACTGCAAGTGAAACTGTCATGGAGATAGAATGGATTCAAAACTTGTTTGAACACTTAGGCCAGCCACTTATCTCATCAACATTATACGTAGATAATGAACCTGCTATAAAAACTATCTAAACATCCTGTATTTCACACGAGAACAAAACACATTGCCTTGAGATATCACAAGCTAAGAAGTGCAGTGGCAGCAGGCATAATTACCATAGAGCATGTTATTACAAAGAGACAAGTTGCTGACATATTTACAAAAATCCTTCCAGCAGAATCATTCAAAGCACATAGGGCTGTCATGGTGAGGGAACCAGAAACTGCAAAATAACCACTCTCATGCGTATTCAGTTATGGGGGGA ->TY5p-LTR#LTR/Copia -TGTTGAATGTGATAACCCAAAAGCATGATATGGGTAATGTTTCAGTACTGTTTCAGAATTGTTTCAGTAATGTTTTAGACAAGGAAAACATAGAGCAGCAAACCTCCGATCCGACAGTACTTAAGAAACCATAGTTTCTGTGTACAAGAGTAGTACCTATGTAATTCTTACATTTTACATAACATATAGAAAGGTCCAATAAACTTACAACATTATGACATATAAGCTAGATCGTAATTCACTACGTCAACA diff --git a/data/YPS138.centromere.fa b/data/YPS138.centromere.fa new file mode 100644 index 0000000..1cd1f9b --- /dev/null +++ b/data/YPS138.centromere.fa @@ -0,0 +1,32 @@ +>CEN1 +ATCACATGTTACTTTTGTAAAATAATTATATTAATATTTAAATATTTCAAAGATATTATTTATTTTATAAATACTTTTACTTAATAAAATTCATGTTTTTGAATTCCGAAATGTTTAA +>CEN10 +AAGTCACGTGCCATATAATTAAACTAAAAATATATTTTCTTATTAGTATAAAATATTATTTTATTTTTTTTAATTAAAATGTTTATATAATATATTGTATATGATTTCCGAAAGCAAA +>CEN11 +GTCACATGACTATATTATTAATTTCAAAATAAATATTATAACATTTTAAAAAAATATAATTAATTTAATTTTCAAAAAAATATAAAATATTATTTGTTCGCGGTGTCCGAACATAAAA +>CEN12 +GTCACGTGTAAATTAATATAATTTATAATTATATTAAATTATTATACTAAATATATAAATTTATTTTATTTAATTTTATTTTTATATAAATTAATGTATTTGATATCCGAAAAGAAAAA +>CEN13 +AATATCACATGACATAAATTGAAAATGTTTCATTTTTTTTATTTTTTTTGTAAATAATTTTACAAGTTAGTAAAAAATATATAGATATATTTTAATGTATATGCTTTCCGAACTTTTAAT +>CEN14 +GTCACGTGTAGCTTTTATACTATATTTTAATTATTTTTAAATATTTCATTTTATATAACTTTTTTTCATTTATATTTCTATTTATTATTTGTATTGTATTTGACGTCCGAAGGTAAAA +>CEN15 +TCACGTGCTATTCTTTCAAAAATATTTTAAAACCTAAAAATGCTTTATTGTAAATTAGATTATTGTTTTCAAAATTTTTATTAAGAGATTCGTTGTATATGACTTCCGAGTACAAAAT +>CEN16 +GTCACCTGACTAATTTAAAACTTTTATTTTATTCTTTTTTTAATTTCTAAATTTCTAAATATAAATTAAATAAAAATAAACACAATTTCTTTTGTTTTTCATTTCCGAAAGTAAAAA +>CEN2 +GTCACATGATAAAACTAACAGTAGAATATTAAATAAAATAATATTATATATATAATAATTATTAAAAAATATAATTATTATAAAATTTAAAGTTGGTTTTGTTTTCCGAACATAAAAA +>CEN3 +ATCACATGACTATTTAAATTAAAAAATATATTTAAAAATTTTATTCTATATCTATTTTATGTTTATCAATAATAAAACATTAAAATATCAAATGTATATGTTTTCCGAAAAATAAAAA +>CEN4 +TGATCACATGATATACTTTAAATTATTTTATTATTATATTATTTATATAAAACAATAGTAATAAAATGTTTTTAAAAAAAGGCAAGATATTCTTAGTATCTGATTTCCGAACAGGAAAA +>CEN5 +GTCACGTGATTAAAAAAGAATTCTAAAAATTTATTGTTTTTTATTTAATATTGTTTATTATTTAAAAAATAAAAATATAAAATGTATTTGAGTTGTTTTAGAATTCCGAAACAAAAAA +>CEN6 +GTCACGTGTACATAATTTATATATTTTTTAAAATATTTAATAAATTTATAAAAAAATGCTTTAAAAATTAAAAATGAGAAAAAATATACACAGGTGTTTGATTTCCGAAGTTATAAA +>CEN7 +GCACGTGTATGTTTTTAATATTTTCTATTTTATAAATAAATATTATTAAAGATATTAAATTAATAAATAAGTATAATATTTTTTAAATACCATTGGTTTTGCTTTCCGAACAATTAAA +>CEN8 +GTCACATGACCTCTATTAAATAATTTTTAAAATAAGTTATTTTTCTATAAATAATATATTTGATTTCAAAATTTCATTGTTAAATATTTTCCGGGTTTTGTTTTCCGAAGCAAAAAT +>CEN9 +ATCACGTGAGTACTAAATAATATTTTTAAATTACTTTTAAAATTTATTTATATATTTAATATATTTATATTTTTTTCTTAAAATATTTATTGATGTTCTTGTTTTCCGAAATCTTTTT diff --git a/data/fuzzy_defragmentation.txt b/data/fuzzy_defragmentation.txt index 507527a..388928c 100644 --- a/data/fuzzy_defragmentation.txt +++ b/data/fuzzy_defragmentation.txt @@ -1,5 +1,6 @@ TY1TY2 TY1-LTR TY2-LTR TY1p-LTR TY2p-LTR TY1-I TY1p-I TY2-I TY2p-I TY3 TY3-I TY3p-I TY3-LTR TY3p-LTR -TY4 TY4-I TY4p-I TY4-LTR TY4p-LTR +TY4 TY4-I TY4p-I TY4-LTR TY4p-LTR TY5 TY5-I TY5p-I TY5-LTR TY5p-LTR +TSU4 TSU4-I TSU4b-I TSU4p-I TSU4-LTR TSU4b-LTR TSU4p-LTR diff --git a/data/te_proteins.fasta.gz b/data/te_proteins.fasta.gz index 1941590..2aadafc 100644 Binary files a/data/te_proteins.fasta.gz and b/data/te_proteins.fasta.gz differ diff --git a/install_dependencies.sh b/install_dependencies.sh index 85ebabf..ee06505 100755 --- a/install_dependencies.sh +++ b/install_dependencies.sh @@ -1,13 +1,72 @@ #!/bin/bash -# last update: 2020/09/10 +# last update: 2022/12/21 set -e -o pipefail LRSDAY_HOME=$(pwd) BUILD="build" +lite_installation="no"; mainland_china_installation="no"; ######################### -while getopts ":hc" opt +timestamp () { + date +"%F %T" +} + +clean () { + dir=$1 + if [ -d $dir ] + then + echo "remove previously failed installation in $BUILD/$dir" + rm -rf $dir + fi +} + +download () { + url=$1 + download_location=$2 + echo "Downloading $url to $download_location" + wget -c --no-check-certificate $url -O $download_location +} + +clone () { + url=$1 + dir=$(basename $url) + echo "run clone for \"git clone $url\"" + git clone $url --depth 1 + cd $dir + git fetch --unshallow +} + +tidy_version () { + echo "$1" | awk -F. '{ printf("%d%03d%03d%03d\n", $1,$2,$3,$4); }'; +} + +check_installed () { + if [ -e "$1/installed" ]; then + echo "installed" + else + echo "" + fi +} + +note_installed () { + touch "$1/installed" +} + +echo "" +echo "" +echo "##################################################################" +echo "### ###" +echo "### Welcome to LRSDAY ###" +echo "### ###" +echo "##################################################################" +echo "" +echo "" +echo "[$(timestamp)] Installation starts ..." +echo "" + + +while getopts ":hlc" opt do case "${opt}" in h) @@ -15,6 +74,10 @@ do echo "bash install_dependencies.sh" echo "When installing within mainland China, please run this script with the '-c' option >" echo "bash install_dependencies.sh -c";; + l) + echo "Detected the '-l' option >" + echo "Set installation mode as 'lite' by skipping the installation of a few non-essential dependencies" + lite_installation="yes";; c) echo "Detected the '-c' option >" echo "Set installation location as 'mainland_china'" @@ -27,7 +90,7 @@ echo ""; if [ -z "$MAKE_JOBS" ] then - echo "Defaulting to 2 concurrent jobs when executing make. Override with MAKE_JOBS=" + echo "[$(timestamp)] Defaulting to 2 concurrent jobs when executing make. Override with MAKE_JOBS=" MAKE_JOBS=2 fi @@ -38,100 +101,117 @@ if [ ! -z "$INSTALL_DEPS" ]; then xargs -a debiandeps sudo apt-get install -y fi +MINICONDA2_VERSION="py27_4.8.3" # released on 2020.06.06 +if [[ "$mainland_china_installation" == "no" ]] +then + MINICONDA2_DOWNLOAD_URL="https://repo.anaconda.com/miniconda/Miniconda2-${MINICONDA2_VERSION}-Linux-x86_64.sh" +else + MINICONDA2_DOWNLOAD_URL="https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda2-${MINICONDA2_VERSION}-Linux-x86_64.sh" +fi -MINICONDA3_VERSION="py37_4.8.2" # released on 2020.03.11 +MINICONDA3_VERSION="py37_4.9.2" # released on 2020.11.23 if [[ "$mainland_china_installation" == "yes" ]] then - MINICONDA3_DOWNLOAD_URL="https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-${MINICONDA3_VERSION}-Linux-x86_64.sh" -else MINICONDA3_DOWNLOAD_URL="https://repo.anaconda.com/miniconda/Miniconda3-${MINICONDA3_VERSION}-Linux-x86_64.sh" +else + MINICONDA3_DOWNLOAD_URL="https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-${MINICONDA3_VERSION}-Linux-x86_64.sh" fi -echo "MINICONDA3_DOWNLOAD_URL=$MINICONDA3_DOWNLOAD_URL" # for reads preparation and preprocessing -SRA_VERSION="2.9.6" # released on 2019.03.18 -SRA_DOWNLOAD_URL="https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/${SRA_VERSION}/sratoolkit.${SRA_VERSION}-centos_linux64.tar.gz" - -GUPPY_VERSION="4.0.15" # released on 2020.08.30 -GUPPY_DOWNLOAD_URL="https://mirror.oxfordnanoportal.com/software/analysis/ont-guppy-cpu_${GUPPY_VERSION}_linux64.tar.gz" +GUPPY_VERSION="6.2.1" # released on 2022.06.07 +GUPPY_GPU_DOWNLOAD_URL="https://mirror.oxfordnanoportal.com/software/analysis/ont-guppy_${GUPPY_VERSION}_linux64.tar.gz" +GUPPY_CPU_DOWNLOAD_URL="https://mirror.oxfordnanoportal.com/software/analysis/ont-guppy-cpu_${GUPPY_VERSION}_linux64.tar.gz" PORECHOP_VERSION="0.2.4" # PORECHOP_GITHUB_COMMIT_VERSION="109e437" # committed on 2018.10.19 PORECHOP_DOWNLOAD_URL="https://github.com/rrwick/Porechop.git" -FILTLONG_VERSION="0.2.0" # -FILTLONG_GITHUB_COMMIT_VERSION="13504b7" # committed on 2019.05.15 +FILTLONG_VERSION="0.2.1" # +FILTLONG_GITHUB_COMMIT_VERSION="c56f02b" # committed on 2021.07.01 FILTLONG_DOWNLOAD_URL="https://github.com/rrwick/Filtlong.git" -NANOPLOT_VERSION="1.29.1" # released on 2020.05.05 -NUMPY_VERSION="1.16.3" -SCIPY_VERSION="1.2.1" -NANOPLOT_DOWNLOAD_URL="https://github.com/wdecoster/NanoPlot.git" +NANOPLOT_VERSION="1.40.0" # released on 2022.04.08 # for genome assembly -MINIMAP2_VERSION="2.17" # released on 2019.05.05 +MINIMAP2_VERSION="2.22" # released on 2021.08.07 MINIMAP2_DOWNLOAD_URL="https://github.com/lh3/minimap2/releases/download/v${MINIMAP2_VERSION}/minimap2-${MINIMAP2_VERSION}_x64-linux.tar.bz2" -CANU_VERSION="2.1.1" # released on 2020.10.19 +CANU_VERSION="2.2" # released on 2021.08.27 CANU_DOWNLOAD_URL="https://github.com/marbl/canu/releases/download/v${CANU_VERSION}/canu-${CANU_VERSION}.Linux-amd64.tar.xz" -FLYE_VERSION="2.8.2" # released on 2020.12.10 +# WHATSHAP_VERSION="1.1" + +FLYE_VERSION="2.9.1" # released on 2021.08.22 FLYE_DOWNLOAD_URL="https://github.com/fenderglass/Flye/archive/${FLYE_VERSION}.tar.gz" WTDBG2_VERSION="2.5" # -WTDBG2_GITHUB_COMMIT_VERSION="b77c565" # committed on 2019.12.11 +WTDBG2_GITHUB_COMMIT_VERSION="b77c565" # committed on 2020.12.11 WTDBG2_DOWNLOAD_URL="https://github.com/ruanjue/wtdbg2.git" + SMARTDENOVO_VERSION="" # -SMARTDENOVO_GITHUB_COMMIT_VERSION="5cc1356" # committed on 2018.02.19 +SMARTDENOVO_GITHUB_COMMIT_VERSION="8488de9" # committed on 2021.02.24 SMARTDENOVO_DOWNLOAD_URL="https://github.com/ruanjue/smartdenovo" -RAVEN_VERSION="1.3.0" # released on 2020.12.17 -RAVEN_DOWNLOAD_URL="https://github.com/lbcb-sci/raven/releases/download/${RAVEN_VERSION}/raven-v${RAVEN_VERSION}.tar.gz" +RAVEN_VERSION="1.8.1" # released on 2022.08.04 +RAVEN_GITHUB_COMMIT_VERSION="0ea10b3" +#RAVEN_DOWNLOAD_URL="https://github.com/lbcb-sci/raven/releases/download/${RAVEN_VERSION}/raven-v${RAVEN_VERSION}.tar.gz" -SHASTA_VERSION="0.7.0" # -SHASTA_GITHUB_COMMIT_VERSION="f22692f" # committed on 2021.01.10 -SHASTA_DOWNLOAD_URL="https://github.com/chanzuckerberg/shasta/releases/download/${SHASTA_VERSION}/shasta-Linux-${SHASTA_VERSION}" +SHASTA_VERSION="0.11.1" # +SHASTA_GITHUB_COMMIT_VERSION="b739b1e" +SHASTA_DOWNLOAD_URL="https://github.com/paoloshasta/shasta/releases/download/${SHASTA_VERSION}/shasta-Linux-${SHASTA_VERSION}" # for assembly polishing PB_ASSEMBLY_VERSION="0.0.8" # -BAX2BAM_VERSION="0.0.9" # -PBMM2_VERSION="1.3.0" # +BAX2BAM_VERSION="0.0.11" # +PBMM2_VERSION="1.9.0" # -NANOPOLISH_VERSION="0.13.2" # -NANOPOLISH_GITHUB_COMMIT_VERSION="c7b5a75" # commited on 2019.03.27 -NANOPOLISH_DOWNLOAD_URL="https://github.com/jts/nanopolish.git" +NANOPOLISH_VERSION="0.14.0" # released on 2021.04.06 PARALLEL_VERSION="20180722" # released on 2018.07.22 PARALLEL_DOWNLOAD_URL="http://ftp.gnu.org/gnu/parallel/parallel-${PARALLEL_VERSION}.tar.bz2" -RACON_VERSION="1.4.13" # released on 2020.03.25 -RACON_DOWNLOAD_URL="https://github.com/lbcb-sci/racon/releases/download/${RACON_VERSION}/racon-v${RACON_VERSION}.tar.gz" +RACON_VERSION="1.5.0" # released on 2021.03.26 +#RACON_GITHUB_COMMIT_VERSION="9119181" +#RACON_DOWNLOAD_URL="https://github.com/lbcb-sci/racon/releases/download/${RACON_VERSION}/racon-v${RACON_VERSION}.tar.gz" +#RACON_DOWNLOAD_URL="https://github.com/lbcb-sci/racon.git" -MEDAKA_VERSION="1.2.0" # released on 2020.11.07 +MEDAKA_VERSION="1.7.2" # released on 2022.09.21 MEDAKA_DOWNLOAD_URL="https://github.com/nanoporetech/medaka/archive/v${MEDAKA_VERSION}.tar.gz" -MARGINPOLISH_VERSION="1.3.0" # released on 2020.03.04 -MARGINPOLISH_GITHUB_COMMIT_VERSION="5492204" # commited on 2020.03.25 -MARGINPOLISH_DOWNLOAD_URL="https://github.com/UCSC-nanopore-cgl/marginPolish.git" +# MARGINPOLISH_VERSION="1.3.0" # released on 2020.03.04 +# MARGINPOLISH_GITHUB_COMMIT_VERSION="5492204" # commited on 2020.03.25 +# # MARGINPOLISH_DOWNLOAD_URL="https://github.com/UCSC-nanopore-cgl/marginPolish.git" +# MARGINPOLISH_DOWNLOAD_URL="https://github.com/UCSC-nanopore-cgl/MarginPolish/archive/refs/tags/v${MARGINPOLISH_VERSION}.tar.gz" -PEPPER_VERSION="0.1" # released on 2020.12.10 -PEPPER_GITHUB_COMMIT_VERSION="e938ca7" # commited on 2020.11.24 -PEPPER_DOWNLOAD_URL="https://github.com/kishwarshafin/pepper.git" +# HELEN_VERSION="0.0.1" # released on 2020.12.10 +# HELEN_GITHUB_COMMIT_VERSION="a075e9f" # commited on 2020.10.28 +# HELEN_DOWNLOAD_URL="https://github.com/kishwarshafin/helen.git" + +# HOMOPOLISH_VERSION="0.2.1" # released on 2020.12.10 +# HOMOPOLISH_DOWNLOAD_URL="https://github.com/ythuang0522/homopolish" + +# MARGIN_VERSION="2.3.1" # released on 2022.03.25 +# MARGIN_DOWNLOAD_URL="https://github.com/UCSC-nanopore-cgl/margin" +# MARGIN_GITHUB_COMMIT_VERSION="9bf845f" # commited on 2022.03.25 + +# PEPPER_VERSION="0.4" # released on 2020.12.10 +# PEPPER_GITHUB_COMMIT_VERSION="734d226" # commited on 2021.03.08 +# PEPPER_DOWNLOAD_URL="https://github.com/kishwarshafin/pepper.git" # for assembly scaffolding RAGOUT_VERSION="2.3" # released on 2020.03.18 -RAGOUT_DOWNLOAD_URL="https://github.com/fenderglass/Ragout/archive/${RAGOUT_VERSION}.tar.gz" +RAGOUT_GITHUB_COMMIT_VERSION="7b92fe7" # commited on 2020.12.09" +RAGOUT_DOWNLOAD_URL="https://github.com/fenderglass/Ragout.git" -RAGOO_VERSION="1.11" # released on 2019.09.03 -RAGOO_DOWNLOAD_URL="https://github.com/malonge/RaGOO/archive/v${RAGOO_VERSION}.tar.gz" +RAGTAG_VERSION="2.1.0" # released on 2021.11.01 -QUAST_VERSION="5.0.2" # one of its dependency needs "csh" to be pre-installed +# QUAST_VERSION="5.0.2" # one of its dependency needs "csh" to be pre-installed HDF_VERSION="1.10.6" # -# HDF_VERSION_prefix=${HDF_VERSION%.*} -# HDF_DOWNLOAD_URL="https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-${HDF_VERSION_prefix}/hdf5-${HDF_VERSION}/src/hdf5-${HDF_VERSION}.tar.gz" +HDF_VERSION_prefix=${HDF_VERSION%.*} +HDF_DOWNLOAD_URL="https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-${HDF_VERSION_prefix}/hdf5-${HDF_VERSION}/src/hdf5-${HDF_VERSION}.tar.gz" # SONLIB_VERSION="" # # SONLIB_GITHUB_COMMIT_VERSION="1afbd97" # committed on 2017.08.09 @@ -141,13 +221,13 @@ HDF_VERSION="1.10.6" # # HAL_GITHUB_COMMIT_VERSION="a2ad656" # committed on 2017.09.09 # HAL_DOWNLOAD_URL="https://github.com/glennhickey/hal.git" -MUMMER4_VERSION="4.0.0beta2" # released on 2017.10.14 +MUMMER4_VERSION="4.0.0rc1" # released on 2020.10.03 MUMMER4_DOWNLOAD_URL="https://github.com/gmarcais/mummer/releases/download/v${MUMMER4_VERSION}/mummer-${MUMMER4_VERSION}.tar.gz" -GNUPLOT_VERSION="5.4.0" # released on 2020.07.01 +GNUPLOT_VERSION="4.6.6" # released on 2015.02.18 GNUPLOT_DOWNLOAD_URL="https://sourceforge.net/projects/gnuplot/files/gnuplot/${GNUPLOT_VERSION}/gnuplot-${GNUPLOT_VERSION}.tar.gz" -BEDTOOLS_VERSION="2.29.2" # released on 2019.12.18 +BEDTOOLS_VERSION="2.30.0" # released on 2021.01.24 BEDTOOLS_DOWNLOAD_URL="https://github.com/arq5x/bedtools2/releases/download/v${BEDTOOLS_VERSION}/bedtools-${BEDTOOLS_VERSION}.tar.gz" SPADES_VERSION="3.14.1" # released on 2020.05.02 @@ -156,28 +236,31 @@ SPADES_DOWNLOAD_URL="http://cab.spbu.ru/files/release${SPADES_VERSION}/SPAdes-${ PRODIGAL_VERSION="2.6.3" # released on 2016.02.12 PRODIGAL_DOWNLOAD_URL="https://github.com/hyattpd/Prodigal/archive/v${PRODIGAL_VERSION}.tar.gz" -CAP_VERSION="" # see http://seq.cs.iastate.edu/cap3.html -CAP_DOWNLOAD_URL="http://seq.cs.iastate.edu/CAP3/cap3.linux.x86_64.tar" +CAP3_VERSION="" # see http://seq.cs.iastate.edu/cap3.html +CAP3_DOWNLOAD_URL="https://github.com/yjx1217/CAP3.git" # "http://seq.cs.iastate.edu/CAP3/cap3.linux.x86_64.tar" BWA_VERSION="0.7.17" # released on 2017.10.23 BWA_DOWNLOAD_URL="http://downloads.sourceforge.net/project/bio-bwa/bwa-${BWA_VERSION}.tar.bz2" -SAMTOOLS_VERSION="1.11" # released on 2020.09.22 +SAMTOOLS_VERSION="1.16.1" # released on 2022.09.02 +HTSLIB_VERSION="1.16" # released on 2022.09.02 SAMTOOLS_DOWNLOAD_URL="https://github.com/samtools/samtools/releases/download/${SAMTOOLS_VERSION}/samtools-${SAMTOOLS_VERSION}.tar.bz2" -CIRCLATOR_VERSION="1.5.5" # released on 2018.01.31 +CIRCLATOR_VERSION="1.5.5" # released on 2020.10.29 CIRCLATOR_DOWNLOAD_URL="https://github.com/sanger-pathogens/circlator/archive/v${CIRCLATOR_VERSION}.tar.gz" TRIMMOMATIC_VERSION="0.38" # TRIMMOMATIC_DOWNLOAD_URL="http://www.usadellab.org/cms/uploads/supplementary/Trimmomatic/Trimmomatic-${TRIMMOMATIC_VERSION}.zip" GATK3_VERSION="3.6-6" # -GATK3_DOWNLOAD_URL="https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/${SRA_VERSION}/GenomeAnalysisTK.jar" +GATK3_DOWNLOAD_URL="https://github.com/yjx1217/GATK3_Archive/raw/main/gatk3.jar.gz" PICARD_VERSION="2.23.4" # released on 2020.09.03 PICARD_DOWNLOAD_URL="https://github.com/broadinstitute/picard/releases/download/${PICARD_VERSION}/picard.jar" -PILON_VERSION="1.23" # released on 2018.11.27 +# HAPOG_VERSION="1.2" # released on 2021.10.01 + +PILON_VERSION="1.24" # released on 2021.01.29 PILON_DOWNLOAD_URL="https://github.com/broadinstitute/pilon/releases/download/v${PILON_VERSION}/pilon-${PILON_VERSION}.jar" EXONERATE_VERSION="2.2.0" # @@ -185,12 +268,13 @@ EXONERATE_DOWNLOAD_URL="http://ftp.ebi.ac.uk/pub/software/vertebrategenomics/exo BLAST_VERSION="2.2.31" # RMBLAST_VERSION="2.2.28" # -BLAST_DOWNLOAD_URL="ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/${BLAST_VERSION}/ncbi-blast-${BLAST_VERSION}+-x64-linux.tar.gz" -RMBLAST_DOWNLOAD_URL="ftp://ftp.ncbi.nlm.nih.gov/blast/executables/rmblast/${RMBLAST_VERSION}/ncbi-rmblastn-${RMBLAST_VERSION}-x64-linux.tar.gz" +BLAST_DOWNLOAD_URL="http://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/${BLAST_VERSION}/ncbi-blast-${BLAST_VERSION}+-x64-linux.tar.gz" +RMBLAST_DOWNLOAD_URL="http://ftp.ncbi.nlm.nih.gov/blast/executables/rmblast/${RMBLAST_VERSION}/ncbi-rmblastn-${RMBLAST_VERSION}-x64-linux.tar.gz" SNAP_VERSION="" # SNAP_GITHUB_COMMIT_VERSION="a89d68e" # committed on 2017.05.18 -SNAP_DOWNLOAD_URL="https://github.com/KorfLab/SNAP" +# SNAP_GITHUB_COMMIT_VERSION="bbf2050" # commited on 2022.04.12 +SNAP_DOWNLOAD_URL="https://github.com/KorfLab/SNAP.git" RAPSEARCH_VERSION="2.24" # RAPSEARCH_DOWNLOAD_URL="https://sourceforge.net/projects/rapsearch2/files/RAPSearch${RAPSEARCH_VERSION}_64bits.tar.gz" @@ -202,13 +286,18 @@ SNOSCAN_VERSION="0.9.1" # SNOSCAN_DOWNLOAD_URL="http://eddylab.org/software/snoscan/snoscan.tar.gz" REPEATMASKER_VERSION="open-4-0-7" # +# REPEATMASKER_VERSION="4.1.0" # REPEATMASKER_DOWNLOAD_URL="http://www.repeatmasker.org/RepeatMasker-${REPEATMASKER_VERSION}.tar.gz" -TRF_VERSION="409" # -TRF_DOWNLOAD_URL="http://tandem.bu.edu/trf/downloads/trf${TRF_VERSION}.linux64" +#REPBASE_VERSION="20181026" +REPBASE_VERSION="20170127" +REPBASE_DOWNLOAD_URL="https://github.com/yjx1217/RMRB.git" +TRF_VERSION="409" # +TRF_DOWNLOAD_URL="https://github.com/Benson-Genomics-Lab/TRF/releases/download/v4.09.1/trf409.linux64" REANNOTATE_VERSION="17.03.2015-LongQueryName" -REANNOTATE_DOWNLOAD_URL="https://github.com/yjx1217/REannotate_LongQueryName/archive/version_${REANNOTATE_VERSION}.tar.gz" +REANNOTATE_GITHUB_COMMIT_VERSION="7fdb339" +REANNOTATE_DOWNLOAD_URL="https://github.com/yjx1217/REannotate_LongQueryName" CLUSTALW_VERSION="2.1" # CLUSTALW_DOWNLOAD_URL="http://www.clustal.org/download/${CLUSTALW_VERSION}/clustalw-${CLUSTALW_VERSION}.tar.gz" @@ -217,7 +306,6 @@ MUSCLE_VERSION="3.8.31" # MUSCLE_DOWNLOAD_URL="http://www.drive5.com/muscle/downloads${MUSCLE_VERSION}/muscle${MUSCLE_VERSION}_i86linux64.tar.gz" HMMER_VERSION="3.2.1" # released on 2018.06.13 -#HMMER_DOWNLOAD_URL="http://eddylab.org/software/hmmer3/${HMMER_VERSION}/hmmer-${HMMER_VERSION}-linux-intel-x86_64.tar.gz" HMMER_DOWNLOAD_URL="http://eddylab.org/software/hmmer/hmmer-${HMMER_VERSION}.tar.gz" BAMTOOLS_VERSION="2.4.2" # released on 2017.11.02 @@ -231,12 +319,12 @@ AUGUSTUS_DOWNLOAD_URL="http://bioinf.uni-greifswald.de/augustus/binaries/old/aug EVM_VERSION="1.1.1" # released on 2015.07.03 EVM_DOWNLOAD_URL="https://github.com/EVidenceModeler/EVidenceModeler/archive/v${EVM_VERSION}.tar.gz" -PROTEINORTHO_VERSION="6.0.25" # released on -# PROTEINORTHO_DOWNLOAD_URL="https://www.bioinf.uni-leipzig.de/Software/proteinortho/proteinortho_v${PROTEINORTHO_VERSION}.tar.gz" +PROTEINORTHO_VERSION="6.0.35" # released on 2022.09.15 DIAMOND_VERSION="2.0.6" +#MAKER_VERSION="3.01.03" # MAKER_VERSION="3.00.0-beta" # -MAKER_DOWNLOAD_URL="http://topaz.genetics.utah.edu/maker_downloads/static/maker-${MAKER_VERSION}.tgz" +MAKER_DOWNLOAD_URL="https://github.com/yjx1217/Maker3beta_archive.git" # for MFannot EMBOSS_VERSION="6.5.7" # released on 2012.07.25 @@ -275,13 +363,13 @@ GRAB_FASTA_DOWNLOAD_URL="https://github.com/BFL-lab/grab-fasta.git" # for MFannot MFANNOT_DATA_GITHUB_COMMIT_VERSION="b039ac5" # committed on 2016.12.07 MFANNOT_VERSION="1.35" # -MFANNOT_GITHUB_COMMIT_VERSION="6472b97" # committed on 2018.10.31 +MFANNOT_GITHUB_COMMIT_VERSION="6472b97" # committed on 2018.10.31 # "104e1c5" # committed on 2021.02.10 MFANNOT_DATA_DOWNLOAD_URL="https://github.com/BFL-lab/MFannot_data.git" MFANNOT_DOWNLOAD_URL="https://github.com/BFL-lab/MFannot.git" -# downloading URLs for dependencies -# QUAST_DOWNLOAD_URL="https://downloads.sourceforge.net/project/quast/quast-${QUAST_VERSION}.tar.gz" - +# # GFF3 +# GFF3TOOLKIT_VERSION="2.1.0" # released on 2021.12.09 +# GFF3TOOLKIT_DOWNLOAD_URL="https://github.com/NAL-i5K/GFF3toolkit" # UCSC Utilities BLAT_DOWNLOAD_URL="http://hgdownload.soe.ucsc.edu/admin/exe/linux.x86_64/blat/blat" @@ -290,141 +378,228 @@ PSLSORT_DOWNLOAD_URL="http://hgdownload.soe.ucsc.edu/admin/exe/linux.x86_64/pslS PSLSCORE_DOWNLOAD_URL="http://hgdownload.soe.ucsc.edu/admin/exe/linux.x86_64/pslScore" PSLCDNAFILTER_DOWNLOAD_URL="http://hgdownload.soe.ucsc.edu/admin/exe/linux.x86_64/pslCDnaFilter" + # Create the $BUILD directory for dependency installation -echo "" -echo "Create $BUILD directory if it does not already exist" -mkdir -p $BUILD + +if [ -d $BUILD ] +then + echo "" + echo "[$(timestamp)] Detected previously generated $BUILD directory." +else + echo "[$(timestamp)] Create the new $BUILD directory." + mkdir $BUILD + echo "" +fi + cd $BUILD build_dir=$(pwd) echo "" -echo "Download and install all the dependencies" +echo "[$(timestamp)] Download and install all the dependencies" echo "" # Downloading all the dependencies -download () { - url=$1 - download_location=$2 - echo "Downloading $url to $download_location" - wget --no-check-certificate $url -O $download_location -} - -download_and_extract() { - url=$1 - download_location=$2 - echo "Downloading $url to $download_location" - wget --no-check-certificate $url -O $download_location - if [[ $download_location =~ \.bz2$ ]]; then - extract_command="tar -xjf" - elif [[ $download_location =~ \.xz$ || $download_location =~ \.tar$ ]]; then - extract_command="tar -xf" - else - extract_command="tar -zxf" - fi - $($extract_command $download_location) - rm $download_location - -} - -check_installed() { - if [ -e "$1/installed" ]; then - echo "installed" - else - echo "" - fi -} - -note_installed() { - touch "$1/installed" -} # ---------- set Perl & Python environment variables ------------- PYTHONPATH="$build_dir" PERL5LIB="$build_dir:$PERL5LIB" PERL5LIB="$build_dir/cpanm/perlmods/lib/perl5:$PERL5LIB" -cpanm_dir=$build_dir/cpanm -if [ ! -e "$build_dir/cpanm" ]; then - mkdir -p $build_dir/cpanm +echo "" +echo "[$(timestamp)] Installing Perl modules ..." +cpanm_dir=$build_dir/cpanm +if [ -z $(check_installed $cpanm_dir) ]; then + clean "$build_dir/cpanm" + mkdir -p $cpanm_dir cd $cpanm_dir - wget --no-check-certificate -O - https://cpanmin.us/ > cpanm + # wget -c --no-check-certificate -O - https://cpanmin.us/ > cpanm + # work around for the unstable downloading issue + cp $LRSDAY_HOME/misc/cpanm . + chmod +x cpanm mkdir -p perlmods + $cpanm_dir/cpanm -l $cpanm_dir/perlmods --notest --skip-installed Test::More@1.302086 + $cpanm_dir/cpanm -l $cpanm_dir/perlmods --notest --skip-installed Text::Soundex@3.05 + $cpanm_dir/cpanm -l $cpanm_dir/perlmods --notest --skip-installed Env@1.04 + $cpanm_dir/cpanm -l $cpanm_dir/perlmods --notest --skip-installed File::Which@1.21 + $cpanm_dir/cpanm -l $cpanm_dir/perlmods --notest --skip-installed Term::ReadKey@2.37 + $cpanm_dir/cpanm -l $cpanm_dir/perlmods --notest --skip-installed Carp@1.38 + $cpanm_dir/cpanm -l $cpanm_dir/perlmods --notest --skip-installed Perl::Unsafe::Signals@0.03 + $cpanm_dir/cpanm -l $cpanm_dir/perlmods --notest --skip-installed Carp::Clan@6.06 + $cpanm_dir/cpanm -l $cpanm_dir/perlmods --notest --skip-installed Bit::Vector@7.4 + $cpanm_dir/cpanm -l $cpanm_dir/perlmods --notest --skip-installed Inline@0.80 + $cpanm_dir/cpanm -l $cpanm_dir/perlmods --notest --skip-installed Inline::C@0.78 + $cpanm_dir/cpanm -l $cpanm_dir/perlmods --notest --skip-installed List::MoreUtils@0.419 + $cpanm_dir/cpanm -l $cpanm_dir/perlmods --notest --skip-installed Acme::Damn@0.08 + $cpanm_dir/cpanm -l $cpanm_dir/perlmods --notest --skip-installed Sys::SigAction@0.23 + $cpanm_dir/cpanm -l $cpanm_dir/perlmods --notest --skip-installed forks@0.36 + $cpanm_dir/cpanm -l $cpanm_dir/perlmods --notest --skip-installed forks::shared@0.36 + $cpanm_dir/cpanm -l $cpanm_dir/perlmods --notest --skip-installed Want@0.29 + $cpanm_dir/cpanm -l $cpanm_dir/perlmods --notest --skip-installed IO::All@0.86 + $cpanm_dir/cpanm -l $cpanm_dir/perlmods --notest --skip-installed IO::Prompt@0.997004 + $cpanm_dir/cpanm -l $cpanm_dir/perlmods --notest --skip-installed DBI@1.636 + $cpanm_dir/cpanm -l $cpanm_dir/perlmods --notest --skip-installed Proc::ProcessTable@0.53 + $cpanm_dir/cpanm -l $cpanm_dir/perlmods --notest --skip-installed threads@2.16 + $cpanm_dir/cpanm -l $cpanm_dir/perlmods --notest --skip-installed PerlIO::gzip@0.20 + $cpanm_dir/cpanm -l $cpanm_dir/perlmods --notest --skip-installed ExtUtils::CBuilder@0.280224 + $cpanm_dir/cpanm -l $cpanm_dir/perlmods --notest --skip-installed LWP::Simple@6.26 + $cpanm_dir/cpanm -l $cpanm_dir/perlmods --notest --skip-installed LWP::UserAgent + $cpanm_dir/cpanm -l $cpanm_dir/perlmods --notest --skip-installed Bio::Perl@1.007001 + if [ ! -z "$USE_POSTGRES" ]; then + # need $POSTGRES_HOME pre-defined + $cpanm_dir/cpanm -l $cpanm_dir/perlmods --notest --skip-installed DBD::Pg + else + $cpanm_dir/cpanm -l $cpanm_dir/perlmods --notest --skip-installed DBD::SQLite@1.54 + fi + note_installed $cpanm_dir fi -# Testing the packages when they are getting installed slows them down. Is this absolutely required? -xargs -a "$LRSDAY_HOME/perldeps" $cpanm_dir/cpanm -l $cpanm_dir/perlmods --notest --skip-installed || (echo "Could not install some Perl modules. See logs for failures" && exit 1) -if [ ! -z "$USE_POSTGRES" ]; then - # need $POSTGRES_HOME pre-defined - $cpanm_dir/cpanm -l $cpanm_dir/perlmods --notest --skip-installed DBD::Pg -else - $cpanm_dir/cpanm -l $cpanm_dir/perlmods --notest --skip-installed DBD::SQLite@1.54 +# ------------- Miniconda2 -------------------- +if [[ $lite_installation == "no" ]] +then + echo "" + echo "[$(timestamp)] Installing miniconda2 ..." + miniconda2_dir="$build_dir/miniconda2/bin" + if [ -z $(check_installed $miniconda2_dir) ]; then + cd $build_dir + clean "$build_dir/miniconda2" + download $MINICONDA2_DOWNLOAD_URL "Miniconda2-${MINICONDA2_VERSION}-Linux-x86_64.sh" + bash Miniconda2-${MINICONDA2_VERSION}-Linux-x86_64.sh -b -p $build_dir/miniconda2 + if [[ "$mainland_china_installation" == "yes" ]] + then + $miniconda2_dir/conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/main + $miniconda2_dir/conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/free + $miniconda2_dir/conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/pro + $miniconda2_dir/conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/msys2 + $miniconda2_dir/conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/bioconda + $miniconda2_dir/conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/conda-forge + + $miniconda2_dir/conda config --add channels https://anaconda.mirrors.sjtug.sjtu.edu.cn/pkgs/main + $miniconda2_dir/conda config --add channels https://anaconda.mirrors.sjtug.sjtu.edu.cn/pkgs/free + $miniconda2_dir/conda config --add channels https://anaconda.mirrors.sjtug.sjtu.edu.cn/pkgs/pro + $miniconda2_dir/conda config --add channels https://anaconda.mirrors.sjtug.sjtu.edu.cn/pkgs/msys2 + $miniconda2_dir/conda config --add channels https://anaconda.mirrors.sjtug.sjtu.edu.cn/cloud/bioconda + $miniconda2_dir/conda config --add channels https://anaconda.mirrors.sjtug.sjtu.edu.cn/cloud/conda-forge + + # $miniconda2_dir/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ + # $miniconda2_dir/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ + # $miniconda2_dir/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/ + # $miniconda2_dir/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/ + # $miniconda2_dir/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ + else + $miniconda2_dir/conda config --add channels defaults + $miniconda2_dir/conda config --add channels bioconda + $miniconda2_dir/conda config --add channels conda-forge + fi + $miniconda2_dir/conda config --set show_channel_urls yes + $miniconda2_dir/conda config --set ssl_verify no + $miniconda2_dir/conda config --set channel_priority flexible + $miniconda2_dir/pip install --timeout 1000 cython==0.29.14 numpy==1.13.1 + rm Miniconda2-${MINICONDA2_VERSION}-Linux-x86_64.sh + note_installed $miniconda2_dir + fi fi # ------------- Miniconda3 -------------------- +echo "" +echo "[$(timestamp)] Installing miniconda3 ..." miniconda3_dir="$build_dir/miniconda3/bin" if [ -z $(check_installed $miniconda3_dir) ]; then cd $build_dir + clean "$build_dir/miniconda3" download $MINICONDA3_DOWNLOAD_URL "Miniconda3-${MINICONDA3_VERSION}-Linux-x86_64.sh" bash Miniconda3-${MINICONDA3_VERSION}-Linux-x86_64.sh -b -p $build_dir/miniconda3 if [[ "$mainland_china_installation" == "yes" ]] then - $miniconda3_dir/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ - $miniconda3_dir/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ - $miniconda3_dir/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/ - $miniconda3_dir/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/ - $miniconda3_dir/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ + $miniconda3_dir/conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/main + $miniconda3_dir/conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/free + $miniconda3_dir/conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/pro + $miniconda3_dir/conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/msys2 + $miniconda3_dir/conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/bioconda + $miniconda3_dir/conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/conda-forge + + $miniconda3_dir/conda config --add channels https://anaconda.mirrors.sjtug.sjtu.edu.cn/pkgs/main + $miniconda3_dir/conda config --add channels https://anaconda.mirrors.sjtug.sjtu.edu.cn/pkgs/free + $miniconda3_dir/conda config --add channels https://anaconda.mirrors.sjtug.sjtu.edu.cn/pkgs/pro + $miniconda3_dir/conda config --add channels https://anaconda.mirrors.sjtug.sjtu.edu.cn/pkgs/msys2 + $miniconda3_dir/conda config --add channels https://anaconda.mirrors.sjtug.sjtu.edu.cn/cloud/bioconda + $miniconda3_dir/conda config --add channels https://anaconda.mirrors.sjtug.sjtu.edu.cn/cloud/conda-forge + + # $miniconda3_dir/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ + # $miniconda3_dir/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ + # $miniconda3_dir/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/ + # $miniconda3_dir/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/ + # $miniconda3_dir/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ else $miniconda3_dir/conda config --add channels defaults $miniconda3_dir/conda config --add channels bioconda $miniconda3_dir/conda config --add channels conda-forge fi + $miniconda3_dir/conda config --set show_channel_urls yes + $miniconda3_dir/conda config --set ssl_verify no + $miniconda3_dir/conda config --set channel_priority flexible + cd $build_dir + rm Miniconda3-${MINICONDA3_VERSION}-Linux-x86_64.sh + note_installed $miniconda3_dir fi -$miniconda3_dir/conda config --set show_channel_urls yes -note_installed $miniconda3_dir -rm Miniconda3-${MINICONDA3_VERSION}-Linux-x86_64.sh + # ----------------- PB-ASSEMBLY ---------------------- -pacbio_dir=$build_dir/conda_pacbio_env/bin -if [ -z $(check_installed $pacbio_dir) ]; then - cd $build_dir - $miniconda3_dir/conda create -y -p $build_dir/conda_pacbio_env python=3.7 - source $miniconda3_dir/activate $build_dir/conda_pacbio_env - $miniconda3_dir/conda install -y hdf5=${HDF_VERSION} - # $miniconda3_dir/conda install -y -c bioconda samtools=${SAMTOOLS_VERSION} openssl - $miniconda3_dir/conda install -y -c bioconda pb-assembly=${PB_ASSEMBLY_VERSION} - # $miniconda3_dir/conda install -y -c bioconda bax2bam=${BAX2BAM_VERSION} - # $miniconda3_dir/conda install -y -c bioconda pbmm2=${PBMM2_VERSION} - source $miniconda3_dir/deactivate +if [[ $lite_installation == "no" ]] +then + echo "" + echo "[$(timestamp)] Installing pb-assembly ..." + pbassembly_dir=$build_dir/pbassembly_conda_env/bin + if [ -z $(check_installed $pbassembly_dir) ]; then + cd $build_dir + clean "$build_dir/pbassembly_conda_env" + $miniconda3_dir/conda create -y -p $build_dir/pbassembly_conda_env + source $miniconda3_dir/activate $build_dir/pbassembly_conda_env + $miniconda3_dir/conda install -y -c bioconda pb-assembly=${PB_ASSEMBLY_VERSION} + source $miniconda3_dir/deactivate + note_installed $pbassembly_dir + fi fi -note_installed $pacbio_dir - -# ------------- SRA Toolkit ------------------- -sra_dir="$build_dir/sratoolkit.${SRA_VERSION}-centos_linux64/bin" -if [ -z $(check_installed $sra_dir) ]; then - cd $build_dir - echo "Download SRAtoolkit-v${SRA_VERSION}" - download_and_extract $SRA_DOWNLOAD_URL sratoolkit.${SRA_VERSION}-centos_linux64.tar.gz - note_installed $sra_dir +# ----------------- BAX2BAM ---------------------- +if [[ $lite_installation == "no" ]] +then + echo "" + echo "[$(timestamp)] Installing bax2bam ..." + bax2bam_dir="$build_dir/bax2bam_conda_env/bin" + if [ -z $(check_installed $bax2bam_dir) ]; then + cd $build_dir + clean "$build_dir/bax2bam_conda_env" + $miniconda2_dir/conda create -y -p $build_dir/bax2bam_conda_env + source $miniconda2_dir/activate $build_dir/bax2bam_conda_env + $miniconda2_dir/conda install -y -c bioconda bax2bam=${BAX2BAM_VERSION} + source $miniconda2_dir/deactivate + note_installed $bax2bam_dir + fi fi # --------------- Porechop ------------------ -porechop_dir="$build_dir/conda_porechop_env/bin" +echo "" +echo "[$(timestamp)] Installing Porechop ..." +porechop_dir="$build_dir/porechop_conda_env/bin" if [ -z $(check_installed $porechop_dir) ]; then cd $build_dir + clean "$build_dir/porechop_conda_env" echo "Download Porechop-v${PORECHOP_VERSION}" - $miniconda3_dir/conda create -y -p $build_dir/conda_porechop_env python=3.7 - source $miniconda3_dir/activate $build_dir/conda_porechop_env + $miniconda3_dir/conda create -y -p $build_dir/porechop_conda_env python=3.7 + source $miniconda3_dir/activate $build_dir/porechop_conda_env $miniconda3_dir/conda install -y -c bioconda porechop=${PORECHOP_VERSION} source $miniconda3_dir/deactivate note_installed $porechop_dir fi # --------------- Filtlong ------------------ +echo "" +echo "[$(timestamp)] Installing Filtlong ..." filtlong_dir="$build_dir/Filtlong/bin" if [ -z $(check_installed $filtlong_dir) ]; then cd $build_dir + clean "$build_dir/Filtlong" echo "Download Filtlong-v${FILTLONG_VERSION}" git clone $FILTLONG_DOWNLOAD_URL cd Filtlong @@ -434,64 +609,100 @@ if [ -z $(check_installed $filtlong_dir) ]; then fi # --------------- minimap2 ------------------ +echo "" +echo "[$(timestamp)] Installing minimap2 ..." minimap2_dir="$build_dir/minimap2-${MINIMAP2_VERSION}_x64-linux" if [ -z $(check_installed $minimap2_dir) ]; then cd $build_dir + clean "$build_dir/minimap2-${MINIMAP2_VERSION}_x64-linux" echo "Download minimap2-v${MINIMAP2_VERSION}" - download_and_extract $MINIMAP2_DOWNLOAD_URL "minimap2-${MINIMAP2_VERSION}.tar.bz2" + download $MINIMAP2_DOWNLOAD_URL "minimap2-${MINIMAP2_VERSION}.tar.bz2" + tar xvjf minimap2-${MINIMAP2_VERSION}.tar.bz2 + rm minimap2-${MINIMAP2_VERSION}.tar.bz2 note_installed $minimap2_dir fi PATH=$minimap2_dir:${PATH} # --------------- samtools ----------------- +echo "" +echo "[$(timestamp)] Installing samtools ..." samtools_dir="$build_dir/samtools-${SAMTOOLS_VERSION}" -htslib_dir="$samtools_dir/htslib-${SAMTOOLS_VERSION}" -tabix_dir="$samtools_dir/htslib-${SAMTOOLS_VERSION}" +htslib_dir="$samtools_dir/htslib-${HTSLIB_VERSION}" +tabix_dir="$samtools_dir/htslib-${HTSLIB_VERSION}" + if [ -z $(check_installed $samtools_dir) ]; then cd $build_dir + clean "$build_dir/samtools-${SAMTOOLS_VERSION}" echo "Download samtools-v${SAMTOOLS_VERSION}" - download_and_extract $SAMTOOLS_DOWNLOAD_URL "samtools-${SAMTOOLS_VERSION}.tar.bz2" + download $SAMTOOLS_DOWNLOAD_URL "samtools-${SAMTOOLS_VERSION}.tar.bz2" + tar xvjf samtools-${SAMTOOLS_VERSION}.tar.bz2 cd $samtools_dir C_INCLUDE_PATH="" ./configure --without-curses; make -j $MAKE_JOBS - cd htslib-${SAMTOOLS_VERSION} - #autoheader - #autoconf + cd $htslib_dir ./configure make -j $MAKE_JOBS cd $build_dir + rm samtools-${SAMTOOLS_VERSION}.tar.bz2 note_installed $samtools_dir fi PATH="$samtools_dir:$htslib_dir:$tabix_dir:${PATH}" # ------------- Canu ------------------- +echo "" +echo "[$(timestamp)] Installing canu ..." canu_dir="$build_dir/canu-${CANU_VERSION}/bin" if [ -z $(check_installed $canu_dir) ]; then cd $build_dir + clean "$build_dir/canu-${CANU_VERSION}" echo "Download Canu-v${CANU_VERSION}" - download_and_extract $CANU_DOWNLOAD_URL "canu-${CANU_VERSION}.tar.xz" + download $CANU_DOWNLOAD_URL "canu-${CANU_VERSION}.tar.xz" + tar xvf canu-${CANU_VERSION}.tar.xz cd $canu_dir ln -s $minimap2_dir/minimap2 . + cd $build_dir + rm canu-${CANU_VERSION}.tar.xz note_installed $canu_dir fi +# # --------------- WhatsHap ----------------- +# echo "" +# echo "[$(timestamp)] Installing WhatsHap ..." +# whatshap_dir="$build_dir/whatshap_conda_env/bin" +# if [ -z $(check_installed $whatshap_dir) ]; then +# cd $build_dir +# # clean "$build_dir/whatshap_conda_env" +# echo "Download whatshap-v${WHATSHAP_VERSION}" +# # $miniconda3_dir/conda create -y -p $build_dir/whatshap_conda_env python=3.9 +# source $miniconda3_dir/activate $build_dir/whatshap_conda_env +# $miniconda3_dir/conda install -y -c bioconda whatshap=${WHATSHAP_VERSION} nomkl +# source $miniconda3_dir/deactivate +# note_installed $whatshap_dir +# fi + + # ------------- Flye ------------------- -#flye_dir="$build_dir/Flye-${FLYE_VERSION}/bin" -flye_dir="$build_dir/conda_flye_env/bin" +echo "" +echo "[$(timestamp)] Installing flye ..." +flye_dir="$build_dir/flye_conda_env/bin" if [ -z $(check_installed $flye_dir) ]; then cd $build_dir - $miniconda3_dir/conda create -y -p $build_dir/conda_flye_env python=3.7 - source $miniconda3_dir/activate $build_dir/conda_flye_env + clean "$build_dir/flye_conda_env" + $miniconda3_dir/conda create -y -p $build_dir/flye_conda_env python=3.7 + source $miniconda3_dir/activate $build_dir/flye_conda_env $miniconda3_dir/conda install -y -c bioconda flye=${FLYE_VERSION} source $miniconda3_dir/deactivate note_installed $flye_dir fi # --------------- wtdbg2 ------------------ +echo "" +echo "[$(timestamp)] Installing wtdbg2 ..." wtdbg2_dir="$build_dir/wtdbg2" if [ -z $(check_installed $wtdbg2_dir) ]; then cd $build_dir + clean "$build_dir/wtdbg2" echo "Download wtdbg2-v${WTDBG2_VERSION}" git clone $WTDBG2_DOWNLOAD_URL cd wtdbg2 @@ -502,9 +713,12 @@ if [ -z $(check_installed $wtdbg2_dir) ]; then fi # --------------- smartdenovo ------------------ +echo "" +echo "[$(timestamp)] Installing smartdenovo ..." smartdenovo_dir="$build_dir/smartdenovo" if [ -z $(check_installed $smartdenovo_dir) ]; then cd $build_dir + clean "$build_dir/smartdenovo" echo "Download smartdenovo-v${SMARTDENOVO_VERSION}" git clone $SMARTDENOVO_DOWNLOAD_URL cd smartdenovo @@ -517,25 +731,31 @@ if [ -z $(check_installed $smartdenovo_dir) ]; then note_installed $smartdenovo_dir fi -# --------------- Ra ------------------ -ra_dir="$build_dir/ra/build/bin" -if [ -z $(check_installed $ra_dir) ]; then - cd $build_dir - echo "Download Ra-v${RA_VERSION}" - git clone --recursive $RA_DOWNLOAD_URL - cd ra - git checkout -f -q $RA_GITHUB_COMMIT_VERSION - mkdir build - cd build - cmake -DCMAKE_BUILD_TYPE=Release .. - make -j $MAKE_JOBS - note_installed $ra_dir -fi +# # --------------- Raven ------------------ +# echo "" +# echo "[$(timestamp)] Installing raven ..." +# raven_dir="$build_dir/raven/build/bin" +# if [ -z $(check_installed $raven_dir) ]; then +# cd $build_dir +# clean "$build_dir/raven" +# echo "Download Raven-v${RAVEN_VERSION}" +# git clone --recursive https://github.com/lbcb-sci/raven.git raven +# cd raven +# git checkout -f -q $RAVEN_GITHUB_COMMIT_VERSION +# mkdir build +# cd build +# cmake -DCMAKE_BUILD_TYPE=Release .. #requires cmake >=3.11 +# make -j $MAKE_JOBS +# note_installed $raven_dir +# fi # --------------- Shasta ------------------ +echo "" +echo "[$(timestamp)] Installing shasta ..." shasta_dir="$build_dir/shasta-${SHASTA_VERSION}" if [ -z $(check_installed $shasta_dir) ]; then cd $build_dir + clean "$build_dir/shasta-${SHASTA_VERSION}" echo "Download Shasta-v${SHASTA_VERSION}" mkdir shasta-${SHASTA_VERSION} cd shasta-${SHASTA_VERSION} @@ -545,286 +765,393 @@ if [ -z $(check_installed $shasta_dir) ]; then note_installed $shasta_dir fi - # --------------- Ragout ------------------ - -ragout_dir="$build_dir/conda_ragout_env/bin" +echo "" +echo "[$(timestamp)] Installing ragout ..." +ragout_dir="$build_dir/ragout_conda_env/bin" +#ragout_dir="$build_dir/ragout_conda_env/Ragout/bin" if [ -z $(check_installed $ragout_dir) ]; then cd $build_dir - $miniconda3_dir/conda create -y -p $build_dir/conda_ragout_env python=3.7 - source $miniconda3_dir/activate $build_dir/conda_ragout_env - $miniconda3_dir/conda install -c bioconda ragout=${RAGOUT_VERSION} + clean "$build_dir/ragout_conda_env" + $miniconda3_dir/conda create -y -p $build_dir/ragout_conda_env python=3.8 + source $miniconda3_dir/activate $build_dir/ragout_conda_env + $miniconda3_dir/conda install -y -c bioconda ragout=${RAGOUT_VERSION} + + # cd $build_dir/ragout_conda_env + # git clone $RAGOUT_DOWNLOAD_URL + # cd Ragout + # git checkout -f -q $RAGOUT_GITHUB_COMMIT_VERSION + # python setup.py build + # pip install -r requirements.txt + # python scripts/install-sibelia.py + source $miniconda3_dir/deactivate note_installed $ragout_dir fi -# --------------- RaGOO ------------------ -ragoo_dir="$build_dir/py3_virtualenv_ragoo/bin" -if [ -z $(check_installed $ragoo_dir) ]; then - cd $build_dir - virtualenv -p $(which python3) py3_virtualenv_ragoo - source py3_virtualenv_ragoo/bin/activate - echo "Download RaGOO-v${RAGOO_VERSION}" - cd py3_virtualenv_ragoo - download_and_extract $RAGOO_DOWNLOAD_URL RaGOO-${RAGOO_VERSION}.tar.gz - # bugbug - cd RaGOO-${RAGOO_VERSION} - #git checkout -f -q $RAGOO_GITHUB_COMMIT_VERSION - pip install numpy==${NUMPY_VERSION} - python3 setup.py install - deactivate - note_installed $ragoo_dir +# --------------- Ragtag ------------------ +echo "" +echo "[$(timestamp)] Installing ragtag ..." +ragtag_dir="$build_dir/ragtag_conda_env/bin" +if [ -z $(check_installed $ragtag_dir) ]; then + cd $build_dir + clean "$build_dir/ragout_ragtag_env" + $miniconda3_dir/conda create -y -p $build_dir/ragtag_conda_env python=3.7 pip + source $miniconda3_dir/activate $build_dir/ragtag_conda_env + #$miniconda3_dir/conda install -y -c bioconda ragtag=${RAGTAG_VERSION} + $ragtag_dir/pip3 install --timeout 1000 ragtag==${RAGTAG_VERSION} + cd $ragtag_dir + ln -s $minimap2_dir/minimap2 . + source $miniconda3_dir/deactivate + note_installed $ragtag_dir fi # --------------- gnuplot ------------------ +echo "" +echo "[$(timestamp)] Installing gnuplot ..." gnuplot_dir="$build_dir/gnuplot-${GNUPLOT_VERSION}/bin" if [ -z $(check_installed $gnuplot_dir) ]; then cd $build_dir + clean "$build_dir/gnuplot-${GNUPLOT_VERSION}" echo "Download gnuplot-v${GNUPLOT_VERSION}" - download_and_extract $GNUPLOT_DOWNLOAD_URL "gnuplot-${GNUPLOT_VERSION}.tar.gz" + download $GNUPLOT_DOWNLOAD_URL "gnuplot-${GNUPLOT_VERSION}.tar.gz" + tar xvzf gnuplot-${GNUPLOT_VERSION}.tar.gz cd "$build_dir/gnuplot-${GNUPLOT_VERSION}" - ./configure --prefix="$build_dir/gnuplot-${GNUPLOT_VERSION}" --disable-wxwidgets + ./configure --prefix="$build_dir/gnuplot-${GNUPLOT_VERSION}" --exec-prefix="$build_dir/gnuplot-${GNUPLOT_VERSION}" --disable-plugins --disable-wxwidgets --with-gd=no --without-latex --with-x=no make -j $MAKE_JOBS make install + cd $build_dir + rm gnuplot-${GNUPLOT_VERSION}.tar.gz note_installed $gnuplot_dir fi PATH="$gnuplot_dir:${PATH}" -# --------------- Guppy -------------------- -guppy_dir="$build_dir/ont-guppy-cpu/bin" -if [ -z $(check_installed $guppy_dir) ]; then +# --------------- Guppy-GPU -------------------- +echo "" +echo "[$(timestamp)] Installing guppy-GPU ..." +guppy_gpu_dir="$build_dir/ont-guppy-gpu/bin" +if [ -z $(check_installed $guppy_gpu_dir) ]; then + cd $build_dir + clean "$build_dir/ont-guppy-gpu" + echo "Download Guppy-v${GUPPY_VERSION}" + download $GUPPY_GPU_DOWNLOAD_URL "ont-guppy_${GUPPY_VERSION}_linux64.tar.gz" + tar xvzf ont-guppy_${GUPPY_VERSION}_linux64.tar.gz + mv ont-guppy ont-guppy-gpu + rm ont-guppy_${GUPPY_VERSION}_linux64.tar.gz + note_installed $guppy_gpu_dir +fi + +# --------------- Guppy-CPU -------------------- +echo "" +echo "[$(timestamp)] Installing guppy-CPU ..." +guppy_cpu_dir="$build_dir/ont-guppy-cpu/bin" +if [ -z $(check_installed $guppy_cpu_dir) ]; then cd $build_dir + clean "$build_dir/ont-guppy-cpu" echo "Download Guppy-v${GUPPY_VERSION}" - download_and_extract $GUPPY_DOWNLOAD_URL "ont-guppy-cpu_${GUPPY_VERSION}_linux64.tar.gz" - note_installed $guppy_dir + download $GUPPY_CPU_DOWNLOAD_URL "ont-guppy_${GUPPY_VERSION}_linux64.tar.gz" + tar xvzf ont-guppy_${GUPPY_VERSION}_linux64.tar.gz + rm ont-guppy_${GUPPY_VERSION}_linux64.tar.gz + note_installed $guppy_cpu_dir fi + +# # --------------- Nanofilt -------------------- +# echo "" +# echo "[$(timestamp)] Installing NanoFilt ..." +# nanofilt_dir="$build_dir/nanofilt_conda_env/bin" +# if [ -z $(check_installed $nanofilt_dir) ]; then +# cd $build_dir +# $miniconda3_dir/conda create -y -p $build_dir/nanofilt_conda_env +# source $miniconda3_dir/activate $build_dir/nanofilt_conda_env +# $miniconda3_dir/conda install -y -c bioconda nanofilt=${NANOFILT_VERSION} +# source $miniconda3_dir/deactivate +# note_installed $nanofilt_dir +# fi + # --------------- Nanoplot -------------------- -nanoplot_dir="$build_dir/py3_virtualenv_nanoplot/bin" +echo "" +echo "[$(timestamp)] Installing NanoPlot ..." +nanoplot_dir="$build_dir/nanoplot_conda_env/bin" if [ -z $(check_installed $nanoplot_dir) ]; then cd $build_dir - virtualenv -p $(which python3) py3_virtualenv_nanoplot - source py3_virtualenv_nanoplot/bin/activate - py3_virtualenv_nanoplot/bin/pip install --upgrade pip - py3_virtualenv_nanoplot/bin/pip install --upgrade setuptools - py3_virtualenv_nanoplot/bin/pip install numpy==${NUMPY_VERSION} - py3_virtualenv_nanoplot/bin/pip install scipy==${SCIPY_VERSION} - py3_virtualenv_nanoplot/bin/pip install NanoPlot==${NANOPLOT_VERSION} - deactivate + $miniconda3_dir/conda create -y -p $build_dir/nanoplot_conda_env python=3.9 + source $miniconda3_dir/activate $build_dir/nanoplot_conda_env + $miniconda3_dir/conda install -y -c bioconda nanoplot=${NANOPLOT_VERSION} + source $miniconda3_dir/deactivate note_installed $nanoplot_dir fi -# ------------- NANOPOLISH -------------------- -nanopolish_dir="$build_dir/nanopolish" -nanopolish_virtualenv_dir="$build_dir/nanopolish/py3_virtualenv_nanopolish/bin" +# --------------- Nanopolish -------------------- +echo "" +echo "[$(timestamp)] Installing nanopolish ..." +nanopolish_dir="$build_dir/nanopolish_conda_env/bin" if [ -z $(check_installed $nanopolish_dir) ]; then cd $build_dir - echo "Download nanopolish-v${NANOPOLISH_VERSION}" - git clone --recursive $NANOPOLISH_DOWNLOAD_URL - cd $nanopolish_dir - git checkout -f -q $NANOPOLISH_GITHUB_COMMIT_VERSION - make - virtualenv -p $(which python3) py3_virtualenv_nanopolish - source py3_virtualenv_nanopolish/bin/activate - py3_virtualenv_nanopolish/bin/pip install biopython - py3_virtualenv_nanopolish/bin/pip install pysam - deactivate - rm *.tar.gz - rm *.tar.bz2 + clean "$build_dir/nanopolish_conda_env" + $miniconda3_dir/conda create -y -p $build_dir/nanopolish_conda_env python=3.9 + source $miniconda3_dir/activate $build_dir/nanopolish_conda_env + $miniconda3_dir/conda install -y -c bioconda nanopolish=${NANOPOLISH_VERSION} + source $miniconda3_dir/deactivate note_installed $nanopolish_dir fi -# --------------- parallel ------------------ +# --------------- Parallel ------------------ +echo "" +echo "[$(timestamp)] Installing parallele ..." parallel_dir="$build_dir/parallel-${PARALLEL_VERSION}/bin" if [ -z $(check_installed $parallel_dir) ]; then cd $build_dir echo "Download parallel" - download_and_extract $PARALLEL_DOWNLOAD_URL "parallel_v${PARALLEL_VERSION}.tar.bz2" + clean "$build_dir/parallele-${PARALLEL_VERSION}" + download $PARALLEL_DOWNLOAD_URL "parallel_v${PARALLEL_VERSION}.tar.bz2" + tar xvjf parallel_v${PARALLEL_VERSION}.tar.bz2 cd parallel-${PARALLEL_VERSION} ./configure --prefix="$build_dir/parallel-${PARALLEL_VERSION}" make -j $MAKE_JOBS make install - parallel_dir="$build_dir/parallel-${PARALLEL_VERSION}/bin" + cd $build_dir + rm parallel_v${PARALLEL_VERSION}.tar.bz2 note_installed $parallel_dir fi # --------------- Racon ----------------- -racon_dir="$build_dir/racon-v${RACON_VERSION}/build/bin" +echo "" +echo "[$(timestamp)] Installing racon ..." +racon_dir="$build_dir/racon_conda_env/bin" if [ -z $(check_installed $racon_dir) ]; then cd $build_dir - echo "Download racon-v${RACON_VERSION}" - download_and_extract $RACON_DOWNLOAD_URL "racon-v${RACON_VERSION}.tar.gz" - cd racon-v${RACON_VERSION} - mkdir build - cd build - cmake -DCMAKE_BUILD_TYPE=Release .. - make -j $MAKE_JOBS + clean "$build_dir/racon_conda_env" + $miniconda3_dir/conda create -y -p $build_dir/racon_conda_env python=3.7 + source $miniconda3_dir/activate $build_dir/racon_conda_env + $miniconda3_dir/conda install -y -c bioconda racon=${RACON_VERSION} + source $miniconda3_dir/deactivate note_installed $racon_dir fi # --------------- Medaka ----------------- -medaka_dir="$build_dir/conda_medaka_env" -if [ -z $(check_installed $conda_medaka_dir) ]; then - cd $build_dir - $miniconda3_dir/conda create -y -p $build_dir/conda_medaka_env python=3.7 - source $miniconda3_dir/activate $build_dir/conda_medaka_env - $miniconda3_dir/conda install -y -c bioconda medaka=${MEDAKA_VERSION} +echo "" +echo "[$(timestamp)] Installing medaka ..." +medaka_dir="$build_dir/medaka_conda_env/bin" +if [ -z $(check_installed $medaka_dir) ]; then + cd $build_dir + clean "$build_dir/medaka_conda_env" + $miniconda3_dir/conda create -y -p $build_dir/medaka_conda_env + source $miniconda3_dir/activate $build_dir/medaka_conda_env + $miniconda3_dir/conda install -y -c conda-forge -c bioconda medaka=${MEDAKA_VERSION} + #$miniconda3_dir/pip3 install medaka==${MEDAKA_VERSION} source $miniconda3_dir/deactivate note_installed $medaka_dir - medaka_dir="$build_dir/conda_medaka_env/bin" fi -# --------------- MarginPolish ----------------- -marginpolish_dir="$build_dir/marginPolish/build" -if [ -z $(check_installed $marginpolish_dir) ]; then - cd $build_dir - echo "Download MarginPolish-v${MARGINPOLISH_VERSION}" - git clone --recursive $MARGINPOLISH_DOWNLOAD_URL - cd marginPolish - git checkout -f -q $MARGINPOLISH_GITHUB_COMMIT_VERSION - git submodule update --init - mkdir build - cd build - cmake .. - make -j $MAKE_JOBS - note_installed $marginpolish_dir -fi +# # --------------- MarginPolish ----------------- +# echo "" +# echo "[$(timestamp)] Installing marginpolish ..." +# marginpolish_dir="$build_dir/marginPolish/build" +# if [ -z $(check_installed $marginpolish_dir) ]; then +# cd $build_dir +# echo "Download MarginPolish-v${MARGINPOLISH_VERSION}" +# clean "$build_dir/marginPolish" +# download $MARGINPOLISH_DOWNLOAD_URL "marginPolish.tar.gz" +# tar xzf marginPolish.tar.gz +# cd MarginPolish-${MARGINPOLISH_VERSION}/externalTools +# git clone --recursive https://github.com/samtools/htslib.git +# cd htslib +# git checkout -f -q 1832d3a +# cd .. +# cd git clone --resursive https://github.com/benedictpaten/sonLib.git +# git checkout -f -q 8e403f6 +# cd .. +# cd .. + +# # git clone --recursive $MARGINPOLISH_DOWNLOAD_URL +# # cd marginPolish +# # git checkout -f -q $MARGINPOLISH_GITHUB_COMMIT_VERSION +# # # git submodule update --init +# mkdir build +# cd build +# cmake .. +# make -j $MAKE_JOBS +# note_installed $marginpolish_dir +# fi -# # --------------- PEPPER ----------------- +# # --------------- Helen ----------------- +# echo "" +# echo "[$(timestamp)] Installing helen ..." # helen_dir="$build_dir/helen/build" -# helen_virtualenv_dir="$build_dir/helen/py3_virtualenv_helen/bin" # if [ -z $(check_installed $helen_dir) ]; then # cd $build_dir -# echo "Download helen-v${HELEN_VERSION}" +# echo "Download Helen-v${HELEN_VERSION}" +# clean "$build_dir/helen" # git clone $HELEN_DOWNLOAD_URL # cd helen # git checkout -f -q $HELEN_GITHUB_COMMIT_VERSION -# mkdir install -# # virtualenv -p $(which python3) py3_virtualenv_helen -# # source py3_virtualenv_helen/bin/activate -# # py3_virtualenv_helen/bin/pip install pybind11 -# # py3_virtualenv_helen/bin/pip install h5py -# # py3_virtualenv_helen/bin/pip install tqdm -# # py3_virtualenv_helen/bin/pip install numpy==${NUMPY_VERSION} -# # #py3_virtualenv_helen/bin/pip install torchnet -# # py3_virtualenv_helen/bin/pip install pyyaml -# # cd $helen_dir -# # cmake .. -Wno-deprecated -# # make -j $MAKE_JOBS -# # cd .. -# # deactivate +# make install +# . ./venv/bin/activate +# cd build # note_installed $helen_dir # fi -# ------------- QUAST -------------------- -# quast_dir="$build_dir/quast-${QUAST_VERSION}" +# # --------------- PEPPER ----------------- +# pepper_dir="$build_dir/pepper_conda_env/bin" +# if [ -z $(check_installed $pepper_dir) ]; then +# cd $build_dir +# $miniconda3_dir/conda create -y -p $build_dir/pepper_conda_env python=3.7 +# source $miniconda3_dir/activate $build_dir/pepper_conda_env +# $miniconda3_dir/pip3 install pepper-polish +# source $miniconda3_dir/deactivate +# note_installed $pepper_dir +# fi + +# # --------------- HOMOPOLISH ----------------- +# homopolish_dir="$build_dir/homopolish_conda_env/bin" +# if [ -z $(check_installed $homopolish_dir) ]; then +# cd $build_dir +# clean "$build_dir/homopolish_conda_env" +# $miniconda3_dir/conda create -y -p $build_dir/homopolish_conda_env python=3.7 +# source $miniconda3_dir/activate $build_dir/homopolish_conda_env +# $miniconda3_dir/conda install -y -c bioconda homopolish=${HOMOPOLISH_VERSION} +# source $miniconda3_dir/deactivate +# note_installed $homopolish_dir +# fi + +# # ------------- QUAST -------------------- +# quast_dir="$build_dir/quast_conda_env/bin" # if [ -z $(check_installed $quast_dir) ]; then # cd $build_dir -# echo "Download QUAST-v${QUAST_VERSION}" -# download_and_extract $QUAST_DOWNLOAD_URL "QUAST-${QUAST_VERSION}.tar.gz" -# cd $quast_dir -# virtualenv -p $(which python3) py3_virtualenv_quast -# source py3_virtualenv_quast/bin/activate -# py3_virtualenv_quast/bin/pip install joblib -# py3_virtualenv_quast/bin/pip install simplejson -# py3_virtualenv_quast/bin/python3 -mpip install -U matplotlib -# py3_virtualenv_quast/bin/python3 ./setup.py install -# deactivate +# $miniconda3_dir/conda create -y -p $build_dir/quast_conda_env python=3.7 +# source $miniconda3_dir/activate $build_dir/quast_conda_env +# $miniconda3_dir/conda install -y -c bioconda quast=${QUAST_VERSION} +# source $miniconda3_dir/deactivate # note_installed $quast_dir # fi # --------------- mummer4 ------------------ +echo "" +echo "[$(timestamp)] Installing mummer4 ..." mummer4_dir="$build_dir/mummer-${MUMMER4_VERSION}" if [ -z $(check_installed $mummer4_dir) ]; then cd $build_dir + clean "$build_dir/mummer-${MUMMER4_VERSION}" echo "Download mummer-v${MUMMER4_VERSION}" - download_and_extract $MUMMER4_DOWNLOAD_URL "mummer-${MUMMER4_VERSION}.tar.gz" + download $MUMMER4_DOWNLOAD_URL "mummer-${MUMMER4_VERSION}.tar.gz" + tar xvzf mummer-${MUMMER4_VERSION}.tar.gz echo "$mummer4_dir" cd $mummer4_dir ./configure make -j $MAKE_JOBS + cd $build_dir + rm mummer-${MUMMER4_VERSION}.tar.gz note_installed $mummer4_dir fi PATH="$mummer4_dir:${PATH}" # --------------- bedtools ------------------ +echo "" +echo "[$(timestamp)] Installing bedtools ..." bedtools_dir="$build_dir/bedtools2/bin" if [ -z $(check_installed $bedtools_dir) ]; then cd $build_dir + clean "$build_dir/bedtools2" echo "Download bedtools-v${BEDTOOLS_VERSION}" - download_and_extract $BEDTOOLS_DOWNLOAD_URL "bedtools-${BEDTOOLS_VERSION}.tar.gz" + download $BEDTOOLS_DOWNLOAD_URL "bedtools-${BEDTOOLS_VERSION}.tar.gz" + tar xvzf bedtools-${BEDTOOLS_VERSION}.tar.gz cd "$build_dir/bedtools2" make -j $MAKE_JOBS + cd $build_dir + rm bedtools-${BEDTOOLS_VERSION}.tar.gz note_installed $bedtools_dir fi # --------------- SPAdes ------------------ +echo "" +echo "[$(timestamp)] Installing spades ..." spades_dir="$build_dir/SPAdes-${SPADES_VERSION}-Linux/bin" if [ -z $(check_installed $spades_dir) ]; then cd $build_dir + clean "$build_dir/SPAdes-${SPADES_VERSION}-Linux" echo "Download SPAdes-v${SPADES_VERSION}" - # This sometimes times out, could this be throttling from the server? - # Allow administrator to manually upload a copy of the tarball for installation - if [ ! -e "SPAdes-${SPADES_VERSION}-Linux.tar.gz" ]; then - download_and_extract $SPADES_DOWNLOAD_URL "SPAdes-${SPADES_VERSION}-Linux.tar.gz" - else - tar -zxf "SPAdes-${SPADES_VERSION}-Linux.tar.gz" - fi + download $SPADES_DOWNLOAD_URL "SPAdes-${SPADES_VERSION}-Linux.tar.gz" + tar xvzf SPAdes-${SPADES_VERSION}-Linux.tar.gz + rm SPAdes-${SPADES_VERSION}-Linux.tar.gz note_installed $spades_dir fi # --------------- Prodigal ------------------ prodigal_dir="$build_dir/Prodigal-${PRODIGAL_VERSION}" +echo "" +echo "[$(timestamp)] Installing Prodigal ..." if [ -z $(check_installed $prodigal_dir) ]; then cd $build_dir + clean "$build_dir/Prodigal-${PRODIGAL_VERSION}" echo "Download Prodigal-v${PRODIGAL_VERSION}" - download_and_extract $PRODIGAL_DOWNLOAD_URL "v${PRODIGAL_VERSION}.tar.gz" + download $PRODIGAL_DOWNLOAD_URL "v${PRODIGAL_VERSION}.tar.gz" + tar xvzf v${PRODIGAL_VERSION}.tar.gz cd $prodigal_dir make -j $MAKE_JOBS + cd $build_dir + rm v${PRODIGAL_VERSION}.tar.gz note_installed $prodigal_dir fi # --------------- CAP3 ------------------ -cap_dir="$build_dir/CAP3" -if [ -z $(check_installed $cap_dir) ]; then +cap3_dir="$build_dir/CAP3/CAP3" +echo "" +echo "[$(timestamp)] Installing CAP3 ..." +if [ -z $(check_installed $cap3_dir) ]; then cd $build_dir + clean "$build_dir/CAP3" echo "Download CAP3-v${CAP3_VERSION}" - download_and_extract $CAP_DOWNLOAD_URL "cap3.linux.x86_64.tar" - note_installed $cap_dir + # download $CAP3_DOWNLOAD_URL "cap3.linux.x86_64.tar" + git clone $CAP3_DOWNLOAD_URL + cd CAP3 + tar xvf cap3.linux.x86_64.tar + rm cap3.linux.x86_64.tar + note_installed $cap3_dir fi # ------------- BWA ------------------- bwa_dir="$build_dir/bwa-${BWA_VERSION}" +echo "" +echo "[$(timestamp)] Installing BWA ..." if [ -z $(check_installed $bwa_dir) ]; then cd $build_dir + clean "$build_dir/bwa-${BWA_VERSION}" echo "Download BWA-v${BWA_VERSION}" - download_and_extract $BWA_DOWNLOAD_URL "bwa-${BWA_VERSION}.tar.bz2" + download $BWA_DOWNLOAD_URL "bwa-${BWA_VERSION}.tar.bz2" + tar xvjf bwa-${BWA_VERSION}.tar.bz2 cd $bwa_dir make -j $MAKE_JOBS + cd $build_dir + rm bwa-${BWA_VERSION}.tar.bz2 note_installed $bwa_dir fi # --------------- Circlator ------------------ -circlator_dir="$build_dir/py3_virtualenv_circlator/bin" +circlator_dir="$build_dir/circlator_conda_env/bin" +echo "" +echo "[$(timestamp)] Installing Circlator ..." if [ -z $(check_installed $circlator_dir) ]; then cd $build_dir - echo "Creating local virtual python3 environment and install Circlator-v${CIRCLATOR_VERSION}" - virtualenv -p $(which python3) py3_virtualenv_circlator - source py3_virtualenv_circlator/bin/activate - py3_virtualenv_circlator/bin/pip3 install "circlator==${CIRCLATOR_VERSION}" - deactivate + clean "$build_dir/circlator_conda_env" + $miniconda3_dir/conda create -y -p $build_dir/circlator_conda_env + source $miniconda3_dir/activate $build_dir/circlator_conda_env + $miniconda3_dir/conda install -y -c bioconda circlator=${CIRCLATOR_VERSION} + source $miniconda3_dir/deactivate note_installed $circlator_dir fi # --------------- Trimmomatic ----------------- trimmomatic_dir="$build_dir/Trimmomatic-${TRIMMOMATIC_VERSION}" +echo "" +echo "[$(timestamp)] Installing Trimmomatic ..." if [ -z $(check_installed $trimmomatic_dir) ]; then cd $build_dir + clean "$build_dir/Trimmomatic-${TRIMMOMATIC_VERSION}" echo "Download Trimmomatic-v${TRIMMOMATIC_VERSION}" download $TRIMMOMATIC_DOWNLOAD_URL "Trimmomatic-${TRIMMOMATIC_VERSION}.zip" unzip Trimmomatic-${TRIMMOMATIC_VERSION}.zip rm Trimmomatic-${TRIMMOMATIC_VERSION}.zip - cd $trimmomatic_dir chmod 755 trimmomatic-${TRIMMOMATIC_VERSION}.jar ln -s trimmomatic-${TRIMMOMATIC_VERSION}.jar trimmomatic.jar @@ -833,8 +1160,11 @@ fi # --------------- Picard ----------------- picard_dir="$build_dir/Picard-v${PICARD_VERSION}" +echo "" +echo "[$(timestamp)] Installing Picard ..." if [ -z $(check_installed $picard_dir) ]; then cd $build_dir + clean "$build_dir/Picard-v${PICARD_VERSION}" echo "Download Picard-v${PICARD_VERSION}" download $PICARD_DOWNLOAD_URL "picard.jar" mkdir Picard-v${PICARD_VERSION} @@ -845,10 +1175,26 @@ if [ -z $(check_installed $picard_dir) ]; then note_installed $picard_dir fi +# # --------------- hapo-G ------------------ +# hapog_dir="$build_dir/hapog_conda_env/bin" +# echo "" +# echo "[$(timestamp)] Installing hapo-G ..." +# if [ -z $(check_installed $hapog_dir) ]; then +# cd $build_dir +# $miniconda3_dir/conda create -y -p $build_dir/hapog_conda_env +# source $miniconda3_dir/activate $build_dir/hapog_conda_env +# $miniconda3_dir/conda install -y -c lbgb_cea hapog=${HAPOG_VERSION} +# source $miniconda3_dir/deactivate +# note_installed $hapog_dir +# fi + # --------------- Pilon ----------------- pilon_dir="$build_dir/Pilon-v${PILON_VERSION}" +echo "" +echo "[$(timestamp)] Installing Pilon ..." if [ -z $(check_installed $pilon_dir) ]; then cd $build_dir + clean "$build_dir/Pilon-v${PILON_VERSION}" echo "Download Pilon-v${PILON_VERSION}" download $PILON_DOWNLOAD_URL "pilon-${PILON_VERSION}.jar" mkdir Pilon-v${PILON_VERSION} @@ -860,42 +1206,61 @@ fi # --------------- exonerate ------------------ exonerate_dir="$build_dir/exonerate-${EXONERATE_VERSION}-x86_64/bin" +echo "" +echo "[$(timestamp)] Installing exonerate ..." if [ -z $(check_installed $exonerate_dir) ]; then cd $build_dir + clean "$build_dir/exonerate-${EXONERATE_VERSION}-x86_64" echo "Download exonerate-v${EXONERATE_VERSION}" - download_and_extract $EXONERATE_DOWNLOAD_URL "exonerate-${EXONERATE_VERSION}-x86_64.tar.gz" + download $EXONERATE_DOWNLOAD_URL "exonerate-${EXONERATE_VERSION}-x86_64.tar.gz" + tar xvzf exonerate-${EXONERATE_VERSION}-x86_64.tar.gz + rm exonerate-${EXONERATE_VERSION}-x86_64.tar.gz note_installed $exonerate_dir fi # --------------- ncbi-blast+ ------------------ blast_dir="$build_dir/ncbi-blast-${BLAST_VERSION}+/bin" blast_matrices_dir="$build_dir/ncbi-blast-${BLAST_VERSION}+/matrices" +echo "" +echo "[$(timestamp)] Installing ncbi-blast+ ..." if [ -z $(check_installed $blast_dir) ]; then cd $build_dir + clean "$build_dir/ncbi-blast-${BLAST_VERSION}+" echo "Download ncbi-blast-v${BLAST_VERSION}" - download_and_extract $BLAST_DOWNLOAD_URL "ncbi-blast-${BLAST_VERSION}+-x64-linux.tar.gz" + download $BLAST_DOWNLOAD_URL "ncbi-blast-${BLAST_VERSION}+-x64-linux.tar.gz" + tar xvzf ncbi-blast-${BLAST_VERSION}+-x64-linux.tar.gz cd "ncbi-blast-${BLAST_VERSION}+" mkdir matrices cd matrices - wget -nv --no-check-certificate ftp://ftp.ncbi.nlm.nih.gov/blast/matrices/* + wget -c --no-check-certificate ftp://ftp.ncbi.nlm.nih.gov/blast/matrices/* + cd $build_dir + rm ncbi-blast-${BLAST_VERSION}+-x64-linux.tar.gz note_installed $blast_dir fi # --------------- ncbi-rmblast ------------------ rmblast_dir="$build_dir/ncbi-rmblastn-${RMBLAST_VERSION}/bin" +echo "" +echo "[$(timestamp)] Installing rmblast ..." if [ -z $(check_installed $rmblast_dir) ]; then cd $build_dir + clean "$build_dir/ncbi-rmblastn-${RMBLAST_VERSION}" echo "Download ncbi-rmblastn-v${BLAST_VERSION}" - download_and_extract $RMBLAST_DOWNLOAD_URL "ncbi-rmblastn-${RMBLAST_VERSION}-x64-linux.tar.gz" + download $RMBLAST_DOWNLOAD_URL "ncbi-rmblastn-${RMBLAST_VERSION}-x64-linux.tar.gz" + tar xvzf ncbi-rmblastn-${RMBLAST_VERSION}-x64-linux.tar.gz # copy rmblastn binary file to ncbi-blast+ directory for easy RepeatMasker configuration cp $rmblast_dir/rmblastn $blast_dir + rm ncbi-rmblastn-${RMBLAST_VERSION}-x64-linux.tar.gz note_installed $rmblast_dir fi # --------------- snap ------------------ snap_dir="$build_dir/SNAP" +echo "" +echo "[$(timestamp)] Installing snap ..." if [ -z $(check_installed $snap_dir) ]; then cd $build_dir + clean "$build_dir/SNAP" echo "Download snap-v${SNAP_VERSION}" git clone $SNAP_DOWNLOAD_URL cd $snap_dir @@ -906,23 +1271,31 @@ if [ -z $(check_installed $snap_dir) ]; then note_installed $snap_dir fi -# --------------- RAPSearch2 ------------------ -rapsearch_dir="$build_dir/RAPSearch${RAPSEARCH_VERSION}_64bits/bin" -if [ -z $(check_installed $rapsearch_dir) ]; then - cd $build_dir - echo "Download RAPsearch-v${RAPSEARCH_VERSION}" - download_and_extract $RAPSEARCH_DOWNLOAD_URL "RAPSearch${RAPSEARCH_VERSION}_64bits.tar.gz" - note_installed $rapsearch_dir -fi +# # --------------- RAPSearch2 ------------------ +# rapsearch_dir="$build_dir/RAPSearch${RAPSEARCH_VERSION}_64bits/bin" +# echo "" +# echo "[$(timestamp)] Installing RAPSearch2 ..." +# if [ -z $(check_installed $rapsearch_dir) ]; then +# cd $build_dir +# echo "Download RAPsearch-v${RAPSEARCH_VERSION}" +# download $RAPSEARCH_DOWNLOAD_URL "RAPSearch${RAPSEARCH_VERSION}_64bits.tar.gz" +# tar xvzf RAPSearch${RAPSEARCH_VERSION}_64bits.tar.gz +# rm RAPSearch${RAPSEARCH_VERSION}_64bits.tar.gz +# note_installed $rapsearch_dir +# fi # --------------- tRNAscan-SE ------------------ trnascan_root="$build_dir/tRNAscan-SE-${TRNASCAN_VERSION}" trnascan_dir="$trnascan_root/bin" PERL5LIB=$trnascan_dir:$PERL5LIB +echo "" +echo "[$(timestamp)] Installing tRNAscan-SE ..." if [ -z $(check_installed $trnascan_dir) ]; then cd $build_dir + clean "$build_dir/tRNAscan-SE-${TRNASCAN_VERSION}" echo "Download tRNAscan-SE-v${TRNASCAN_VERSION}" - download_and_extract $TRNASCAN_DOWNLOAD_URL "tRNAscan-SE-${TRNASCAN_VERSION}.tar.gz" + download $TRNASCAN_DOWNLOAD_URL "tRNAscan-SE-${TRNASCAN_VERSION}.tar.gz" + tar xvzf tRNAscan-SE-${TRNASCAN_VERSION}.tar.gz cd $trnascan_root mkdir bin mkdir -p lib/tRNAscan-SE @@ -930,15 +1303,21 @@ if [ -z $(check_installed $trnascan_dir) ]; then cp $LRSDAY_HOME/misc/tRNAscan-SE.Makefile Makefile make -j $MAKE_JOBS BINDIR="$trnascan_root/bin" LIBDIR="$trnascan_root/lib/tRNAscan-SE" MANDIR="$trnascan_root" make install BINDIR="$trnascan_root/bin" LIBDIR="$trnascan_root/lib/tRNAscan-SE" MANDIR="$trnascan_root" + cd $build_dir + rm tRNAscan-SE-${TRNASCAN_VERSION}.tar.gz note_installed $trnascan_dir fi # --------------- snoscan ------------------ snoscan_dir="$build_dir/snoscan-${SNOSCAN_VERSION}" +echo "" +echo "[$(timestamp)] Installing snoscan ..." if [ -z $(check_installed $snoscan_dir) ]; then cd $build_dir + clean "$build_dir/snoscan-${SNOSCAN_VERSION}" echo "Download snoscan-v${SNOSCAN_VERSION}" - download_and_extract $SNOSCAN_DOWNLOAD_URL "snoscan-${SNOSCAN_VERSION}.tar.gz" + download $SNOSCAN_DOWNLOAD_URL "snoscan-${SNOSCAN_VERSION}.tar.gz" + tar xvzf snoscan-${SNOSCAN_VERSION}.tar.gz cd $snoscan_dir cd squid-1.5.11 rm *.o @@ -947,27 +1326,37 @@ if [ -z $(check_installed $snoscan_dir) ]; then cp $LRSDAY_HOME/misc/snoscan.Makefile Makefile rm *.o make -j $MAKE_JOBS + cd $build_dir + rm snoscan-${SNOSCAN_VERSION}.tar.gz note_installed $snoscan_dir fi # --------------- RepeatMasker ------------------ repeatmasker_dir="$build_dir/RepeatMasker" +echo "" +echo "[$(timestamp)] Installing RepeatMasker ..." if [ -z $(check_installed $repeatmasker_dir) ]; then cd $build_dir + clean "$build_dir/RepeatMasker" echo "Download Repeatmasker-v${REPEATMASKER_VERSION}" - download_and_extract $REPEATMASKER_DOWNLOAD_URL "RepeatMasker-${REPEATMASKER_VERSION}.tar.gz" + download $REPEATMASKER_DOWNLOAD_URL "RepeatMasker-${REPEATMASKER_VERSION}.tar.gz" + tar xvzf RepeatMasker-${REPEATMASKER_VERSION}.tar.gz cd $repeatmasker_dir echo "Download and setup RepBase library" - REPBASE_VERSION="20170127" - wget -nv --no-check-certificate https://github.com/yjx1217/RMRB/raw/master/RepBaseRepeatMaskerEdition-${REPBASE_VERSION}.tar.gz + # download $REPBASE_DOWNLOAD_URL "RepBaseRepeatMaskerEdition-${REPBASE_VERSION}.tar.gz" + git clone $REPBASE_DOWNLOAD_URL + mv ./RMRB/RepBaseRepeatMaskerEdition-${REPBASE_VERSION}.tar.gz . tar xzf RepBaseRepeatMaskerEdition-${REPBASE_VERSION}.tar.gz rm RepBaseRepeatMaskerEdition-${REPBASE_VERSION}.tar.gz - cd .. + cd $build_dir + rm RepeatMasker-${REPEATMASKER_VERSION}.tar.gz note_installed $repeatmasker_dir fi # --------------- TRF ------------------ trf_dir=$repeatmasker_dir +echo "" +echo "[$(timestamp)] Installing trf ..." if [ ! -e "$repeatmasker_dir/trf" ]; then cd $repeatmasker_dir echo "Download TRF-v${TRF_VERSION}" @@ -976,66 +1365,91 @@ if [ ! -e "$repeatmasker_dir/trf" ]; then chmod 755 trf fi - # --------------- REannotate ------------------ -reannotate_dir="$build_dir/REannotate_LongQueryName-version_${REANNOTATE_VERSION}" +reannotate_dir="$build_dir/REannotate_LongQueryName" +echo "" +echo "[$(timestamp)] Installing REannotate ..." if [ -z $(check_installed $reannotate_dir) ]; then cd $build_dir + clean "$build_dir/REannotate_LongQueryName" echo "Download REannotate-v${REANNOTATE_VERSION}" - download_and_extract $REANNOTATE_DOWNLOAD_URL "version_${REANNOTATE_VERSION}.tar.gz" - cd $reannotate_dir + git clone $REANNOTATE_DOWNLOAD_URL + cd REannotate_LongQueryName + git checkout -f -q $REANNOTATE_GITHUB_COMMIT_VERSION chmod 755 REannotate_longname ln -s REannotate_longname REannotate + cd $build_dir note_installed $reannotate_dir fi # --------------- ClustalW ------------------ clustalw_dir="$build_dir/clustalw-${CLUSTALW_VERSION}/bin" +echo "" +echo "[$(timestamp)] Installing ClustalW ..." if [ -z $(check_installed $clustalw_dir) ]; then cd $build_dir + clean "$build_dir/clustalw-${CLUSTALW_VERSION}" echo "Download ClustalW-v${CLUSTALW_VERSION}" - download_and_extract $CLUSTALW_DOWNLOAD_URL "clustalw-${CLUSTALW_VERSION}.tar.gz" + download $CLUSTALW_DOWNLOAD_URL "clustalw-${CLUSTALW_VERSION}.tar.gz" + tar xvzf clustalw-${CLUSTALW_VERSION}.tar.gz cd clustalw-${CLUSTALW_VERSION} ./configure --prefix="$build_dir/clustalw-${CLUSTALW_VERSION}" make -j $MAKE_JOBS make install + cd $build_dir + rm clustalw-${CLUSTALW_VERSION}.tar.gz note_installed $clustalw_dir fi # --------------- MUSCLE ------------------ muscle_dir="$build_dir/muscle-${MUSCLE_VERSION}" +echo "" +echo "[$(timestamp)] Installing muscle ..." if [ -z $(check_installed $muscle_dir) ]; then cd $build_dir + clean "$build_dir/muscle-${MUSCLE_VERSION}" echo "Download MUSCLE-v${MUSCLE_VERSION}" - download_and_extract $MUSCLE_DOWNLOAD_URL "muscle-${MUSCLE_VERSION}_i86linux64.tar.gz" + download $MUSCLE_DOWNLOAD_URL "muscle-${MUSCLE_VERSION}_i86linux64.tar.gz" + tar xvzf muscle-${MUSCLE_VERSION}_i86linux64.tar.gz mkdir muscle-${MUSCLE_VERSION} mv muscle${MUSCLE_VERSION}_i86linux64 ./muscle-${MUSCLE_VERSION}/muscle + cd $build_dir + rm muscle-${MUSCLE_VERSION}_i86linux64.tar.gz note_installed $muscle_dir fi # --------------- HMMER ------------------ -hmmer_root="$build_dir/hmmer-${HMMER_VERSION}" hmmer_dir="$build_dir/hmmer-${HMMER_VERSION}/bin" +echo "" +echo "[$(timestamp)] Installing HMMER ..." if [ -z $(check_installed $hmmer_dir) ]; then cd $build_dir + clean "$build_dir/hmmer-${HMMER_VERSION}" echo "Download hmmer-v${HMMER_VERSION}" - download_and_extract $HMMER_DOWNLOAD_URL "hmmer-${HMMER_VERSION}-linux-intel-x86_64.tar.gz" - cd $hmmer_root - ./configure --prefix=$hmmer_root + download $HMMER_DOWNLOAD_URL "hmmer-${HMMER_VERSION}-linux-intel-x86_64.tar.gz" + tar xvzf hmmer-${HMMER_VERSION}-linux-intel-x86_64.tar.gz + cd hmmer-${HMMER_VERSION} + ./configure --prefix="$build_dir/hmmer-${HMMER_VERSION}" make -j $MAKE_JOBS make install cd easel make install + cd $build_dir + rm hmmer-${HMMER_VERSION}-linux-intel-x86_64.tar.gz note_installed $hmmer_dir fi # --------------- bamtools ------------------ bamtools_dir="$build_dir/bamtools-${BAMTOOLS_VERSION}/bin" +echo "" +echo "[$(timestamp)] Installing bamtools ..." if [ -z $(check_installed $bamtools_dir) ]; then cd $build_dir + clean "$build_dir/bamtools-${BAMTOOLS_VERSION}" echo "Download bamtools-v${BAMTOOLS_VERSION}" - download_and_extract $BAMTOOLS_DOWNLOAD_URL "v${BAMTOOLS_VERSION}.tar.gz" - cd $build_dir/bamtools-${BAMTOOLS_VERSION} + download $BAMTOOLS_DOWNLOAD_URL "v${BAMTOOLS_VERSION}.tar.gz" + tar xvzf v${BAMTOOLS_VERSION}.tar.gz + cd bamtools-${BAMTOOLS_VERSION} mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX="$build_dir/bamtools-${BAMTOOLS_VERSION}" .. @@ -1043,99 +1457,144 @@ if [ -z $(check_installed $bamtools_dir) ]; then make install cd $build_dir/bamtools-${BAMTOOLS_VERSION} ln -sf lib lib64 + cd $build_dir + rm v${BAMTOOLS_VERSION}.tar.gz note_installed $bamtools_dir fi # --------------- Augustus ------------------ augustus_dir="$build_dir/augustus-${AUGUSTUS_VERSION}/bin" +echo "" +echo "[$(timestamp)] Installing augustus ..." if [ -z $(check_installed $augustus_dir) ]; then cd $build_dir + clean "$build_dir/augustus-${AUGUSTUS_VERSION}" echo "Download Augustus-v${AUGUSTUS_VERSION}" - download_and_extract $AUGUSTUS_DOWNLOAD_URL "augustus-${AUGUSTUS_VERSION}.tar.gz" + download $AUGUSTUS_DOWNLOAD_URL "augustus-${AUGUSTUS_VERSION}.tar.gz" + tar xvzf augustus-${AUGUSTUS_VERSION}.tar.gz cd $build_dir/augustus-${AUGUSTUS_VERSION}/auxprogs/bam2hints/ cp $LRSDAY_HOME/misc/bam2hints.Makefile Makefile cd $build_dir/augustus-${AUGUSTUS_VERSION}/auxprogs/filterBam/src/ cp $LRSDAY_HOME/misc/filterBam.Makefile Makefile cd $build_dir/augustus-${AUGUSTUS_VERSION} make -j $MAKE_JOBS BAMTOOLS="$build_dir/bamtools-${BAMTOOLS_VERSION}" + cd $build_dir + rm augustus-${AUGUSTUS_VERSION}.tar.gz note_installed $augustus_dir fi export AUGUSTUS_CONFIG_PATH="$build_dir/augustus-${AUGUSTUS_VERSION}/config" -# cd $build_dir -# echo "Download Augustus-v${AUGUSTUS_VERSION}" -# git clone $AUGUSTUS_DOWNLOAD_URL -# cd Augustus -# git submodule update --init -# git checkout -f -q $AUGUSTUS_GITHUB_COMMIT_VERSION -# cd $build_dir/augustus-${AUGUSTUS_VERSION}/auxprogs/bam2hints/ -# cp $LRSDAY_HOME/misc/bam2hints.Makefile Makefile -# cd $build_dir/augustus-${AUGUSTUS_VERSION}/auxprogs/filterBam/src/ -# cp $LRSDAY_HOME/misc/filterBam.Makefile Makefile -# cd $build_dir/augustus-${AUGUSTUS_VERSION} -# make BAMTOOLS="$build_dir/bamtools-${BAMTOOLS_VERSION}" -# augustus_dir="$build_dir/augustus-${AUGUSTUS_VERSION}/bin" -# export AUGUSTUS_CONFIG_PATH="$build_dir/augustus-${AUGUSTUS_VERSION}/config" -# cd $build_dir -# rm augustus-${AUGUSTUS_VERSION}.tar.gz - - # --------------- EVidenceModeler ------------------ evm_dir="$build_dir/EVidenceModeler-${EVM_VERSION}" +echo "" +echo "[$(timestamp)] Installing EVM ..." if [ -z $(check_installed $evm_dir) ]; then cd $build_dir + clean "$build_dir/EVidenceModeler-${EVM_VERSION}" echo "Download EvidenceModeler-v${EVM_VERSION}" - download_and_extract $EVM_DOWNLOAD_URL "v${EVM_VERSION}.tar.gz" + download $EVM_DOWNLOAD_URL "v${EVM_VERSION}.tar.gz" + tar xvzf v${EVM_VERSION}.tar.gz + rm v${EVM_VERSION}.tar.gz note_installed $evm_dir fi # --------------- Proteinortho ------------------ -proteinortho_dir="$build_dir/proteinortho_v${PROTEINORTHO_VERSION}" +proteinortho_dir="$build_dir/proteinortho_conda_env/bin" +diamond_dir="$build_dir/proteinortho_conda_env/bin" +echo "" +echo "[$(timestamp)] Installing proteinortho ..." if [ -z $(check_installed $proteinortho_dir) ]; then cd $build_dir + clean "$build_dir/proteinortho_conda_env" echo "Download Porteinortho-v${PROTEINORTHO_VERSION}" - - $miniconda3_dir/conda create -y -p $build_dir/proteinortho_conda_env # python=3.6 + $miniconda3_dir/conda create -y -p $build_dir/proteinortho_conda_env source $miniconda3_dir/activate $build_dir/proteinortho_conda_env $miniconda3_dir/conda install -y proteinortho=${PROTEINORTHO_VERSION} - $miniconda3_dir/conda install -y -c bioconda diamond=${DIAMOND_VERSION} - $miniconda3_dir/conda install -y -c bioconda blast=2.10.1 - $miniconda3_dir/conda install -y -c bioconda last=${LAST_VERSION} + # $miniconda3_dir/conda install -y -c bioconda diamond=${DIAMOND_VERSION} + # $miniconda3_dir/conda install -y -c bioconda blast=2.10.1 + # $miniconda3_dir/conda install -y -c bioconda last=${LAST_VERSION} source $miniconda3_dir/deactivate - proteinortho_dir="$build_dir/proteinortho_conda_env/bin" - diamond_dir="$build_dir/proteinortho_conda_env/bin" note_installed $proteinortho_dir fi # --------------- GATK3 ------------------ gatk3_dir="$build_dir/GATK3" +echo "" +echo "[$(timestamp)] Installing gatk3 ..." if [ -z $(check_installed $gatk3_dir) ]; then cd $build_dir + clean "$build_dir/GATK3" echo "Create the GATK3 folder for installation" mkdir GATK3 cd GATK3 - wget -nv --no-check-certificate $GATK3_DOWNLOAD_URL + #git clone $GATK3_DOWNLOAD_URL + download $GATK3_DOWNLOAD_URL gatk3.jar.gz + gunzip gatk3.jar.gz + mv gatk3.jar GenomeAnalysisTK.jar chmod 755 GenomeAnalysisTK.jar note_installed $gatk3_dir fi +# # --------------- MAKER ----------------- +# maker_dir="$build_dir/maker_conda_env/bin" +# echo "" +# echo "[$(timestamp)] Installing maker ..." +# if [ -z $(check_installed $maker_dir) ]; then +# cd $build_dir +# echo "Download MAKER-${MAKER_VERSION}" +# $miniconda3_dir/conda create -y -p $build_dir/maker_conda_env python=3.8 +# source $miniconda3_dir/activate $build_dir/maker_conda_env +# $miniconda3_dir/conda install -y -c bioconda maker==${MAKER_VERSION} +# source $miniconda3_dir/deactivate +# note_installed $maker_dir +# fi + # --------------- MAKER ----------------- maker_dir="$build_dir/maker/bin" if [ -z $(check_installed $maker_dir) ]; then cd $build_dir + clean "$build_dir/maker" echo "Download MAKER" - download_and_extract $MAKER_DOWNLOAD_URL "maker-v${MAKER_VERSION}.tgz" + cp -r $LRSDAY_HOME/misc/maker-${MAKER_VERSION}.tar.gz . + tar xvzf maker-${MAKER_VERSION}.tar.gz + mv maker-${MAKER_VERSION} maker cd $build_dir/maker/src/ cp $LRSDAY_HOME/misc/maker_Build.PL . echo "no"|perl maker_Build.PL ./Build install + cd $build_dir + rm maker-${MAKER_VERSION}.tar.gz note_installed $maker_dir fi + +# # --------------- Gff3toolkit ------------------ +# gff3toolkit_dir="$build_dir/gff3toolkit_conda_env/bin" +# echo "" +# echo "[$(timestamp)] Installing gff3toolkit ..." +# if [ -z $(check_installed $gff3toolkit_dir) ]; then +# cd $build_dir +# clean "$build_dir/gff3toolkit_conda_env" +# echo "Download GFF3toolkit-v${GFF3TOOLKIT_VERSION}" +# $miniconda3_dir/conda create -y -p $build_dir/gff3toolkit_conda_env python=3.7 +# source $miniconda3_dir/activate $build_dir/gff3toolkit_conda_env +# cd gff3toolkit_conda_env +# git clone $GFF3TOOLKIT_DOWNLOAD_URL +# cd GFF3toolkit +# python setup.py install +# #$miniconda3_dir/conda install -y pip +# #pip3 install gff3tool==${GFF3TOOLKIT_VERSION} +# source $miniconda3_dir/deactivate +# note_installed $gff3toolkit_dir +# fi + # --------------- UCSC Utilities ----------------- ucsc_dir="$build_dir/UCSC_Utilities" +echo "" +echo "[$(timestamp)] Installing UCSC utilities ..." if [ -z $(check_installed $ucsc_dir) ]; then cd $build_dir + clean "$build_dir/UCSC_Utilities" mkdir UCSC_Utilities cd $ucsc_dir download $BLAT_DOWNLOAD_URL "blat" @@ -1149,55 +1608,80 @@ fi # --------------- EMBOSS ------------------ emboss_dir="$build_dir/EMBOSS-${EMBOSS_VERSION}/emboss" +echo "" +echo "[$(timestamp)] Installing emboss ..." if [ -z $(check_installed $emboss_dir) ]; then cd $build_dir + clean "$build_dir/EMBOSS-${EMBOSS_VERSION}" echo "Download EMBOSS" - download_and_extract $EMBOSS_DOWNLOAD_URL "emboss_v${EMBOSS_VERSION}.tar.gz" + download $EMBOSS_DOWNLOAD_URL "emboss_v${EMBOSS_VERSION}.tar.gz" + tar xvzf emboss_v${EMBOSS_VERSION}.tar.gz cd EMBOSS-${EMBOSS_VERSION} ./configure --without-x make -j $MAKE_JOBS + cd $build_dir + rm emboss_v${EMBOSS_VERSION}.tar.gz note_installed $emboss_dir fi # --------------- ERPIN ------------------ erpin_dir="$build_dir/erpin${ERPIN_VERSION}.serv/bin" +echo "" +echo "[$(timestamp)] Installing erpin ..." if [ -z $(check_installed $erpin_dir) ]; then cd $build_dir + clean "$build_dir/erpin${ERPIN_VERSION}.serv" echo "Download ERPIN" - download_and_extract $ERPIN_DOWNLOAD_URL "erpin_v${ERPIN_VERSION}.tar.gz" + download $ERPIN_DOWNLOAD_URL "erpin_v${ERPIN_VERSION}.tar.gz" + tar xvzf erpin_v${ERPIN_VERSION}.tar.gz cd erpin${ERPIN_VERSION}.serv make -j $MAKE_JOBS + cd $build_dir + rm erpin_v${ERPIN_VERSION}.tar.gz note_installed $erpin_dir fi # --------------- tbl2asn ------------------ tbl2asn_dir="$build_dir/tbl2asn_dir" +echo "" +echo "[$(timestamp)] Installing tbl2asn ..." if [ -z $(check_installed $tbl2asn_dir) ]; then cd $build_dir + clean "$build_dir/tbl2asn_dir" echo "Download tbl2asn" - download $TBL2ASN_DOWNLOAD_URL "tbl2asn.gz" mkdir tbl2asn_dir + cd tbl2asn_dir + wget -c $TBL2ASN_DOWNLOAD_URL # linux64.tbl2asn.gz + mv linux64.tbl2asn.gz tbl2asn.gz gunzip tbl2asn.gz chmod 755 tbl2asn - mv tbl2asn ./tbl2asn_dir/ note_installed $tbl2asn_dir fi # --------------- PirObject ---------------- pirobject_dir="$build_dir/PirObject-${PIROBJECT_VERSION}" +echo "" +echo "[$(timestamp)] Installing PirObject ..." if [ -z $(check_installed $pirobject_dir) ]; then cd $build_dir + clean "$build_dir/PirObject-${PIROBJECT_VERSION}" echo "Download PirObject" - download_and_extract $PIROBJECT_DOWNLOAD_URL "pirobject_v${PIROBJECT_VERSION}.tar.gz" + download $PIROBJECT_DOWNLOAD_URL "pirobject_v${PIROBJECT_VERSION}.tar.gz" + tar xvzf pirobject_v${PIROBJECT_VERSION}.tar.gz cd PirObject-${PIROBJECT_VERSION} ln -s ./lib/PirObject.pm . + cd $build_dir + rm pirobject_v${PIROBJECT_VERSION}.tar.gz note_installed $pirobject_dir fi # --------------- PirModels ------------------ pirmodels_dir="$pirobject_dir/PirModels" +echo "" +echo "[$(timestamp)] Installing PirModels ..." if [ -z $(check_installed $pirmodels_dir) ]; then cd $build_dir + clean "$pirobject_dir/PirModels" echo "Download PirModels" git clone $PIRMODELS_DOWNLOAD_URL cd PirModels @@ -1207,11 +1691,13 @@ if [ -z $(check_installed $pirmodels_dir) ]; then note_installed $pirmodels_dir fi - # --------------- Flip ------------------ flip_dir="$build_dir/Flip" +echo "" +echo "[$(timestamp)] Installing Flip ..." if [ -z $(check_installed $flip_dir) ]; then cd $build_dir + clean "$build_dir/Flip" echo "Download Flip" git clone $FLIP_DOWNLOAD_URL cd Flip @@ -1224,8 +1710,11 @@ fi # --------------- Umac ------------------ umac_dir="$build_dir/Umac" +echo "" +echo "[$(timestamp)] Installing Umac ..." if [ -z $(check_installed $umac_dir) ]; then cd $build_dir + clean "$build_dir/Umac" echo "Download Umac" git clone $UMAC_DOWNLOAD_URL cd Umac @@ -1236,8 +1725,11 @@ fi # --------------- HMMsearchWC ------------------ hmmsearchwc_dir="$build_dir/HMMsearchWC" +echo "" +echo "[$(timestamp)] Installing HMMsearchWC ..." if [ -z $(check_installed $hmmsearchwc_dir) ]; then cd $build_dir + clean "$build_dir/HMMsearchWC" echo "Download HMMsearchWC" git clone $HMMSEARCHWC_DOWNLOAD_URL cd HMMsearchWC @@ -1248,8 +1740,11 @@ fi # --------------- RNAfinder ------------------ rnafinder_dir="$build_dir/RNAfinder" +echo "" +echo "[$(timestamp)] Installing RNAfinder ..." if [ -z $(check_installed $rnafinder_dir) ]; then cd $build_dir + clean "$build_dir/RNAfinder" echo "Download RNAfinder" git clone $RNAFINDER_DOWNLOAD_URL cd RNAfinder @@ -1261,8 +1756,11 @@ fi # --------------- Mf2sqn ------------------ mf2sqn_dir="$build_dir/Mf2sqn" +echo "" +echo "[$(timestamp)] Installing Mf2sqn ..." if [ -z $(check_installed $mf2sqn_dir) ]; then cd $build_dir + clean "$build_dir/Mf2sqn" echo "Download Mf2sqn" git clone $MF2SQN_DOWNLOAD_URL cd Mf2sqn @@ -1273,8 +1771,11 @@ fi # --------------- grab-fasta ------------------ grab_fasta_dir="$build_dir/grab-fasta" +echo "" +echo "[$(timestamp)] Installing grab-fasta ..." if [ -z $(check_installed $grab_fasta_dir) ]; then cd $build_dir + clean "$build_dir/grab-fasta" echo "Download grab-fasta" git clone $GRAB_FASTA_DOWNLOAD_URL cd grab-fasta @@ -1284,8 +1785,11 @@ fi # --------------- MFannot_data ------------------ mfannot_data_dir="$build_dir/MFannot_data" +echo "" +echo "[$(timestamp)] Installing MFannot_data ..." if [ -z $(check_installed $mfannot_data_dir) ]; then cd $build_dir + clean "$build_dir/MFannot_data" echo "Download MFannot_data" git clone $MFANNOT_DATA_DOWNLOAD_URL cd MFannot_data @@ -1293,11 +1797,13 @@ if [ -z $(check_installed $mfannot_data_dir) ]; then note_installed $mfannot_data_dir fi - # --------------- MFannot ------------------ mfannot_dir="$build_dir/MFannot" +echo "" +echo "[$(timestamp)] Installing MFannot ..." if [ -z $(check_installed $mfannot_dir) ]; then cd $build_dir + clean "$build_dir/MFannot" echo "Download MFannot" git clone $MFANNOT_DOWNLOAD_URL cd MFannot @@ -1314,31 +1820,40 @@ echo "export build_dir=${build_dir}" >> env.sh echo "export PYTHONPATH=${PYTHONPATH}" >> env.sh echo "export PERL5LIB=${PERL5LIB}" >> env.sh echo "export cpanm_dir=${cpanm_dir}" >> env.sh +if [[ $lite_installation == "no" ]] +then + echo "export miniconda2_dir=${miniconda2_dir}" >> env.sh + echo "export pbassembly_dir=${pbassembly_dir}" >> env.sh + echo "export bax2bam_dir=${bax2bam_dir}" >> env.sh +fi echo "export miniconda3_dir=${miniconda3_dir}" >> env.sh -echo "export sra_dir=${sra_dir}" >> env.sh +# echo "export sra_dir=${sra_dir}" >> env.sh echo "export porechop_dir=${porechop_dir}" >> env.sh echo "export filtlong_dir=${filtlong_dir}" >> env.sh echo "export minimap2_dir=${minimap2_dir}" >> env.sh echo "export canu_dir=${canu_dir}" >> env.sh +# echo "export whatshap_dir=${whatshap_dir}" >> env.sh echo "export flye_dir=${flye_dir}" >> env.sh echo "export wtdbg2_dir=${wtdbg2_dir}" >> env.sh echo "export smartdenovo_dir=${smartdenovo_dir}" >> env.sh -echo "export ra_dir=${ra_dir}" >> env.sh +# echo "export raven_dir=${raven_dir}" >> env.sh echo "export shasta_dir=${shasta_dir}" >> env.sh -echo "export pacbio_dir=${pacbio_dir}" >> env.sh -echo "export guppy_dir=${guppy_dir}" >> env.sh +echo "export guppy_cpu_dir=${guppy_cpu_dir}" >> env.sh +echo "export guppy_gpu_dir=${guppy_gpu_dir}" >> env.sh +# echo "export bonito_dir=${bonito_dir}" >> env.sh +# echo "export nanofilt_dir=${nanofilt_dir}" >> env.sh echo "export nanoplot_dir=${nanoplot_dir}" >> env.sh echo "export nanopolish_dir=${nanopolish_dir}" >> env.sh -echo "export nanopolish_virtualenv_dir=${nanopolish_virtualenv_dir}" >> env.sh echo "export parallel_dir=${parallel_dir}" >> env.sh echo "export medaka_dir=${medaka_dir}" >> env.sh echo "export racon_dir=${racon_dir}" >> env.sh -echo "export marginpolish_dir=${marginpolish_dir}" >> env.sh -echo "export helen_dir=${helen_dir}" >> env.sh -echo "export helen_virtualenv_dir=${helen_virtualenv_dir}" >> env.sh +# echo "export marginpolish_dir=${marginpolish_dir}" >> env.sh +# echo "export helen_dir=${helen_dir}" >> env.sh +# echo "export pepper_dir=${pepper_dir}" >> env.sh +# echo "export homopolish_dir=${homopolish_dir}" >> env.sh # echo "export quast_dir=${quast_dir}" >> env.sh echo "export ragout_dir=${ragout_dir}" >> env.sh -echo "export ragoo_dir=${ragoo_dir}" >> env.sh +echo "export ragtag_dir=${ragtag_dir}" >> env.sh # echo "export hdf_dir=${hdf_dir}" >> env.sh # echo "export h5prefix=${h5prefix}" >> env.sh # echo "export hal_dir=${hal_dir}" >> env.sh @@ -1347,12 +1862,13 @@ echo "export gnuplot_dir=${gnuplot_dir}" >> env.sh echo "export bedtools_dir=${bedtools_dir}" >> env.sh echo "export spades_dir=${spades_dir}" >> env.sh echo "export prodigal_dir=${prodigal_dir}" >> env.sh -echo "export cap_dir=${cap_dir}" >> env.sh +echo "export cap3_dir=${cap3_dir}" >> env.sh echo "export circlator_dir=${circlator_dir}" >> env.sh echo "export trimmomatic_dir=${trimmomatic_dir}" >> env.sh echo "export bwa_dir=${bwa_dir}" >> env.sh echo "export samtools_dir=${samtools_dir}" >> env.sh echo "export picard_dir=${picard_dir}" >> env.sh +#echo "export hapog_dir=${hapog_dir}" >> env.sh echo "export pilon_dir=${pilon_dir}" >> env.sh echo "export exonerate_dir=${exonerate_dir}" >> env.sh echo "export blast_dir=${blast_dir}" >> env.sh @@ -1378,6 +1894,7 @@ echo "export maker_dir=${maker_dir}" >> env.sh echo "export proteinortho_dir=${proteinortho_dir}" >> env.sh echo "export diamond_dir=${diamond_dir}" >> env.sh echo "export gatk3_dir=${gatk3_dir}" >> env.sh +#echo "export gff3toolkit_dir=${gff3toolkit_dir}" >> env.sh echo "export ucsc_dir=${ucsc_dir}" >> env.sh ######### for Mfannot ########### @@ -1396,19 +1913,117 @@ echo "export mfannot_data_dir=${mfannot_data_dir}" >> env.sh echo "export mfannot_dir=${mfannot_dir}" >> env.sh +# test java configuration: requireds java 1.8 +echo "" +echo "##########################################" +echo "Testing java configuration ..." +echo "" +java_bin="" +if type -p java +then + java_bin=$(which java) + echo "found java executable in PATH: $java_bin" +elif [[ -n "$JAVA_HOME" ]] && [[ -x "$JAVA_HOME/bin/java" ]] +then + java_bin="$JAVA_HOME/bin/java" + echo "found java executable in JAVA_HOME: $java_bin" +else + echo ""; + echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"; + echo "Failed to detect Java installation in the system!" + echo "Please install java 1.8, which is a dependency of RecombineX!\n"; + echo "After the java installation, please manually set the directory path to java 1.8 executable on the last line of the env.sh file generated by this installation script!" + echo "export java_dir=" >> env.sh +fi + +if [[ -n "$java_bin" ]] +then + java_version=$("$java_bin" -version 2>&1 | awk -F '"' '/version/ {print $2}') + echo "detected java_version: $java_version" + if [ $(tidy_version "$java_version") -eq $(tidy_version "1.8") ] + then + java_dir=$(dirname $java_bin) + echo "export java_dir=${java_dir}" >> env.sh + echo "You have the correct java version for LRSDAY! LRSDAY will take care of the configuration." + else + echo ""; + echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"; + echo "Your java version is not the version required by LRSDAY (java v1.8)!" + echo "Please manually set the directory path to java 1.8 executable on the last line of the env.sh file generated by this installation script!" + echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"; + echo "export java_dir=" >> env.sh + fi +fi + + + echo "" echo "uncompress large supporting files ..." -gunzip $LRSDAY_HOME/data/Proteome_DB_for_annotation.CDhit_I95.fa.gz -gunzip $LRSDAY_HOME/data/SGDref.PoFF.ffn.gz -gunzip $LRSDAY_HOME/data/SGDref.PoFF.faa.gz -gunzip $LRSDAY_HOME/data/te_proteins.fasta.gz -gunzip $LRSDAY_HOME/Example_Outputs/SK1.assembly.final.fa.gz -gunzip $LRSDAY_HOME/Example_Outputs/SK1.final.gff3.gz -gunzip $LRSDAY_HOME/Example_Outputs/SK1.final.trimmed_cds.fa.gz -gunzip $LRSDAY_HOME/Example_Outputs/SK1.final.cds.fa.gz -gunzip $LRSDAY_HOME/Example_Outputs/SK1.final.pep.fa.gz -gunzip $LRSDAY_HOME/Example_Outputs/SK1.assembly.final.filter.mummer2vcf.SNP.vcf.gz -gunzip $LRSDAY_HOME/Example_Outputs/SK1.assembly.final.filter.mummer2vcf.INDEL.vcf.gz +if [[ -e $LRSDAY_HOME/data/Proteome_DB_for_annotation.CDhit_I95.fa.gz ]] +then + gunzip $LRSDAY_HOME/data/Proteome_DB_for_annotation.CDhit_I95.fa.gz +fi + +if [[ -e $LRSDAY_HOME/data/SGDref.PoFF.ffn.gz ]] +then + gunzip $LRSDAY_HOME/data/SGDref.PoFF.ffn.gz +fi + +if [[ -e $LRSDAY_HOME/data/SGDref.PoFF.faa.gz ]] +then + gunzip $LRSDAY_HOME/data/SGDref.PoFF.faa.gz +fi + +if [[ -e $LRSDAY_HOME/data/SGDref.PoFF.gff.gz ]] +then + gunzip $LRSDAY_HOME/data/SGDref.PoFF.gff.gz +fi + +if [[ -e $LRSDAY_HOME/data/te_proteins.fasta.gz ]] +then + gunzip $LRSDAY_HOME/data/te_proteins.fasta.gz +fi + +if [[ -e $LRSDAY_HOME/Example_Outputs/CPG_1a.nuclear_genome.tidy.fa.gz ]] +then + gunzip $LRSDAY_HOME/Example_Outputs/CPG_1a.nuclear_genome.tidy.fa.gz +fi + +if [[ -e $LRSDAY_HOME/Example_Outputs/CPG_1a.nuclear_genome.tidy.gff3.gz ]] +then + gunzip $LRSDAY_HOME/Example_Outputs/CPG_1a.nuclear_genome.tidy.gff3.gz +fi + +if [[ -e $LRSDAY_HOME/Example_Outputs/CPG_1a.nuclear_genome.tidy.cds.fa.gz ]] +then + gunzip $LRSDAY_HOME/Example_Outputs/CPG_1a.nuclear_genome.tidy.cds.fa.gz +fi + +if [[ -e $LRSDAY_HOME/Example_Outputs/CPG_1a.nuclear_genome.tidy.pep.fa.gz ]] +then + gunzip $LRSDAY_HOME/Example_Outputs/CPG_1a.nuclear_genome.tidy.pep.fa.gz +fi + +if [[ -e $LRSDAY_HOME/Example_Outputs/CPG_1a.mitochondrial_genome.tidy.fa.gz ]] +then + gunzip $LRSDAY_HOME/Example_Outputs/CPG_1a.mitochondrial_genome.tidy.fa.gz +fi + +if [[ -e $LRSDAY_HOME/Example_Outputs/CPG_1a.mitochondrial_genome.tidy.gff3.gz ]] +then + gunzip $LRSDAY_HOME/Example_Outputs/CPG_1a.mitochondrial_genome.tidy.gff3.gz +fi + +if [[ -e $LRSDAY_HOME/Example_Outputs/CPG_1a.mitochondrial_genome.tidy.cds.fa.gz ]] +then + gunzip $LRSDAY_HOME/Example_Outputs/CPG_1a.mitochondrial_genome.tidy.cds.fa.gz +fi + +if [[ -e $LRSDAY_HOME/Example_Outputs/CPG_1a.mitochondrial_genome.tidy.pep.fa.gz ]] +then + gunzip $LRSDAY_HOME/Example_Outputs/CPG_1a.mitochondrial_genome.tidy.pep.fa.gz +fi + echo "done!" echo "" echo "" diff --git a/misc/cpanm b/misc/cpanm new file mode 100644 index 0000000..b72e5d8 --- /dev/null +++ b/misc/cpanm @@ -0,0 +1,1078 @@ +#!/usr/bin/env perl +# +# This is a pre-compiled source code for the cpanm (cpanminus) program. +# For more details about how to install cpanm, go to the following URL: +# +# https://github.com/miyagawa/cpanminus +# +# Quickstart: Run the following command and it will install itself for +# you. You might want to run it as a root with sudo if you want to install +# to places like /usr/local/bin. +# +# % curl -L https://cpanmin.us | perl - App::cpanminus +# +# If you don't have curl but wget, replace `curl -L` with `wget -O -`. + +# DO NOT EDIT -- this is an auto generated file + +# This chunk of stuff was generated by App::FatPacker. To find the original +# file's code, look for the end of this BEGIN block or the string 'FATPACK' +BEGIN { +my %fatpacked; + +$fatpacked{"App/cpanminus.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'APP_CPANMINUS'; + package App::cpanminus;our$VERSION="1.7046";1; +APP_CPANMINUS + +$fatpacked{"App/cpanminus/Dependency.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'APP_CPANMINUS_DEPENDENCY'; + package App::cpanminus::Dependency;use strict;use CPAN::Meta::Requirements;sub from_prereqs {my($class,$prereqs,$phases,$types)=@_;my@deps;for my$type (@$types){push@deps,$class->from_versions($prereqs->merged_requirements($phases,[$type])->as_string_hash,$type,)}return@deps}sub from_versions {my($class,$versions,$type)=@_;my@deps;while (my($module,$version)=each %$versions){push@deps,$class->new($module,$version,$type)}@deps}sub merge_with {my($self,$requirements)=@_;$self->{original_version}=$self->version;eval {$requirements->add_string_requirement($self->module,$self->version)};if ($@ =~ /illegal requirements/){warn sprintf("Can't merge requirements for %s: '%s' and '%s'",$self->module,$self->version,$requirements->requirements_for_module($self->module))}$self->{version}=$requirements->requirements_for_module($self->module)}sub new {my($class,$module,$version,$type)=@_;bless {module=>$module,version=>$version,type=>$type || 'requires',},$class}sub module {$_[0]->{module}}sub version {$_[0]->{version}}sub type {$_[0]->{type}}sub requires_version {my$self=shift;if (defined$self->{original_version}){return$self->{original_version}}$self->version}sub is_requirement {$_[0]->{type}eq 'requires'}1; +APP_CPANMINUS_DEPENDENCY + +$fatpacked{"App/cpanminus/script.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'APP_CPANMINUS_SCRIPT'; + package App::cpanminus::script;use strict;use Config;use Cwd ();use App::cpanminus;use App::cpanminus::Dependency;use File::Basename ();use File::Find ();use File::Path ();use File::Spec ();use File::Copy ();use File::Temp ();use Getopt::Long ();use Symbol ();use String::ShellQuote ();use version ();use constant WIN32=>$^O eq 'MSWin32';use constant BAD_TAR=>($^O eq 'solaris' || $^O eq 'hpux');use constant CAN_SYMLINK=>eval {symlink("","");1};our$VERSION=$App::cpanminus::VERSION;if ($INC{"App/FatPacker/Trace.pm"}){require version::vpp}my$quote=WIN32 ? q/"/ : q/'/;sub agent {my$self=shift;my$agent="cpanminus/$VERSION";$agent .= " perl/$]" if$self->{report_perl_version};$agent}sub determine_home {my$class=shift;my$homedir=$ENV{HOME}|| eval {require File::HomeDir;File::HomeDir->my_home}|| join('',@ENV{qw(HOMEDRIVE HOMEPATH)});if (WIN32){require Win32;$homedir=Win32::GetShortPathName($homedir)}return "$homedir/.cpanm"}sub new {my$class=shift;bless {home=>$class->determine_home,cmd=>'install',seen=>{},notest=>undef,test_only=>undef,installdeps=>undef,force=>undef,sudo=>undef,make=>undef,verbose=>undef,quiet=>undef,interactive=>undef,log=>undef,mirrors=>[],mirror_only=>undef,mirror_index=>undef,cpanmetadb=>"http://cpanmetadb.plackperl.org/v1.0/",perl=>$^X,argv=>[],local_lib=>undef,self_contained=>undef,exclude_vendor=>undef,prompt_timeout=>0,prompt=>undef,configure_timeout=>60,build_timeout=>3600,test_timeout=>1800,try_lwp=>1,try_wget=>1,try_curl=>1,uninstall_shadows=>($] < 5.012),skip_installed=>1,skip_satisfied=>0,auto_cleanup=>7,pod2man=>1,installed_dists=>0,install_types=>['requires'],with_develop=>0,with_configure=>0,showdeps=>0,scandeps=>0,scandeps_tree=>[],format=>'tree',save_dists=>undef,skip_configure=>0,verify=>0,report_perl_version=>!$class->maybe_ci,build_args=>{},features=>{},pure_perl=>0,cpanfile_path=>'cpanfile',@_,},$class}sub env {my($self,$key)=@_;$ENV{"PERL_CPANM_" .$key}}sub maybe_ci {my$class=shift;grep$ENV{$_},qw(TRAVIS CI AUTOMATED_TESTING AUTHOR_TESTING)}sub install_type_handlers {my$self=shift;my@handlers;for my$type (qw(recommends suggests)){push@handlers,"with-$type"=>sub {my%uniq;$self->{install_types}=[grep!$uniq{$_}++,@{$self->{install_types}},$type ]};push@handlers,"without-$type"=>sub {$self->{install_types}=[grep $_ ne $type,@{$self->{install_types}}]}}@handlers}sub build_args_handlers {my$self=shift;my@handlers;for my$phase (qw(configure build test install)){push@handlers,"$phase-args=s"=>\($self->{build_args}{$phase})}@handlers}sub parse_options {my$self=shift;local@ARGV=@{$self->{argv}};push@ARGV,grep length,split /\s+/,$self->env('OPT');push@ARGV,@_;Getopt::Long::Configure("bundling");Getopt::Long::GetOptions('f|force'=>sub {$self->{skip_installed}=0;$self->{force}=1},'n|notest!'=>\$self->{notest},'test-only'=>sub {$self->{notest}=0;$self->{skip_installed}=0;$self->{test_only}=1},'S|sudo!'=>\$self->{sudo},'v|verbose'=>\$self->{verbose},'verify!'=>\$self->{verify},'q|quiet!'=>\$self->{quiet},'h|help'=>sub {$self->{action}='show_help'},'V|version'=>sub {$self->{action}='show_version'},'perl=s'=>sub {$self->diag("--perl is deprecated since it's known to be fragile in figuring out dependencies. Run `$_[1] -S cpanm` instead.\n",1);$self->{perl}=$_[1]},'l|local-lib=s'=>sub {$self->{local_lib}=$self->maybe_abs($_[1])},'L|local-lib-contained=s'=>sub {$self->{local_lib}=$self->maybe_abs($_[1]);$self->{self_contained}=1;$self->{pod2man}=undef},'self-contained!'=>\$self->{self_contained},'exclude-vendor!'=>\$self->{exclude_vendor},'mirror=s@'=>$self->{mirrors},'mirror-only!'=>\$self->{mirror_only},'mirror-index=s'=>sub {$self->{mirror_index}=$self->maybe_abs($_[1])},'M|from=s'=>sub {$self->{mirrors}=[$_[1]];$self->{mirror_only}=1},'cpanmetadb=s'=>\$self->{cpanmetadb},'cascade-search!'=>\$self->{cascade_search},'prompt!'=>\$self->{prompt},'installdeps'=>\$self->{installdeps},'skip-installed!'=>\$self->{skip_installed},'skip-satisfied!'=>\$self->{skip_satisfied},'reinstall'=>sub {$self->{skip_installed}=0},'interactive!'=>\$self->{interactive},'i|install'=>sub {$self->{cmd}='install'},'info'=>sub {$self->{cmd}='info'},'look'=>sub {$self->{cmd}='look';$self->{skip_installed}=0},'U|uninstall'=>sub {$self->{cmd}='uninstall'},'self-upgrade'=>sub {$self->{action}='self_upgrade'},'uninst-shadows!'=>\$self->{uninstall_shadows},'lwp!'=>\$self->{try_lwp},'wget!'=>\$self->{try_wget},'curl!'=>\$self->{try_curl},'auto-cleanup=s'=>\$self->{auto_cleanup},'man-pages!'=>\$self->{pod2man},'scandeps'=>\$self->{scandeps},'showdeps'=>sub {$self->{showdeps}=1;$self->{skip_installed}=0},'format=s'=>\$self->{format},'save-dists=s'=>sub {$self->{save_dists}=$self->maybe_abs($_[1])},'skip-configure!'=>\$self->{skip_configure},'dev!'=>\$self->{dev_release},'metacpan!'=>\$self->{metacpan},'report-perl-version!'=>\$self->{report_perl_version},'configure-timeout=i'=>\$self->{configure_timeout},'build-timeout=i'=>\$self->{build_timeout},'test-timeout=i'=>\$self->{test_timeout},'with-develop'=>\$self->{with_develop},'without-develop'=>sub {$self->{with_develop}=0},'with-configure'=>\$self->{with_configure},'without-configure'=>sub {$self->{with_configure}=0},'with-feature=s'=>sub {$self->{features}{$_[1]}=1},'without-feature=s'=>sub {$self->{features}{$_[1]}=0},'with-all-features'=>sub {$self->{features}{__all}=1},'pp|pureperl!'=>\$self->{pure_perl},"cpanfile=s"=>\$self->{cpanfile_path},$self->install_type_handlers,$self->build_args_handlers,);if (!@ARGV && $0 ne '-' &&!-t STDIN){push@ARGV,$self->load_argv_from_fh(\*STDIN);$self->{load_from_stdin}=1}$self->{argv}=\@ARGV}sub check_upgrade {my$self=shift;my$install_base=$ENV{PERL_LOCAL_LIB_ROOT}? $self->local_lib_target($ENV{PERL_LOCAL_LIB_ROOT}): $Config{installsitebin};if ($0 eq '-'){return}elsif ($0 !~ /^$install_base/){if ($0 =~ m!perlbrew/bin!){die <{_checked}++;$self->bootstrap_local_lib}sub setup_verify {my$self=shift;my$has_modules=eval {require Module::Signature;require Digest::SHA;1};$self->{cpansign}=$self->which('cpansign');unless ($has_modules && $self->{cpansign}){warn "WARNING: Module::Signature and Digest::SHA is required for distribution verifications.\n";$self->{verify}=0}}sub parse_module_args {my($self,$module)=@_;$module =~ s/^([A-Za-z0-9_:]+)@([v\d\._]+)$/$1~== $2/;if ($module =~ /\~[v\d\._,\!<>= ]+$/){return split /\~/,$module,2}else {return$module,undef}}sub doit {my$self=shift;my$code;eval {$code=($self->_doit==0)};if (my$e=$@){warn$e;$code=1}return$code}sub _doit {my$self=shift;$self->setup_home;$self->init_tools;$self->setup_verify if$self->{verify};if (my$action=$self->{action}){$self->$action()and return 1}return$self->show_help(1)unless @{$self->{argv}}or $self->{load_from_stdin};$self->configure_mirrors;my$cwd=Cwd::cwd;my@fail;for my$module (@{$self->{argv}}){if ($module =~ s/\.pm$//i){my ($volume,$dirs,$file)=File::Spec->splitpath($module);$module=join '::',grep {$_}File::Spec->splitdir($dirs),$file}($module,my$version)=$self->parse_module_args($module);$self->chdir($cwd);if ($self->{cmd}eq 'uninstall'){$self->uninstall_module($module)or push@fail,$module}else {$self->install_module($module,0,$version)or push@fail,$module}}if ($self->{base}&& $self->{auto_cleanup}){$self->cleanup_workdirs}if ($self->{installed_dists}){my$dists=$self->{installed_dists}> 1 ? "distributions" : "distribution";$self->diag("$self->{installed_dists} $dists installed\n",1)}if ($self->{scandeps}){$self->dump_scandeps()}$self->chdir($cwd);return!@fail}sub setup_home {my$self=shift;$self->{home}=$self->env('HOME')if$self->env('HOME');unless (_writable($self->{home})){die "Can't write to cpanm home '$self->{home}': You should fix it with chown/chmod first.\n"}$self->{base}="$self->{home}/work/" .time .".$$";File::Path::mkpath([$self->{base}],0,0777);$self->{log}=File::Spec->catfile($self->{base},"build.log");my$final_log="$self->{home}/build.log";{open my$out,">$self->{log}" or die "$self->{log}: $!"}if (CAN_SYMLINK){my$build_link="$self->{home}/latest-build";unlink$build_link;symlink$self->{base},$build_link;unlink$final_log;symlink$self->{log},$final_log}else {my$log=$self->{log};my$home=$self->{home};$self->{at_exit}=sub {my$self=shift;my$temp_log="$home/build.log." .time .".$$";File::Copy::copy($log,$temp_log)&& unlink($final_log);rename($temp_log,$final_log)}}$self->chat("cpanm (App::cpanminus) $VERSION on perl $] built for $Config{archname}\n" ."Work directory is $self->{base}\n")}sub package_index_for {my ($self,$mirror)=@_;return$self->source_for($mirror)."/02packages.details.txt"}sub generate_mirror_index {my ($self,$mirror)=@_;my$file=$self->package_index_for($mirror);my$gz_file=$file .'.gz';my$index_mtime=(stat$gz_file)[9];unless (-e $file && (stat$file)[9]>= $index_mtime){$self->chat("Uncompressing index file...\n");if (eval {require Compress::Zlib}){my$gz=Compress::Zlib::gzopen($gz_file,"rb")or do {$self->diag_fail("$Compress::Zlib::gzerrno opening compressed index");return};open my$fh,'>',$file or do {$self->diag_fail("$! opening uncompressed index for write");return};my$buffer;while (my$status=$gz->gzread($buffer)){if ($status < 0){$self->diag_fail($gz->gzerror ." reading compressed index");return}print$fh $buffer}}else {if (system("gunzip -c $gz_file > $file")){$self->diag_fail("Cannot uncompress -- please install gunzip or Compress::Zlib");return}}utime$index_mtime,$index_mtime,$file}return 1}sub search_mirror_index {my ($self,$mirror,$module,$version)=@_;$self->search_mirror_index_file($self->package_index_for($mirror),$module,$version)}sub search_mirror_index_file {my($self,$file,$module,$version)=@_;open my$fh,'<',$file or return;my$found;while (<$fh>){if (m!^\Q$module\E\s+([\w\.]+)\s+(\S*)!m){$found=$self->cpan_module($module,$2,$1);last}}return$found unless$self->{cascade_search};if ($found){if ($self->satisfy_version($module,$found->{module_version},$version)){return$found}else {$self->chat("Found $module $found->{module_version} which doesn't satisfy $version.\n")}}return}sub with_version_range {my($self,$version)=@_;defined($version)&& $version =~ /(?:<|!=|==)/}sub encode_json {my($self,$data)=@_;require JSON::PP;my$json=JSON::PP::encode_json($data);$self->uri_escape($json)}sub decode_json {my($self,$json)=@_;require JSON::PP;JSON::PP::decode_json($json)}sub uri_escape {my($self,$fragment)=@_;$fragment =~ s/([^A-Za-z0-9\-\._~])/uc sprintf("%%%02X", ord($1))/eg;$fragment}sub uri_params {my($self,@params)=@_;my@param_strings;while (my$key=shift@params){my$value=shift@params;push@param_strings,join '=',map$self->uri_escape($_),$key,$value}return join '&',@param_strings}sub numify_ver {my($self,$ver)=@_;eval version->new($ver)->numify}sub search_metacpan {my($self,$module,$version,$dev_release)=@_;my$metacpan_uri='http://fastapi.metacpan.org/v1/download_url/';my$url=$metacpan_uri .$module;my$query=$self->uri_params(($version ? (version=>$version): ()),($dev_release ? (dev=>1): ()),);$url .= '?' .$query if length$query;my$dist_json=$self->get($url);my$dist_meta=eval {$self->decode_json($dist_json)};if ($dist_meta && $dist_meta->{download_url}){(my$distfile=$dist_meta->{download_url})=~ s!.+/authors/id/!!;local$self->{mirrors}=$self->{mirrors};$self->{mirrors}=['http://cpan.metacpan.org' ];return$self->cpan_module($module,$distfile,$dist_meta->{version})}$self->chat("! Could not find a release matching $module".($version?" ($version)":'')." on MetaCPAN.\n");return}sub search_database {my($self,$module,$version)=@_;my$found;if ($self->{dev_release}or $self->{metacpan}){$found=$self->search_metacpan($module,$version,$self->{dev_release})and return$found;$found=$self->search_cpanmetadb($module,$version,$self->{dev_release})and return$found}else {$found=$self->search_cpanmetadb($module,$version)and return$found;$found=$self->search_metacpan($module,$version)and return$found}}sub search_cpanmetadb {my($self,$module,$version,$dev_release)=@_;$self->chat("Searching $module ($version) on cpanmetadb ...\n");if ($self->with_version_range($version)){return$self->search_cpanmetadb_history($module,$version,$dev_release)}else {return$self->search_cpanmetadb_package($module,$version,$dev_release)}}sub search_cpanmetadb_package {my($self,$module,$version,$dev_release)=@_;require CPAN::Meta::YAML;(my$uri=$self->{cpanmetadb})=~ s{/?$}{/package/$module};my$yaml=$self->get($uri);my$meta=eval {CPAN::Meta::YAML::Load($yaml)};if ($meta && $meta->{distfile}){return$self->cpan_module($module,$meta->{distfile},$meta->{version})}$self->diag_fail("Finding $module on cpanmetadb failed.");return}sub search_cpanmetadb_history {my($self,$module,$version)=@_;(my$uri=$self->{cpanmetadb})=~ s{/?$}{/history/$module};my$content=$self->get($uri)or return;my@found;for my$line (split /\r?\n/,$content){if ($line =~ /^$module\s+(\S+)\s+(\S+)$/){push@found,{version=>$1,version_obj=>version::->parse($1),distfile=>$2,}}}return unless@found;$found[-1]->{latest}=1;my$match;for my$try (sort {$b->{version_obj}cmp $a->{version_obj}}@found){if ($self->satisfy_version($module,$try->{version_obj},$version)){local$self->{mirrors}=$self->{mirrors};unshift @{$self->{mirrors}},'http://backpan.perl.org' unless$try->{latest};return$self->cpan_module($module,$try->{distfile},$try->{version})}}$self->diag_fail("Finding $module ($version) on cpanmetadb failed.");return}sub search_module {my($self,$module,$version)=@_;if ($self->{mirror_index}){$self->mask_output(chat=>"Searching $module on mirror index $self->{mirror_index} ...\n");my$pkg=$self->search_mirror_index_file($self->{mirror_index},$module,$version);return$pkg if$pkg;unless ($self->{cascade_search}){$self->mask_output(diag_fail=>"Finding $module ($version) on mirror index $self->{mirror_index} failed.");return}}unless ($self->{mirror_only}){my$found=$self->search_database($module,$version);return$found if$found}MIRROR: for my$mirror (@{$self->{mirrors}}){$self->mask_output(chat=>"Searching $module on mirror $mirror ...\n");my$name='02packages.details.txt.gz';my$uri="$mirror/modules/$name";my$gz_file=$self->package_index_for($mirror).'.gz';unless ($self->{pkgs}{$uri}){$self->mask_output(chat=>"Downloading index file $uri ...\n");$self->mirror($uri,$gz_file);$self->generate_mirror_index($mirror)or next MIRROR;$self->{pkgs}{$uri}="!!retrieved!!"}my$pkg=$self->search_mirror_index($mirror,$module,$version);return$pkg if$pkg;$self->mask_output(diag_fail=>"Finding $module ($version) on mirror $mirror failed.")}return}sub source_for {my($self,$mirror)=@_;$mirror =~ s/[^\w\.\-]+/%/g;my$dir="$self->{home}/sources/$mirror";File::Path::mkpath([$dir ],0,0777);return$dir}sub load_argv_from_fh {my($self,$fh)=@_;my@argv;while(defined(my$line=<$fh>)){chomp$line;$line =~ s/#.+$//;$line =~ s/^\s+//;$line =~ s/\s+$//;push@argv,split ' ',$line if$line}return@argv}sub show_version {my$self=shift;print "cpanm (App::cpanminus) version $VERSION ($0)\n";print "perl version $] ($^X)\n\n";print " \%Config:\n";for my$key (qw(archname installsitelib installsitebin installman1dir installman3dir sitearchexp sitelibexp vendorarch vendorlibexp archlibexp privlibexp)){print " $key=$Config{$key}\n" if$Config{$key}}print " \%ENV:\n";for my$key (grep /^PERL/,sort keys%ENV){print " $key=$ENV{$key}\n"}print " \@INC:\n";for my$inc (@INC){print " $inc\n" unless ref($inc)eq 'CODE'}return 1}sub show_help {my$self=shift;if ($_[0]){print <splitdir($dir);while (@dir){$dir=File::Spec->catdir(@dir);if (-e $dir){return -w _}pop@dir}return}sub maybe_abs {my($self,$lib)=@_;if ($lib eq '_' or $lib =~ /^~/ or File::Spec->file_name_is_absolute($lib)){return$lib}else {return File::Spec->canonpath(File::Spec->catdir(Cwd::cwd(),$lib))}}sub local_lib_target {my($self,$root)=@_;(grep {$_ ne ''}split /\Q$Config{path_sep}/,$root)[0]}sub bootstrap_local_lib {my$self=shift;if ($self->{local_lib}){return$self->setup_local_lib($self->{local_lib})}if ($ENV{PERL_LOCAL_LIB_ROOT}&& $ENV{PERL_MM_OPT}){return$self->setup_local_lib($self->local_lib_target($ENV{PERL_LOCAL_LIB_ROOT}),1)}return if$self->{sudo}or (_writable($Config{installsitelib})and _writable($Config{installsitebin}));if ($ENV{PERL_MM_OPT}and ($ENV{MODULEBUILDRC}or $ENV{PERL_MB_OPT})){return}$self->setup_local_lib;$self->diag(<module=>$_}@$config_deps;my$reqs=CPAN::Meta::Requirements->from_string_hash({'Module::Build'=>'0.38','ExtUtils::MakeMaker'=>'6.58','ExtUtils::Install'=>'1.46',});if ($deps{"ExtUtils::MakeMaker"}){$deps{"ExtUtils::MakeMaker"}->merge_with($reqs)}elsif ($deps{"Module::Build"}){$deps{"Module::Build"}->merge_with($reqs);$deps{"ExtUtils::Install"}||= App::cpanminus::Dependency->new("ExtUtils::Install",0,'configure');$deps{"ExtUtils::Install"}->merge_with($reqs)}@$config_deps=values%deps}sub _core_only_inc {my($self,$base)=@_;require local::lib;(local::lib->resolve_path(local::lib->install_base_arch_path($base)),local::lib->resolve_path(local::lib->install_base_perl_path($base)),(!$self->{exclude_vendor}? grep {$_}@Config{qw(vendorarch vendorlibexp)}: ()),@Config{qw(archlibexp privlibexp)},)}sub _diff {my($self,$old,$new)=@_;my@diff;my%old=map {$_=>1}@$old;for my$n (@$new){push@diff,$n unless exists$old{$n}}@diff}sub _setup_local_lib_env {my($self,$base)=@_;$self->diag(<setup_env_hash_for($base,0)}sub setup_local_lib {my($self,$base,$no_env)=@_;$base=undef if$base eq '_';require local::lib;{local $0='cpanm';$base ||= "~/perl5";$base=local::lib->resolve_path($base);if ($self->{self_contained}){my@inc=$self->_core_only_inc($base);$self->{search_inc}=[@inc ]}else {$self->{search_inc}=[local::lib->install_base_arch_path($base),local::lib->install_base_perl_path($base),@INC,]}$self->_setup_local_lib_env($base)unless$no_env;$self->{local_lib}=$base}}sub prompt_bool {my($self,$mess,$def)=@_;my$val=$self->prompt($mess,$def);return lc$val eq 'y'}sub prompt {my($self,$mess,$def)=@_;my$isa_tty=-t STDIN && (-t STDOUT ||!(-f STDOUT || -c STDOUT));my$dispdef=defined$def ? "[$def] " : " ";$def=defined$def ? $def : "";if (!$self->{prompt}|| (!$isa_tty && eof STDIN)){return$def}local $|=1;local $\;my$ans;eval {local$SIG{ALRM}=sub {undef$ans;die "alarm\n"};print STDOUT "$mess $dispdef";alarm$self->{prompt_timeout}if$self->{prompt_timeout};$ans=;alarm 0};if (defined$ans){chomp$ans}else {print STDOUT "\n"}return (!defined$ans || $ans eq '')? $def : $ans}sub diag_ok {my($self,$msg)=@_;chomp$msg;$msg ||= "OK";if ($self->{in_progress}){$self->_diag("$msg\n");$self->{in_progress}=0}$self->log("-> $msg\n")}sub diag_fail {my($self,$msg,$always)=@_;chomp$msg;if ($self->{in_progress}){$self->_diag("FAIL\n");$self->{in_progress}=0}if ($msg){$self->_diag("! $msg\n",$always,1);$self->log("-> FAIL $msg\n")}}sub diag_progress {my($self,$msg)=@_;chomp$msg;$self->{in_progress}=1;$self->_diag("$msg ... ");$self->log("$msg\n")}sub _diag {my($self,$msg,$always,$error)=@_;my$fh=$error ? *STDERR : *STDOUT;print {$fh}$msg if$always or $self->{verbose}or!$self->{quiet}}sub diag {my($self,$msg,$always)=@_;$self->_diag($msg,$always);$self->log($msg)}sub chat {my$self=shift;print STDERR @_ if$self->{verbose};$self->log(@_)}sub mask_output {my$self=shift;my$method=shift;$self->$method($self->mask_uri_passwords(@_))}sub log {my$self=shift;open my$out,">>$self->{log}";print$out @_}sub run {my($self,$cmd)=@_;if (WIN32){$cmd=$self->shell_quote(@$cmd)if ref$cmd eq 'ARRAY';unless ($self->{verbose}){$cmd .= " >> " .$self->shell_quote($self->{log})." 2>&1"}!system$cmd}else {my$pid=fork;if ($pid){waitpid$pid,0;return!$?}else {$self->run_exec($cmd)}}}sub run_exec {my($self,$cmd)=@_;if (ref$cmd eq 'ARRAY'){unless ($self->{verbose}){open my$logfh,">>",$self->{log};open STDERR,'>&',$logfh;open STDOUT,'>&',$logfh;close$logfh}exec @$cmd}else {unless ($self->{verbose}){$cmd .= " >> " .$self->shell_quote($self->{log})." 2>&1"}exec$cmd}}sub run_timeout {my($self,$cmd,$timeout)=@_;return$self->run($cmd)if WIN32 || $self->{verbose}||!$timeout;my$pid=fork;if ($pid){eval {local$SIG{ALRM}=sub {die "alarm\n"};alarm$timeout;waitpid$pid,0;alarm 0};if ($@ && $@ eq "alarm\n"){$self->diag_fail("Timed out (> ${timeout}s). Use --verbose to retry.");local$SIG{TERM}='IGNORE';kill TERM=>0;waitpid$pid,0;return}return!$?}elsif ($pid==0){$self->run_exec($cmd)}else {$self->chat("! fork failed: falling back to system()\n");$self->run($cmd)}}sub append_args {my($self,$cmd,$phase)=@_;if (my$args=$self->{build_args}{$phase}){$cmd=join ' ',$self->shell_quote(@$cmd),$args}$cmd}sub configure {my($self,$cmd,$depth)=@_;local$ENV{PERL5_CPAN_IS_RUNNING}=local$ENV{PERL5_CPANPLUS_IS_RUNNING}=$$;local$ENV{PERL5_CPANM_IS_RUNNING}=$$;my$use_default=!$self->{interactive};local$ENV{PERL_MM_USE_DEFAULT}=$use_default;local$ENV{PERL_MM_OPT}=$ENV{PERL_MM_OPT};local$ENV{PERL_MB_OPT}=$ENV{PERL_MB_OPT};unless ($self->{pod2man}){$ENV{PERL_MM_OPT}.= " INSTALLMAN1DIR=none INSTALLMAN3DIR=none";$ENV{PERL_MB_OPT}.= " --config installman1dir= --config installsiteman1dir= --config installman3dir= --config installsiteman3dir="}if ($self->{pure_perl}){$ENV{PERL_MM_OPT}.= " PUREPERL_ONLY=1";$ENV{PERL_MB_OPT}.= " --pureperl-only"}local$ENV{PERL_USE_UNSAFE_INC}=1 unless exists$ENV{PERL_USE_UNSAFE_INC};$cmd=$self->append_args($cmd,'configure')if$depth==0;local$self->{verbose}=$self->{verbose}|| $self->{interactive};$self->run_timeout($cmd,$self->{configure_timeout})}sub build {my($self,$cmd,$distname,$depth)=@_;local$ENV{PERL_MM_USE_DEFAULT}=!$self->{interactive};local$ENV{PERL_USE_UNSAFE_INC}=1 unless exists$ENV{PERL_USE_UNSAFE_INC};$cmd=$self->append_args($cmd,'build')if$depth==0;return 1 if$self->run_timeout($cmd,$self->{build_timeout});while (1){my$ans=lc$self->prompt("Building $distname failed.\nYou can s)kip, r)etry, e)xamine build log, or l)ook ?","s");return if$ans eq 's';return$self->build($cmd,$distname,$depth)if$ans eq 'r';$self->show_build_log if$ans eq 'e';$self->look if$ans eq 'l'}}sub test {my($self,$cmd,$distname,$depth)=@_;return 1 if$self->{notest};local$ENV{PERL_MM_USE_DEFAULT}=!$self->{interactive};local$ENV{NONINTERACTIVE_TESTING}=!$self->{interactive};$cmd=$self->append_args($cmd,'test')if$depth==0;local$ENV{PERL_USE_UNSAFE_INC}=1 unless exists$ENV{PERL_USE_UNSAFE_INC};return 1 if$self->run_timeout($cmd,$self->{test_timeout});if ($self->{force}){$self->diag_fail("Testing $distname failed but installing it anyway.");return 1}else {$self->diag_fail;while (1){my$ans=lc$self->prompt("Testing $distname failed.\nYou can s)kip, r)etry, f)orce install, e)xamine build log, or l)ook ?","s");return if$ans eq 's';return$self->test($cmd,$distname,$depth)if$ans eq 'r';return 1 if$ans eq 'f';$self->show_build_log if$ans eq 'e';$self->look if$ans eq 'l'}}}sub install {my($self,$cmd,$uninst_opts,$depth)=@_;if ($depth==0 && $self->{test_only}){return 1}local$ENV{PERL_USE_UNSAFE_INC}=1 unless exists$ENV{PERL_USE_UNSAFE_INC};if ($self->{sudo}){unshift @$cmd,"sudo"}if ($self->{uninstall_shadows}&&!$ENV{PERL_MM_OPT}){push @$cmd,@$uninst_opts}$cmd=$self->append_args($cmd,'install')if$depth==0;$self->run($cmd)}sub look {my$self=shift;my$shell=$ENV{SHELL};$shell ||= $ENV{COMSPEC}if WIN32;if ($shell){my$cwd=Cwd::cwd;$self->diag("Entering $cwd with $shell\n");system$shell}else {$self->diag_fail("You don't seem to have a SHELL :/")}}sub show_build_log {my$self=shift;my@pagers=($ENV{PAGER},(WIN32 ? (): ('less')),'more');my$pager;while (@pagers){$pager=shift@pagers;next unless$pager;$pager=$self->which($pager);next unless$pager;last}if ($pager){system("$pager < $self->{log}")}else {$self->diag_fail("You don't seem to have a PAGER :/")}}sub chdir {my$self=shift;Cwd::chdir(File::Spec->canonpath($_[0]))or die "$_[0]: $!"}sub configure_mirrors {my$self=shift;unless (@{$self->{mirrors}}){$self->{mirrors}=['http://www.cpan.org' ]}for (@{$self->{mirrors}}){s!^/!file:///!;s!/$!!}}sub self_upgrade {my$self=shift;$self->check_upgrade;$self->{argv}=['App::cpanminus' ];return}sub install_module {my($self,$module,$depth,$version)=@_;$self->check_libs;if ($self->{seen}{$module}++){$self->chat("Already tried $module. Skipping.\n");return 1}if ($self->{skip_satisfied}){my($ok,$local)=$self->check_module($module,$version || 0);if ($ok){$self->diag("You have $module ($local)\n",1);return 1}}my$dist=$self->resolve_name($module,$version);unless ($dist){my$what=$module .($version ? " ($version)" : "");$self->diag_fail("Couldn't find module or a distribution $what",1);return}if ($dist->{distvname}&& $self->{seen}{$dist->{distvname}}++){$self->chat("Already tried $dist->{distvname}. Skipping.\n");return 1}if ($self->{cmd}eq 'info'){print$self->format_dist($dist),"\n";return 1}$dist->{depth}=$depth;if ($dist->{module}){unless ($self->satisfy_version($dist->{module},$dist->{module_version},$version)){$self->diag("Found $dist->{module} $dist->{module_version} which doesn't satisfy $version.\n",1);return}my$cmp=$version ? "==" : "";my$requirement=$dist->{module_version}? "$cmp$dist->{module_version}" : 0;my($ok,$local)=$self->check_module($dist->{module},$requirement);if ($self->{skip_installed}&& $ok){$self->diag("$dist->{module} is up to date. ($local)\n",1);return 1}}if ($dist->{dist}eq 'perl'){$self->diag("skipping $dist->{pathname}\n");return 1}$self->diag("--> Working on $module\n");$dist->{dir}||= $self->fetch_module($dist);unless ($dist->{dir}){$self->diag_fail("Failed to fetch distribution $dist->{distvname}",1);return}$self->chat("Entering $dist->{dir}\n");$self->chdir($self->{base});$self->chdir($dist->{dir});if ($self->{cmd}eq 'look'){$self->look;return 1}return$self->build_stuff($module,$dist,$depth)}sub uninstall_search_path {my$self=shift;$self->{local_lib}? (local::lib->install_base_arch_path($self->{local_lib}),local::lib->install_base_perl_path($self->{local_lib})): @Config{qw(installsitearch installsitelib)}}sub uninstall_module {my ($self,$module)=@_;$self->check_libs;my@inc=$self->uninstall_search_path;my($metadata,$packlist)=$self->packlists_containing($module,\@inc);unless ($packlist){$self->diag_fail(<uninstall_target($metadata,$packlist);$self->ask_permission($module,\@uninst_files)or return;$self->uninstall_files(@uninst_files,$packlist);$self->diag("Successfully uninstalled $module\n",1);return 1}sub packlists_containing {my($self,$module,$inc)=@_;require Module::Metadata;my$metadata=Module::Metadata->new_from_module($module,inc=>$inc)or return;my$packlist;my$wanted=sub {return unless $_ eq '.packlist' && -f $_;for my$file ($self->unpack_packlist($File::Find::name)){$packlist ||= $File::Find::name if$file eq $metadata->filename}};{require File::pushd;my$pushd=File::pushd::pushd();my@search=grep -d $_,map File::Spec->catdir($_,'auto'),@$inc;File::Find::find($wanted,@search)}return$metadata,$packlist}sub uninstall_target {my($self,$metadata,$packlist)=@_;if ($self->has_shadow_install($metadata)or $self->{local_lib}){grep$self->should_unlink($_),$self->unpack_packlist($packlist)}else {$self->unpack_packlist($packlist)}}sub has_shadow_install {my($self,$metadata)=@_;my@shadow=grep defined,map Module::Metadata->new_from_module($metadata->name,inc=>[$_]),@INC;@shadow >= 2}sub should_unlink {my($self,$file)=@_;if ($self->{local_lib}){$file =~ /^\Q$self->{local_lib}\E/}else {!(grep$file =~ /^\Q$_\E/,@Config{qw(installbin installscript installman1dir installman3dir)})}}sub ask_permission {my ($self,$module,$files)=@_;$self->diag("$module contains the following files:\n\n");for my$file (@$files){$self->diag(" $file\n")}$self->diag("\n");return 'force uninstall' if$self->{force};local$self->{prompt}=1;return$self->prompt_bool("Are you sure you want to uninstall $module?",'y')}sub unpack_packlist {my ($self,$packlist)=@_;open my$fh,'<',$packlist or die "$packlist: $!";map {chomp;$_}<$fh>}sub uninstall_files {my ($self,@files)=@_;$self->diag("\n");for my$file (@files){$self->diag("Unlink: $file\n");unlink$file or $self->diag_fail("$!: $file")}$self->diag("\n");return 1}sub format_dist {my($self,$dist)=@_;return "$dist->{cpanid}/$dist->{filename}"}sub trim {local $_=shift;tr/\n/ /d;s/^\s*|\s*$//g;$_}sub fetch_module {my($self,$dist)=@_;$self->chdir($self->{base});for my$uri (@{$dist->{uris}}){$self->mask_output(diag_progress=>"Fetching $uri");my$filename=$dist->{filename}|| $uri;my$name=File::Basename::basename($filename);my$cancelled;my$fetch=sub {my$file;eval {local$SIG{INT}=sub {$cancelled=1;die "SIGINT\n"};$self->mirror($uri,$name);$file=$name if -e $name};$self->diag("ERROR: " .trim("$@")."\n",1)if $@ && $@ ne "SIGINT\n";return$file};my($try,$file);while ($try++ < 3){$file=$fetch->();last if$cancelled or $file;$self->mask_output(diag_fail=>"Download $uri failed. Retrying ... ")}if ($cancelled){$self->diag_fail("Download cancelled.");return}unless ($file){$self->mask_output(diag_fail=>"Failed to download $uri");next}$self->diag_ok;$dist->{local_path}=File::Spec->rel2abs($name);my$dir=$self->unpack($file,$uri,$dist);next unless$dir;if (my$save=$self->{save_dists}){my$path=$dist->{pathname}? "$save/authors/id/$dist->{pathname}" : "$save/vendor/$file";$self->chat("Copying $name to $path\n");File::Path::mkpath([File::Basename::dirname($path)],0,0777);File::Copy::copy($file,$path)or warn $!}return$dist,$dir}}sub unpack {my($self,$file,$uri,$dist)=@_;if ($self->{verify}){$self->verify_archive($file,$uri,$dist)or return}$self->chat("Unpacking $file\n");my$dir=$file =~ /\.zip/i ? $self->unzip($file): $self->untar($file);unless ($dir){$self->diag_fail("Failed to unpack $file: no directory")}return$dir}sub verify_archive {my($self,$file,$uri,$dist)=@_;unless ($dist->{cpanid}){$self->chat("Archive '$file' does not seem to be from PAUSE. Skip verification.\n");return 1}(my$mirror=$uri)=~ s!/authors/id.*$!!;(my$chksum_uri=$uri)=~ s!/[^/]*$!/CHECKSUMS!;my$chk_file=$self->source_for($mirror)."/$dist->{cpanid}.CHECKSUMS";$self->mask_output(diag_progress=>"Fetching $chksum_uri");$self->mirror($chksum_uri,$chk_file);unless (-e $chk_file){$self->diag_fail("Fetching $chksum_uri failed.\n");return}$self->diag_ok;$self->verify_checksum($file,$chk_file)}sub verify_checksum {my($self,$file,$chk_file)=@_;$self->chat("Verifying the SHA1 for $file\n");open my$fh,"<$chk_file" or die "$chk_file: $!";my$data=join '',<$fh>;$data =~ s/\015?\012/\n/g;require Safe;my$chksum=Safe->new->reval($data);if (!ref$chksum or ref$chksum ne 'HASH'){$self->diag_fail("! Checksum file downloaded from $chk_file is broken.\n");return}if (my$sha=$chksum->{$file}{sha256}){my$hex=$self->sha1_for($file);if ($hex eq $sha){$self->chat("Checksum for $file: Verified!\n")}else {$self->diag_fail("Checksum mismatch for $file\n");return}}else {$self->chat("Checksum for $file not found in CHECKSUMS.\n");return}}sub sha1_for {my($self,$file)=@_;require Digest::SHA;open my$fh,"<",$file or die "$file: $!";my$dg=Digest::SHA->new(256);my($data);while (read($fh,$data,4096)){$dg->add($data)}return$dg->hexdigest}sub verify_signature {my($self,$dist)=@_;$self->diag_progress("Verifying the SIGNATURE file");my$out=`$self->{cpansign} -v --skip 2>&1`;$self->log($out);if ($out =~ /Signature verified OK/){$self->diag_ok("Verified OK");return 1}else {$self->diag_fail("SIGNATURE verification for $dist->{filename} failed\n");return}}sub resolve_name {my($self,$module,$version)=@_;if ($module =~ /(?:^git:|\.git(?:@.+)?$)/){return$self->git_uri($module)}if ($module =~ /^(ftp|https?|file):/){if ($module =~ m!authors/id/(.*)!){return$self->cpan_dist($1,$module)}else {return {uris=>[$module ]}}}if ($module =~ m!^[\./]! && -d $module){return {source=>'local',dir=>Cwd::abs_path($module),}}if (-f $module){return {source=>'local',uris=>["file://" .Cwd::abs_path($module)],}}if ($module =~ s!^cpan:///distfile/!!){return$self->cpan_dist($module)}if ($module =~ m!^(?:[A-Z]/[A-Z]{2}/)?([A-Z]{2}[\-A-Z0-9]*/.*)$!){return$self->cpan_dist($1)}return$self->search_module($module,$version)}sub cpan_module {my($self,$module,$dist_file,$version)=@_;my$dist=$self->cpan_dist($dist_file);$dist->{module}=$module;$dist->{module_version}=$version if$version && $version ne 'undef';return$dist}sub cpan_dist {my($self,$dist,$url)=@_;$dist =~ s!^([A-Z]{2})!substr($1,0,1)."/".substr($1,0,2)."/".$1!e;require CPAN::DistnameInfo;my$d=CPAN::DistnameInfo->new($dist);if ($url){$url=[$url ]unless ref$url eq 'ARRAY'}else {my$id=$d->cpanid;my$fn=substr($id,0,1)."/" .substr($id,0,2)."/" .$id ."/" .$d->filename;my@mirrors=@{$self->{mirrors}};my@urls=map "$_/authors/id/$fn",@mirrors;$url=\@urls,}return {$d->properties,source=>'cpan',uris=>$url,}}sub git_uri {my ($self,$uri)=@_;($uri,my$commitish)=split /(?<=\.git)@/i,$uri,2;my$dir=File::Temp::tempdir(CLEANUP=>1);$self->mask_output(diag_progress=>"Cloning $uri");$self->run(['git','clone',$uri,$dir ]);unless (-e "$dir/.git"){$self->diag_fail("Failed cloning git repository $uri",1);return}if ($commitish){require File::pushd;my$dir=File::pushd::pushd($dir);unless ($self->run(['git','checkout',$commitish ])){$self->diag_fail("Failed to checkout '$commitish' in git repository $uri\n");return}}$self->diag_ok;return {source=>'local',dir=>$dir,}}sub setup_module_build_patch {my$self=shift;open my$out,">$self->{base}/ModuleBuildSkipMan.pm" or die $!;print$out <{search_inc}||= do {if (defined$::Bin){[grep!/^\Q$::Bin\E\/..\/(?:fat)?lib$/,@INC]}else {[@INC]}}}sub check_module {my($self,$mod,$want_ver)=@_;require Module::Metadata;my$meta=Module::Metadata->new_from_module($mod,inc=>$self->search_inc)or return 0,undef;my$version=$meta->version;if ($self->{self_contained}&& $self->loaded_from_perl_lib($meta)){$version=$self->core_version_for($mod);return 0,undef if$version && $version==-1}$self->{local_versions}{$mod}=$version;if ($self->is_deprecated($meta)){return 0,$version}elsif ($self->satisfy_version($mod,$version,$want_ver)){return 1,($version || 'undef')}else {return 0,$version}}sub satisfy_version {my($self,$mod,$version,$want_ver)=@_;$want_ver='0' unless defined($want_ver)&& length($want_ver);require CPAN::Meta::Requirements;my$requirements=CPAN::Meta::Requirements->new;$requirements->add_string_requirement($mod,$want_ver);$requirements->accepts_module($mod,$version)}sub unsatisfy_how {my($self,$ver,$want_ver)=@_;if ($want_ver =~ /^[v0-9\.\_]+$/){return "$ver < $want_ver"}else {return "$ver doesn't satisfy $want_ver"}}sub is_deprecated {my($self,$meta)=@_;my$deprecated=eval {require Module::CoreList;Module::CoreList::is_deprecated($meta->{module})};return$deprecated && $self->loaded_from_perl_lib($meta)}sub loaded_from_perl_lib {my($self,$meta)=@_;require Config;my@dirs=qw(archlibexp privlibexp);if ($self->{self_contained}&&!$self->{exclude_vendor}&& $Config{vendorarch}){unshift@dirs,qw(vendorarch vendorlibexp)}for my$dir (@dirs){my$confdir=$Config{$dir};if ($confdir eq substr($meta->filename,0,length($confdir))){return 1}}return}sub should_install {my($self,$mod,$ver)=@_;$self->chat("Checking if you have $mod $ver ... ");my($ok,$local)=$self->check_module($mod,$ver);if ($ok){$self->chat("Yes ($local)\n")}elsif ($local){$self->chat("No (" .$self->unsatisfy_how($local,$ver).")\n")}else {$self->chat("No\n")}return$mod unless$ok;return}sub check_perl_version {my($self,$version)=@_;require CPAN::Meta::Requirements;my$req=CPAN::Meta::Requirements->from_string_hash({perl=>$version });$req->accepts_module(perl=>$])}sub install_deps {my($self,$dir,$depth,@deps)=@_;my(@install,%seen,@fail);for my$dep (@deps){next if$seen{$dep->module};if ($dep->module eq 'perl'){if ($dep->is_requirement &&!$self->check_perl_version($dep->version)){$self->diag("Needs perl @{[$dep->version]}, you have $]\n");push@fail,'perl'}}elsif ($self->should_install($dep->module,$dep->version)){push@install,$dep;$seen{$dep->module}=1}}if (@install){$self->diag("==> Found dependencies: " .join(", ",map $_->module,@install)."\n")}for my$dep (@install){$self->install_module($dep->module,$depth + 1,$dep->version)}$self->chdir($self->{base});$self->chdir($dir)if$dir;if ($self->{scandeps}){return 1}my@not_ok=$self->unsatisfied_deps(@deps);if (@not_ok){return 0,\@not_ok}else {return 1}}sub unsatisfied_deps {my($self,@deps)=@_;require CPAN::Meta::Check;require CPAN::Meta::Requirements;my$reqs=CPAN::Meta::Requirements->new;for my$dep (grep $_->is_requirement,@deps){$reqs->add_string_requirement($dep->module=>$dep->requires_version || '0')}my$ret=CPAN::Meta::Check::check_requirements($reqs,'requires',$self->{search_inc});grep defined,values %$ret}sub install_deps_bailout {my($self,$target,$dir,$depth,@deps)=@_;my($ok,$fail)=$self->install_deps($dir,$depth,@deps);if (!$ok){$self->diag_fail("Installing the dependencies failed: " .join(", ",@$fail),1);unless ($self->prompt_bool("Do you want to continue building $target anyway?","n")){$self->diag_fail("Bailing out the installation for $target.",1);return}}return 1}sub build_stuff {my($self,$stuff,$dist,$depth)=@_;if ($self->{verify}&& -e 'SIGNATURE'){$self->verify_signature($dist)or return}require CPAN::Meta;my($meta_file)=grep -f,qw(META.json META.yml);if ($meta_file){$self->chat("Checking configure dependencies from $meta_file\n");$dist->{cpanmeta}=eval {CPAN::Meta->load_file($meta_file)}}elsif ($dist->{dist}&& $dist->{version}){$self->chat("META.yml/json not found. Creating skeleton for it.\n");$dist->{cpanmeta}=CPAN::Meta->new({name=>$dist->{dist},version=>$dist->{version}})}$dist->{meta}=$dist->{cpanmeta}? $dist->{cpanmeta}->as_struct : {};my@config_deps;if ($dist->{cpanmeta}){push@config_deps,App::cpanminus::Dependency->from_prereqs($dist->{cpanmeta}->effective_prereqs,['configure'],$self->{install_types},)}if (-e 'Build.PL' &&!$self->should_use_mm($dist->{dist})&&!@config_deps){push@config_deps,App::cpanminus::Dependency->from_versions({'Module::Build'=>'0.38' },'configure',)}$self->merge_with_cpanfile($dist,\@config_deps);$self->upgrade_toolchain(\@config_deps);my$target=$dist->{meta}{name}? "$dist->{meta}{name}-$dist->{meta}{version}" : $dist->{dir};{$self->install_deps_bailout($target,$dist->{dir},$depth,@config_deps)or return}$self->diag_progress("Configuring $target");my$configure_state=$self->configure_this($dist,$depth);$self->diag_ok($configure_state->{configured_ok}? "OK" : "N/A");if ($dist->{cpanmeta}&& $dist->{source}eq 'cpan'){$dist->{provides}=$dist->{cpanmeta}{provides}|| $self->extract_packages($dist->{cpanmeta},".")}my$root_target=(($self->{installdeps}or $self->{showdeps})and $depth==0);$dist->{want_phases}=$self->{notest}&&!$root_target ? [qw(build runtime)]: [qw(build test runtime)];push @{$dist->{want_phases}},'develop' if$self->{with_develop}&& $depth==0;push @{$dist->{want_phases}},'configure' if$self->{with_configure}&& $depth==0;my@deps=$self->find_prereqs($dist);my$module_name=$self->find_module_name($configure_state)|| $dist->{meta}{name};$module_name =~ s/-/::/g;if ($self->{showdeps}){for my$dep (@config_deps,@deps){print$dep->module,($dep->version ? ("~".$dep->version): ""),"\n"}return 1}my$distname=$dist->{meta}{name}? "$dist->{meta}{name}-$dist->{meta}{version}" : $stuff;my$walkup;if ($self->{scandeps}){$walkup=$self->scandeps_append_child($dist)}$self->install_deps_bailout($distname,$dist->{dir},$depth,@deps)or return;if ($self->{scandeps}){unless ($configure_state->{configured_ok}){my$diag=<{scandeps_tree}};$diag .= "!\n" .join("",map "! * $_->[0]{module}\n",@tree[0..$#tree-1])if@tree}$self->diag("!\n$diag!\n",1)}$walkup->();return 1}if ($self->{installdeps}&& $depth==0){if ($configure_state->{configured_ok}){$self->diag("<== Installed dependencies for $stuff. Finishing.\n");return 1}else {$self->diag("! Configuring $distname failed. See $self->{log} for details.\n",1);return}}my$installed;if ($configure_state->{use_module_build}&& -e 'Build' && -f _){$self->diag_progress("Building " .($self->{notest}? "" : "and testing ").$distname);$self->build([$self->{perl},"./Build" ],$distname,$depth)&& $self->test([$self->{perl},"./Build","test" ],$distname,$depth)&& $self->install([$self->{perl},"./Build","install" ],["--uninst",1 ],$depth)&& $installed++}elsif ($self->{make}&& -e 'Makefile'){$self->diag_progress("Building " .($self->{notest}? "" : "and testing ").$distname);$self->build([$self->{make}],$distname,$depth)&& $self->test([$self->{make},"test" ],$distname,$depth)&& $self->install([$self->{make},"install" ],["UNINST=1" ],$depth)&& $installed++}else {my$why;my$configure_failed=$configure_state->{configured}&&!$configure_state->{configured_ok};if ($configure_failed){$why="Configure failed for $distname."}elsif ($self->{make}){$why="The distribution doesn't have a proper Makefile.PL/Build.PL"}else {$why="Can't configure the distribution. You probably need to have 'make'."}$self->diag_fail("$why See $self->{log} for details.",1);return}if ($installed && $self->{test_only}){$self->diag_ok;$self->diag("Successfully tested $distname\n",1)}elsif ($installed){my$local=$self->{local_versions}{$dist->{module}|| ''};my$version=$dist->{module_version}|| $dist->{meta}{version}|| $dist->{version};my$reinstall=$local && ($local eq $version);my$action=$local &&!$reinstall ? $self->numify_ver($version)< $self->numify_ver($local)? "downgraded" : "upgraded" : undef;my$how=$reinstall ? "reinstalled $distname" : $local ? "installed $distname ($action from $local)" : "installed $distname" ;my$msg="Successfully $how";$self->diag_ok;$self->diag("$msg\n",1);$self->{installed_dists}++;$self->save_meta($stuff,$dist,$module_name,\@config_deps,\@deps);return 1}else {my$what=$self->{test_only}? "Testing" : "Installing";$self->diag_fail("$what $stuff failed. See $self->{log} for details. Retry with --force to force install it.",1);return}}sub perl_requirements {my($self,@requires)=@_;my@perl;for my$requires (grep defined,@requires){if (exists$requires->{perl}){push@perl,App::cpanminus::Dependency->new(perl=>$requires->{perl})}}return@perl}sub should_use_mm {my($self,$dist)=@_;my%should_use_mm=map {$_=>1}qw(version ExtUtils-ParseXS ExtUtils-Install ExtUtils-Manifest);$should_use_mm{$dist}}sub configure_this {my($self,$dist,$depth)=@_;if (-e $self->{cpanfile_path}&& $self->{installdeps}&& $depth==0){require Module::CPANfile;$dist->{cpanfile}=eval {Module::CPANfile->load($self->{cpanfile_path})};$self->diag_fail($@,1)if $@;return {configured=>1,configured_ok=>!!$dist->{cpanfile},use_module_build=>0,}}if ($self->{skip_configure}){my$eumm=-e 'Makefile';my$mb=-e 'Build' && -f _;return {configured=>1,configured_ok=>$eumm || $mb,use_module_build=>$mb,}}my$state={};my$try_eumm=sub {if (-e 'Makefile.PL'){$self->chat("Running Makefile.PL\n");if ($self->configure([$self->{perl},"Makefile.PL" ],$depth)){$state->{configured_ok}=-e 'Makefile'}$state->{configured}++}};my$try_mb=sub {if (-e 'Build.PL'){$self->chat("Running Build.PL\n");if ($self->configure([$self->{perl},"Build.PL" ],$depth)){$state->{configured_ok}=-e 'Build' && -f _}$state->{use_module_build}++;$state->{configured}++}};my@try;if ($dist->{dist}&& $self->should_use_mm($dist->{dist})){@try=($try_eumm,$try_mb)}else {@try=($try_mb,$try_eumm)}for my$try (@try){$try->();last if$state->{configured_ok}}unless ($state->{configured_ok}){while (1){my$ans=lc$self->prompt("Configuring $dist->{dist} failed.\nYou can s)kip, r)etry, e)xamine build log, or l)ook ?","s");last if$ans eq 's';return$self->configure_this($dist,$depth)if$ans eq 'r';$self->show_build_log if$ans eq 'e';$self->look if$ans eq 'l'}}return$state}sub find_module_name {my($self,$state)=@_;return unless$state->{configured_ok};if ($state->{use_module_build}&& -e "_build/build_params"){my$params=do {open my$in,"_build/build_params";$self->safe_eval(join "",<$in>)};return eval {$params->[2]{module_name}}|| undef}elsif (-e "Makefile"){open my$mf,"Makefile";while (<$mf>){if (/^\#\s+NAME\s+=>\s+(.*)/){return$self->safe_eval($1)}}}return}sub list_files {my$self=shift;if (-e 'MANIFEST'){require ExtUtils::Manifest;my$manifest=eval {ExtUtils::Manifest::manifind()}|| {};return sort {lc$a cmp lc$b}keys %$manifest}else {require File::Find;my@files;my$finder=sub {my$name=$File::Find::name;$name =~ s!\.[/\\]!!;push@files,$name};File::Find::find($finder,".");return sort {lc$a cmp lc$b}@files}}sub extract_packages {my($self,$meta,$dir)=@_;my$try=sub {my$file=shift;return 0 if$file =~ m!^(?:x?t|inc|local|perl5|fatlib|_build)/!;return 1 unless$meta->{no_index};return 0 if grep {$file =~ m!^$_/!}@{$meta->{no_index}{directory}|| []};return 0 if grep {$file eq $_}@{$meta->{no_index}{file}|| []};return 1};require Parse::PMFile;my@files=grep {/\.pm(?:\.PL)?$/ && $try->($_)}$self->list_files;my$provides={};for my$file (@files){my$parser=Parse::PMFile->new($meta,{UNSAFE=>1,ALLOW_DEV_VERSION=>1 });my$packages=$parser->parse($file);while (my($package,$meta)=each %$packages){$provides->{$package}||= {file=>$meta->{infile},($meta->{version}eq 'undef')? (): (version=>$meta->{version}),}}}return$provides}sub save_meta {my($self,$module,$dist,$module_name,$config_deps,$build_deps)=@_;return unless$dist->{distvname}&& $dist->{source}eq 'cpan';my$base=($ENV{PERL_MM_OPT}|| '')=~ /INSTALL_BASE=/ ? ($self->install_base($ENV{PERL_MM_OPT})."/lib/perl5"): $Config{sitelibexp};my$provides=$dist->{provides};File::Path::mkpath("blib/meta",0,0777);my$local={name=>$module_name,target=>$module,version=>exists$provides->{$module_name}? ($provides->{$module_name}{version}|| $dist->{version}): $dist->{version},dist=>$dist->{distvname},pathname=>$dist->{pathname},provides=>$provides,};require JSON::PP;open my$fh,">","blib/meta/install.json" or die $!;print$fh JSON::PP::encode_json($local);if (-e "MYMETA.json"){File::Copy::copy("MYMETA.json","blib/meta/MYMETA.json")}my@cmd=(($self->{sudo}? 'sudo' : ()),$^X,'-MExtUtils::Install=install','-e',qq[install({ 'blib/meta' => '$base/$Config{archname}/.meta/$dist->{distvname}' })],);$self->run(\@cmd)}sub _merge_hashref {my($self,@hashrefs)=@_;my%hash;for my$h (@hashrefs){%hash=(%hash,%$h)}return \%hash}sub install_base {my($self,$mm_opt)=@_;$mm_opt =~ /INSTALL_BASE=(\S+)/ and return $1;die "Your PERL_MM_OPT doesn't contain INSTALL_BASE"}sub safe_eval {my($self,$code)=@_;eval$code}sub configure_features {my($self,$dist,@features)=@_;map $_->identifier,grep {$self->effective_feature($dist,$_)}@features}sub effective_feature {my($self,$dist,$feature)=@_;if ($dist->{depth}==0){my$value=$self->{features}{$feature->identifier};return$value if defined$value;return 1 if$self->{features}{__all}}if ($self->{interactive}){require CPAN::Meta::Requirements;$self->diag("[@{[ $feature->description ]}]\n",1);my$req=CPAN::Meta::Requirements->new;for my$phase (@{$dist->{want_phases}}){for my$type (@{$self->{install_types}}){$req->add_requirements($feature->prereqs->requirements_for($phase,$type))}}my$reqs=$req->as_string_hash;my@missing;for my$module (keys %$reqs){if ($self->should_install($module,$req->{$module})){push@missing,$module}}if (@missing){my$howmany=@missing;$self->diag("==> Found missing dependencies: " .join(", ",@missing)."\n",1);local$self->{prompt}=1;return$self->prompt_bool("Install the $howmany optional module(s)?","y")}}return}sub find_prereqs {my($self,$dist)=@_;my@deps=$self->extract_meta_prereqs($dist);if ($dist->{module}=~ /^Bundle::/i){push@deps,$self->bundle_deps($dist)}$self->merge_with_cpanfile($dist,\@deps);return@deps}sub merge_with_cpanfile {my($self,$dist,$deps)=@_;if ($self->{cpanfile_requirements}&&!$dist->{cpanfile}){for my$dep (@$deps){$dep->merge_with($self->{cpanfile_requirements})}}}sub extract_meta_prereqs {my($self,$dist)=@_;if ($dist->{cpanfile}){my@features=$self->configure_features($dist,$dist->{cpanfile}->features);my$prereqs=$dist->{cpanfile}->prereqs_with(@features);$self->{cpanfile_requirements}=$prereqs->merged_requirements($dist->{want_phases},['requires']);return App::cpanminus::Dependency->from_prereqs($prereqs,$dist->{want_phases},$self->{install_types})}require CPAN::Meta;my@deps;my($meta_file)=grep -f,qw(MYMETA.json MYMETA.yml);if ($meta_file){$self->chat("Checking dependencies from $meta_file ...\n");my$mymeta=eval {CPAN::Meta->load_file($meta_file,{lazy_validation=>1 })};if ($mymeta){$dist->{meta}{name}=$mymeta->name;$dist->{meta}{version}=$mymeta->version;return$self->extract_prereqs($mymeta,$dist)}}if (-e '_build/prereqs'){$self->chat("Checking dependencies from _build/prereqs ...\n");my$prereqs=do {open my$in,"_build/prereqs";$self->safe_eval(join "",<$in>)};my$meta=CPAN::Meta->new({name=>$dist->{meta}{name},version=>$dist->{meta}{version},%$prereqs },{lazy_validation=>1 },);@deps=$self->extract_prereqs($meta,$dist)}elsif (-e 'Makefile'){$self->chat("Finding PREREQ from Makefile ...\n");open my$mf,"Makefile";while (<$mf>){if (/^\#\s+PREREQ_PM => \{\s*(.*?)\s*\}/){my@all;my@pairs=split ', ',$1;for (@pairs){my ($pkg,$v)=split '=>',$_;push@all,[$pkg,$v ]}my$list=join ", ",map {"'$_->[0]' => $_->[1]"}@all;my$prereq=$self->safe_eval("no strict; +{ $list }");push@deps,App::cpanminus::Dependency->from_versions($prereq)if$prereq;last}}}return@deps}sub bundle_deps {my($self,$dist)=@_;my$match;if ($dist->{module}){$match=sub {my$meta=Module::Metadata->new_from_file($_[0]);$meta && ($meta->name eq $dist->{module})}}else {$match=sub {1}}my@files;File::Find::find({wanted=>sub {push@files,File::Spec->rel2abs($_)if /\.pm$/i && $match->($_)},no_chdir=>1,},'.');my@deps;for my$file (@files){open my$pod,"<",$file or next;my$in_contents;while (<$pod>){if (/^=head\d\s+CONTENTS/){$in_contents=1}elsif (/^=/){$in_contents=0}elsif ($in_contents){/^(\S+)\s*(\S+)?/ and push@deps,App::cpanminus::Dependency->new($1,$self->maybe_version($2))}}}return@deps}sub maybe_version {my($self,$string)=@_;return$string && $string =~ /^\.?\d/ ? $string : undef}sub extract_prereqs {my($self,$meta,$dist)=@_;my@features=$self->configure_features($dist,$meta->features);my$prereqs=$self->soften_makemaker_prereqs($meta->effective_prereqs(\@features)->clone);return App::cpanminus::Dependency->from_prereqs($prereqs,$dist->{want_phases},$self->{install_types})}sub soften_makemaker_prereqs {my($self,$prereqs)=@_;return$prereqs unless -e "inc/Module/Install.pm";for my$phase (qw(build test runtime)){my$reqs=$prereqs->requirements_for($phase,'requires');if ($reqs->requirements_for_module('ExtUtils::MakeMaker')){$reqs->clear_requirement('ExtUtils::MakeMaker');$reqs->add_minimum('ExtUtils::MakeMaker'=>0)}}$prereqs}sub cleanup_workdirs {my$self=shift;my$expire=time - 24 * 60 * 60 * $self->{auto_cleanup};my@targets;opendir my$dh,"$self->{home}/work";while (my$e=readdir$dh){next if$e !~ /^(\d+)\.\d+$/;my$time=$1;if ($time < $expire){push@targets,"$self->{home}/work/$e"}}if (@targets){if (@targets >= 64){$self->diag("Expiring " .scalar(@targets)." work directories. This might take a while...\n")}else {$self->chat("Expiring " .scalar(@targets)." work directories.\n")}File::Path::rmtree(\@targets,0,0)}}sub scandeps_append_child {my($self,$dist)=@_;my$new_node=[$dist,[]];my$curr_node=$self->{scandeps_current}|| [undef,$self->{scandeps_tree}];push @{$curr_node->[1]},$new_node;$self->{scandeps_current}=$new_node;return sub {$self->{scandeps_current}=$curr_node}}sub dump_scandeps {my$self=shift;if ($self->{format}eq 'tree'){$self->walk_down(sub {my($dist,$depth)=@_;if ($depth==0){print "$dist->{distvname}\n"}else {print " " x ($depth - 1);print "\\_ $dist->{distvname}\n"}},1)}elsif ($self->{format}=~ /^dists?$/){$self->walk_down(sub {my($dist,$depth)=@_;print$self->format_dist($dist),"\n"},0)}elsif ($self->{format}eq 'json'){require JSON::PP;print JSON::PP::encode_json($self->{scandeps_tree})}elsif ($self->{format}eq 'yaml'){require YAML;print YAML::Dump($self->{scandeps_tree})}else {$self->diag("Unknown format: $self->{format}\n")}}sub walk_down {my($self,$cb,$pre)=@_;$self->_do_walk_down($self->{scandeps_tree},$cb,0,$pre)}sub _do_walk_down {my($self,$children,$cb,$depth,$pre)=@_;for my$node (@$children){$cb->($node->[0],$depth)if$pre;$self->_do_walk_down($node->[1],$cb,$depth + 1,$pre);$cb->($node->[0],$depth)unless$pre}}sub DESTROY {my$self=shift;$self->{at_exit}->($self)if$self->{at_exit}}sub shell_quote {my($self,@stuff)=@_;if (WIN32){join ' ',map {/^${quote}.+${quote}$/ ? $_ : ($quote .$_ .$quote)}@stuff}else {String::ShellQuote::shell_quote_best_effort(@stuff)}}sub which {my($self,$name)=@_;if (File::Spec->file_name_is_absolute($name)){if (-x $name &&!-d _){return$name}}my$exe_ext=$Config{_exe};for my$dir (File::Spec->path){my$fullpath=File::Spec->catfile($dir,$name);if ((-x $fullpath || -x ($fullpath .= $exe_ext))&&!-d _){if ($fullpath =~ /\s/){$fullpath=$self->shell_quote($fullpath)}return$fullpath}}return}sub get {my($self,$uri)=@_;if ($uri =~ /^file:/){$self->file_get($uri)}else {$self->{_backends}{get}->(@_)}}sub mirror {my($self,$uri,$local)=@_;if ($uri =~ /^file:/){$self->file_mirror($uri,$local)}else {$self->{_backends}{mirror}->(@_)}}sub untar {$_[0]->{_backends}{untar}->(@_)};sub unzip {$_[0]->{_backends}{unzip}->(@_)};sub uri_to_file {my($self,$uri)=@_;if ($uri =~ s!file:/+!!){$uri="/$uri" unless$uri =~ m![a-zA-Z]:!}return$uri}sub file_get {my($self,$uri)=@_;my$file=$self->uri_to_file($uri);open my$fh,"<$file" or return;join '',<$fh>}sub file_mirror {my($self,$uri,$path)=@_;my$file=$self->uri_to_file($uri);my$source_mtime=(stat$file)[9];return 1 if -e $path && (stat$path)[9]>= $source_mtime;File::Copy::copy($file,$path);utime$source_mtime,$source_mtime,$path}sub has_working_lwp {my($self,$mirrors)=@_;my$https=grep /^https:/,@$mirrors;eval {require LWP::UserAgent;LWP::UserAgent->VERSION(5.802);require LWP::Protocol::https if$https;1}}sub init_tools {my$self=shift;return if$self->{initialized}++;if ($self->{make}=$self->which($Config{make})){$self->chat("You have make $self->{make}\n")}if ($self->{try_lwp}&& $self->has_working_lwp($self->{mirrors})){$self->chat("You have LWP $LWP::VERSION\n");my$ua=sub {LWP::UserAgent->new(parse_head=>0,env_proxy=>1,agent=>$self->agent,timeout=>30,@_,)};$self->{_backends}{get}=sub {my$self=shift;my$res=$ua->()->request(HTTP::Request->new(GET=>$_[0]));return unless$res->is_success;return$res->decoded_content};$self->{_backends}{mirror}=sub {my$self=shift;my$res=$ua->()->mirror(@_);die$res->content if$res->code==501;$res->code}}elsif ($self->{try_wget}and my$wget=$self->which('wget')){$self->chat("You have $wget\n");my@common=('--user-agent',$self->agent,'--retry-connrefused',($self->{verbose}? (): ('-q')),);$self->{_backends}{get}=sub {my($self,$uri)=@_;$self->safeexec(my$fh,$wget,$uri,@common,'-O','-')or die "wget $uri: $!";local $/;<$fh>};$self->{_backends}{mirror}=sub {my($self,$uri,$path)=@_;$self->safeexec(my$fh,$wget,$uri,@common,'-O',$path)or die "wget $uri: $!";local $/;<$fh>}}elsif ($self->{try_curl}and my$curl=$self->which('curl')){$self->chat("You have $curl\n");my@common=('--location','--user-agent',$self->agent,($self->{verbose}? (): '-s'),);$self->{_backends}{get}=sub {my($self,$uri)=@_;$self->safeexec(my$fh,$curl,@common,$uri)or die "curl $uri: $!";local $/;<$fh>};$self->{_backends}{mirror}=sub {my($self,$uri,$path)=@_;$self->safeexec(my$fh,$curl,@common,$uri,'-#','-o',$path)or die "curl $uri: $!";local $/;<$fh>}}else {require HTTP::Tiny;$self->chat("Falling back to HTTP::Tiny $HTTP::Tiny::VERSION\n");my%common=(agent=>$self->agent,);$self->{_backends}{get}=sub {my$self=shift;my$res=HTTP::Tiny->new(%common)->get($_[0]);return unless$res->{success};return$res->{content}};$self->{_backends}{mirror}=sub {my$self=shift;my$res=HTTP::Tiny->new(%common)->mirror(@_);return$res->{status}}}my$tar=$self->which('tar');my$tar_ver;my$maybe_bad_tar=sub {WIN32 || BAD_TAR || (($tar_ver=`$tar --version 2>/dev/null`)=~ /GNU.*1\.13/i)};if ($tar &&!$maybe_bad_tar->()){chomp$tar_ver;$self->chat("You have $tar: $tar_ver\n");$self->{_backends}{untar}=sub {my($self,$tarfile)=@_;my$xf=($self->{verbose}? 'v' : '')."xf";my$ar=$tarfile =~ /bz2$/ ? 'j' : 'z';my($root,@others)=`$tar ${ar}tf $tarfile` or return undef;FILE: {chomp$root;$root =~ s!^\./!!;$root =~ s{^(.+?)/.*$}{$1};if (!length($root)){$root=shift(@others);redo FILE if$root}}system "$tar $ar$xf $tarfile";return$root if -d $root;$self->diag_fail("Bad archive: $tarfile");return undef}}elsif ($tar and my$gzip=$self->which('gzip')and my$bzip2=$self->which('bzip2')){$self->chat("You have $tar, $gzip and $bzip2\n");$self->{_backends}{untar}=sub {my($self,$tarfile)=@_;my$x="x" .($self->{verbose}? 'v' : '')."f -";my$ar=$tarfile =~ /bz2$/ ? $bzip2 : $gzip;my($root,@others)=`$ar -dc $tarfile | $tar tf -` or return undef;FILE: {chomp$root;$root =~ s!^\./!!;$root =~ s{^(.+?)/.*$}{$1};if (!length($root)){$root=shift(@others);redo FILE if$root}}system "$ar -dc $tarfile | $tar $x";return$root if -d $root;$self->diag_fail("Bad archive: $tarfile");return undef}}elsif (eval {require Archive::Tar}){$self->chat("Falling back to Archive::Tar $Archive::Tar::VERSION\n");$self->{_backends}{untar}=sub {my$self=shift;my$t=Archive::Tar->new($_[0]);my($root,@others)=$t->list_files;FILE: {$root =~ s!^\./!!;$root =~ s{^(.+?)/.*$}{$1};if (!length($root)){$root=shift(@others);redo FILE if$root}}$t->extract;return -d $root ? $root : undef}}else {$self->{_backends}{untar}=sub {die "Failed to extract $_[1] - You need to have tar or Archive::Tar installed.\n"}}if (my$unzip=$self->which('unzip')){$self->chat("You have $unzip\n");$self->{_backends}{unzip}=sub {my($self,$zipfile)=@_;my$opt=$self->{verbose}? '' : '-q';my(undef,$root,@others)=`$unzip -t $zipfile` or return undef;FILE: {chomp$root;if ($root !~ s{^\s+testing:\s+([^/]+)/.*?\s+OK$}{$1}){$root=shift(@others);redo FILE if$root}}system "$unzip $opt $zipfile";return$root if -d $root;$self->diag_fail("Bad archive: [$root] $zipfile");return undef}}else {$self->{_backends}{unzip}=sub {eval {require Archive::Zip}or die "Failed to extract $_[1] - You need to have unzip or Archive::Zip installed.\n";my($self,$file)=@_;my$zip=Archive::Zip->new();my$status;$status=$zip->read($file);$self->diag_fail("Read of file[$file] failed")if$status!=Archive::Zip::AZ_OK();my@members=$zip->members();for my$member (@members){my$af=$member->fileName();next if ($af =~ m!^(/|\.\./)!);$status=$member->extractToFileNamed($af);$self->diag_fail("Extracting of file[$af] from zipfile[$file failed")if$status!=Archive::Zip::AZ_OK()}my ($root)=$zip->membersMatching(qr<^[^/]+/$>);$root &&= $root->fileName;return -d $root ? $root : undef}}}sub safeexec {my$self=shift;my$rdr=$_[0]||= Symbol::gensym();if (WIN32){my$cmd=$self->shell_quote(@_[1..$#_]);return open($rdr,"$cmd |")}if (my$pid=open($rdr,'-|')){return$pid}elsif (defined$pid){exec(@_[1 .. $#_ ]);exit 1}else {return}}sub mask_uri_passwords {my($self,@strings)=@_;s{ (https?://) ([^:/]+) : [^@/]+ @ }{$1$2:********@}gx for@strings;return@strings}1; + It appears your cpanm executable was installed via `perlbrew install-cpanm`. + cpanm --self-upgrade won't upgrade the version of cpanm you're running. + + Run the following command to get it upgraded. + + perlbrew install-cpanm + + DIE + You are running cpanm from the path where your current perl won't install executables to. + Because of that, cpanm --self-upgrade won't upgrade the version of cpanm you're running. + + cpanm path : $0 + Install path : $Config{installsitebin} + + It means you either installed cpanm globally with system perl, or use distro packages such + as rpm or apt-get, and you have to use them again to upgrade cpanm. + DIE + Usage: cpanm [options] Module [...] + + Try `cpanm --help` or `man cpanm` for more options. + USAGE + Usage: cpanm [options] Module [...] + + Options: + -v,--verbose Turns on chatty output + -q,--quiet Turns off the most output + --interactive Turns on interactive configure (required for Task:: modules) + -f,--force force install + -n,--notest Do not run unit tests + --test-only Run tests only, do not install + -S,--sudo sudo to run install commands + --installdeps Only install dependencies + --showdeps Only display direct dependencies + --reinstall Reinstall the distribution even if you already have the latest version installed + --mirror Specify the base URL for the mirror (e.g. http://cpan.cpantesters.org/) + --mirror-only Use the mirror's index file instead of the CPAN Meta DB + -M,--from Use only this mirror base URL and its index file + --prompt Prompt when configure/build/test fails + -l,--local-lib Specify the install base to install modules + -L,--local-lib-contained Specify the install base to install all non-core modules + --self-contained Install all non-core modules, even if they're already installed. + --auto-cleanup Number of days that cpanm's work directories expire in. Defaults to 7 + + Commands: + --self-upgrade upgrades itself + --info Displays distribution info on CPAN + --look Opens the distribution with your SHELL + -U,--uninstall Uninstalls the modules (EXPERIMENTAL) + -V,--version Displays software version + + Examples: + + cpanm Test::More # install Test::More + cpanm MIYAGAWA/Plack-0.99_05.tar.gz # full distribution path + cpanm http://example.org/LDS/CGI.pm-3.20.tar.gz # install from URL + cpanm ~/dists/MyCompany-Enterprise-1.00.tar.gz # install from a local file + cpanm --interactive Task::Kensho # Configure interactively + cpanm . # install from local directory + cpanm --installdeps . # install all the deps for the current directory + cpanm -L extlib Plack # install Plack and all non-core deps into extlib + cpanm --mirror http://cpan.cpantesters.org/ DBI # use the fast-syncing mirror + cpanm -M https://cpan.metacpan.org App::perlbrew # use only this secure mirror and its index + + You can also specify the default options in PERL_CPANM_OPT environment variable in the shell rc: + + export PERL_CPANM_OPT="--prompt --reinstall -l ~/perl --mirror http://cpan.cpantesters.org" + + Type `man cpanm` or `perldoc cpanm` for the more detailed explanation of the options. + + HELP + ! + ! Can't write to $Config{installsitelib} and $Config{installsitebin}: Installing modules to $ENV{HOME}/perl5 + ! To turn off this warning, you have to do one of the following: + ! - run me as a root or with --sudo option (to install to $Config{installsitelib} and $Config{installsitebin}) + ! - Configure local::lib in your existing shell to set PERL_MM_OPT etc. + ! - Install local::lib by running the following commands + ! + ! cpanm --local-lib=~/perl5 local::lib && eval \$(perl -I ~/perl5/lib/perl5/ -Mlocal::lib) + ! + DIAG + WARNING: Your lib directory name ($base) contains a space in it. It's known to cause issues with perl builder tools such as local::lib and MakeMaker. You're recommended to rename your directory. + WARN + $module is not found in the following directories and can't be uninstalled. + + @{[ join(" \n", map " $_", @inc) ]} + + DIAG + package ModuleBuildSkipMan; + CHECK { + if (%Module::Build::) { + no warnings 'redefine'; + *Module::Build::Base::ACTION_manpages = sub {}; + *Module::Build::Base::ACTION_docs = sub {}; + } + } + 1; + EOF + ! Configuring $distname failed. See $self->{log} for details. + ! You might have to install the following modules first to get --scandeps working correctly. + DIAG +APP_CPANMINUS_SCRIPT + +$fatpacked{"CPAN/DistnameInfo.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_DISTNAMEINFO'; + package CPAN::DistnameInfo;$VERSION="0.12";use strict;sub distname_info {my$file=shift or return;my ($dist,$version)=$file =~ /^ + ((?:[-+.]*(?:[A-Za-z0-9]+|(?<=\D)_|_(?=\D))* + (?: + [A-Za-z](?=[^A-Za-z]|$) + | + \d(?=-) + )(? 6 and $1 & 1)or ($2 and $2 >= 50))or $3}elsif ($version =~ /\d\D\d+_\d/ or $version =~ /-TRIAL/){$dev=1}}else {$version=undef}($dist,$version,$dev)}sub new {my$class=shift;my$distfile=shift;$distfile =~ s,//+,/,g;my%info=(pathname=>$distfile);($info{filename}=$distfile)=~ s,^(((.*?/)?authors/)?id/)?([A-Z])/(\4[A-Z])/(\5[-A-Z0-9]*)/,, and $info{cpanid}=$6;if ($distfile =~ m,([^/]+)\.(tar\.(?:g?z|bz2)|zip|tgz)$,i){$info{distvname}=$1;$info{extension}=$2}@info{qw(dist version beta)}=distname_info($info{distvname});$info{maturity}=delete$info{beta}? 'developer' : 'released';return bless \%info,$class}sub dist {shift->{dist}}sub version {shift->{version}}sub maturity {shift->{maturity}}sub filename {shift->{filename}}sub cpanid {shift->{cpanid}}sub distvname {shift->{distvname}}sub extension {shift->{extension}}sub pathname {shift->{pathname}}sub properties {%{$_[0]}}1; +CPAN_DISTNAMEINFO + +$fatpacked{"CPAN/Meta.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META'; + use 5.006;use strict;use warnings;package CPAN::Meta;our$VERSION='2.150005';use Carp qw(carp croak);use CPAN::Meta::Feature;use CPAN::Meta::Prereqs;use CPAN::Meta::Converter;use CPAN::Meta::Validator;use Parse::CPAN::Meta 1.4414 ();BEGIN {*_dclone=\&CPAN::Meta::Converter::_dclone}BEGIN {my@STRING_READERS=qw(abstract description dynamic_config generated_by name release_status version);no strict 'refs';for my$attr (@STRING_READERS){*$attr=sub {$_[0]{$attr }}}}BEGIN {my@LIST_READERS=qw(author keywords license);no strict 'refs';for my$attr (@LIST_READERS){*$attr=sub {my$value=$_[0]{$attr };croak "$attr must be called in list context" unless wantarray;return @{_dclone($value)}if ref$value;return$value}}}sub authors {$_[0]->author}sub licenses {$_[0]->license}BEGIN {my@MAP_READERS=qw(meta-spec resources provides no_index prereqs optional_features);no strict 'refs';for my$attr (@MAP_READERS){(my$subname=$attr)=~ s/-/_/;*$subname=sub {my$value=$_[0]{$attr };return _dclone($value)if$value;return {}}}}sub custom_keys {return grep {/^x_/i}keys %{$_[0]}}sub custom {my ($self,$attr)=@_;my$value=$self->{$attr};return _dclone($value)if ref$value;return$value}sub _new {my ($class,$struct,$options)=@_;my$self;if ($options->{lazy_validation}){my$cmc=CPAN::Meta::Converter->new($struct);$self=$cmc->convert(version=>2);return bless$self,$class}else {my$cmv=CPAN::Meta::Validator->new($struct);unless ($cmv->is_valid){die "Invalid metadata structure. Errors: " .join(", ",$cmv->errors)."\n"}}my$version=$struct->{'meta-spec'}{version}|| '1.0';if ($version==2){$self=$struct}else {my$cmc=CPAN::Meta::Converter->new($struct);$self=$cmc->convert(version=>2)}return bless$self,$class}sub new {my ($class,$struct,$options)=@_;my$self=eval {$class->_new($struct,$options)};croak($@)if $@;return$self}sub create {my ($class,$struct,$options)=@_;my$version=__PACKAGE__->VERSION || 2;$struct->{generated_by}||= __PACKAGE__ ." version $version" ;$struct->{'meta-spec'}{version}||= int($version);my$self=eval {$class->_new($struct,$options)};croak ($@)if $@;return$self}sub load_file {my ($class,$file,$options)=@_;$options->{lazy_validation}=1 unless exists$options->{lazy_validation};croak "load_file() requires a valid, readable filename" unless -r $file;my$self;eval {my$struct=Parse::CPAN::Meta->load_file($file);$self=$class->_new($struct,$options)};croak($@)if $@;return$self}sub load_yaml_string {my ($class,$yaml,$options)=@_;$options->{lazy_validation}=1 unless exists$options->{lazy_validation};my$self;eval {my ($struct)=Parse::CPAN::Meta->load_yaml_string($yaml);$self=$class->_new($struct,$options)};croak($@)if $@;return$self}sub load_json_string {my ($class,$json,$options)=@_;$options->{lazy_validation}=1 unless exists$options->{lazy_validation};my$self;eval {my$struct=Parse::CPAN::Meta->load_json_string($json);$self=$class->_new($struct,$options)};croak($@)if $@;return$self}sub load_string {my ($class,$string,$options)=@_;$options->{lazy_validation}=1 unless exists$options->{lazy_validation};my$self;eval {my$struct=Parse::CPAN::Meta->load_string($string);$self=$class->_new($struct,$options)};croak($@)if $@;return$self}sub save {my ($self,$file,$options)=@_;my$version=$options->{version}|| '2';my$layer=$] ge '5.008001' ? ':utf8' : '';if ($version ge '2'){carp "'$file' should end in '.json'" unless$file =~ m{\.json$}}else {carp "'$file' should end in '.yml'" unless$file =~ m{\.yml$}}my$data=$self->as_string($options);open my$fh,">$layer",$file or die "Error opening '$file' for writing: $!\n";print {$fh}$data;close$fh or die "Error closing '$file': $!\n";return 1}sub meta_spec_version {my ($self)=@_;return$self->meta_spec->{version}}sub effective_prereqs {my ($self,$features)=@_;$features ||= [];my$prereq=CPAN::Meta::Prereqs->new($self->prereqs);return$prereq unless @$features;my@other=map {;$self->feature($_)->prereqs}@$features;return$prereq->with_merged_prereqs(\@other)}sub should_index_file {my ($self,$filename)=@_;for my$no_index_file (@{$self->no_index->{file}|| []}){return if$filename eq $no_index_file}for my$no_index_dir (@{$self->no_index->{directory}}){$no_index_dir =~ s{$}{/} unless$no_index_dir =~ m{/\z};return if index($filename,$no_index_dir)==0}return 1}sub should_index_package {my ($self,$package)=@_;for my$no_index_pkg (@{$self->no_index->{package}|| []}){return if$package eq $no_index_pkg}for my$no_index_ns (@{$self->no_index->{namespace}}){return if index($package,"${no_index_ns}::")==0}return 1}sub features {my ($self)=@_;my$opt_f=$self->optional_features;my@features=map {;CPAN::Meta::Feature->new($_=>$opt_f->{$_ })}keys %$opt_f;return@features}sub feature {my ($self,$ident)=@_;croak "no feature named $ident" unless my$f=$self->optional_features->{$ident };return CPAN::Meta::Feature->new($ident,$f)}sub as_struct {my ($self,$options)=@_;my$struct=_dclone($self);if ($options->{version}){my$cmc=CPAN::Meta::Converter->new($struct);$struct=$cmc->convert(version=>$options->{version})}return$struct}sub as_string {my ($self,$options)=@_;my$version=$options->{version}|| '2';my$struct;if ($self->meta_spec_version ne $version){my$cmc=CPAN::Meta::Converter->new($self->as_struct);$struct=$cmc->convert(version=>$version)}else {$struct=$self->as_struct}my ($data,$backend);if ($version ge '2'){$backend=Parse::CPAN::Meta->json_backend();local$struct->{x_serialization_backend}=sprintf '%s version %s',$backend,$backend->VERSION;$data=$backend->new->pretty->canonical->encode($struct)}else {$backend=Parse::CPAN::Meta->yaml_backend();local$struct->{x_serialization_backend}=sprintf '%s version %s',$backend,$backend->VERSION;$data=eval {no strict 'refs';&{"$backend\::Dump"}($struct)};if ($@){croak$backend->can('errstr')? $backend->errstr : $@}}return$data}sub TO_JSON {return {%{$_[0]}}}1; +CPAN_META + +$fatpacked{"CPAN/Meta/Check.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META_CHECK'; + package CPAN::Meta::Check;$CPAN::Meta::Check::VERSION='0.012';use strict;use warnings;use base 'Exporter';our@EXPORT=qw//;our@EXPORT_OK=qw/check_requirements requirements_for verify_dependencies/;our%EXPORT_TAGS=(all=>[@EXPORT,@EXPORT_OK ]);use CPAN::Meta::Prereqs '2.132830';use CPAN::Meta::Requirements 2.121;use Module::Metadata 1.000023;sub _check_dep {my ($reqs,$module,$dirs)=@_;$module eq 'perl' and return ($reqs->accepts_module($module,$])? (): sprintf "Your Perl (%s) is not in the range '%s'",$],$reqs->requirements_for_module($module));my$metadata=Module::Metadata->new_from_module($module,inc=>$dirs);return "Module '$module' is not installed" if not defined$metadata;my$version=eval {$metadata->version};return "Missing version info for module '$module'" if$reqs->requirements_for_module($module)and not $version;return sprintf 'Installed version (%s) of %s is not in range \'%s\'',$version,$module,$reqs->requirements_for_module($module)if not $reqs->accepts_module($module,$version || 0);return}sub _check_conflict {my ($reqs,$module,$dirs)=@_;my$metadata=Module::Metadata->new_from_module($module,inc=>$dirs);return if not defined$metadata;my$version=eval {$metadata->version};return "Missing version info for module '$module'" if not $version;return sprintf 'Installed version (%s) of %s is in range \'%s\'',$version,$module,$reqs->requirements_for_module($module)if$reqs->accepts_module($module,$version);return}sub requirements_for {my ($meta,$phases,$type)=@_;my$prereqs=ref($meta)eq 'CPAN::Meta' ? $meta->effective_prereqs : $meta;return$prereqs->merged_requirements(ref($phases)? $phases : [$phases ],[$type ])}sub check_requirements {my ($reqs,$type,$dirs)=@_;return +{map {$_=>$type ne 'conflicts' ? scalar _check_dep($reqs,$_,$dirs): scalar _check_conflict($reqs,$_,$dirs)}$reqs->required_modules }}sub verify_dependencies {my ($meta,$phases,$type,$dirs)=@_;my$reqs=requirements_for($meta,$phases,$type);my$issues=check_requirements($reqs,$type,$dirs);return grep {defined}values %{$issues}}1; +CPAN_META_CHECK + +$fatpacked{"CPAN/Meta/Converter.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META_CONVERTER'; + use 5.006;use strict;use warnings;package CPAN::Meta::Converter;our$VERSION='2.150005';use CPAN::Meta::Validator;use CPAN::Meta::Requirements;use Parse::CPAN::Meta 1.4400 ();BEGIN {eval "use version ()";if (my$err=$@){eval "use ExtUtils::MakeMaker::version" or die$err}}*_is_qv=version->can('is_qv')? sub {$_[0]->is_qv}: sub {exists $_[0]->{qv}};sub _dclone {my$ref=shift;no warnings 'once';no warnings 'redefine';local*UNIVERSAL::TO_JSON=sub {"$_[0]"};my$json=Parse::CPAN::Meta->json_backend()->new ->utf8 ->allow_blessed ->convert_blessed;$json->decode($json->encode($ref))}my%known_specs=('2'=>'http://search.cpan.org/perldoc?CPAN::Meta::Spec','1.4'=>'http://module-build.sourceforge.net/META-spec-v1.4.html','1.3'=>'http://module-build.sourceforge.net/META-spec-v1.3.html','1.2'=>'http://module-build.sourceforge.net/META-spec-v1.2.html','1.1'=>'http://module-build.sourceforge.net/META-spec-v1.1.html','1.0'=>'http://module-build.sourceforge.net/META-spec-v1.0.html');my@spec_list=sort {$a <=> $b}keys%known_specs;my ($LOWEST,$HIGHEST)=@spec_list[0,-1];sub _keep {$_[0]}sub _keep_or_one {defined($_[0])? $_[0]: 1}sub _keep_or_zero {defined($_[0])? $_[0]: 0}sub _keep_or_unknown {defined($_[0])&& length($_[0])? $_[0]: "unknown"}sub _generated_by {my$gen=shift;my$sig=__PACKAGE__ ." version " .(__PACKAGE__->VERSION || "");return$sig unless defined$gen and length$gen;return$gen if$gen =~ /\Q$sig/;return "$gen, $sig"}sub _listify {!defined $_[0]? undef : ref $_[0]eq 'ARRAY' ? $_[0]: [$_[0]]}sub _prefix_custom {my$key=shift;$key =~ s/^(?!x_) # Unless it already starts with x_ + (?:x-?)? # Remove leading x- or x (if present) + /x_/ix;return$key}sub _ucfirst_custom {my$key=shift;$key=ucfirst$key unless$key =~ /[A-Z]/;return$key}sub _no_prefix_ucfirst_custom {my$key=shift;$key =~ s/^x_//;return _ucfirst_custom($key)}sub _change_meta_spec {my ($element,undef,undef,$version)=@_;return {version=>$version,url=>$known_specs{$version},}}my@open_source=('perl','gpl','apache','artistic','artistic_2','lgpl','bsd','gpl','mit','mozilla','open_source',);my%is_open_source=map {;$_=>1}@open_source;my@valid_licenses_1=(@open_source,'unrestricted','restrictive','unknown',);my%license_map_1=((map {$_=>$_}@valid_licenses_1),artistic2=>'artistic_2',);sub _license_1 {my ($element)=@_;return 'unknown' unless defined$element;if ($license_map_1{lc$element}){return$license_map_1{lc$element}}else {return 'unknown'}}my@valid_licenses_2=qw(agpl_3 apache_1_1 apache_2_0 artistic_1 artistic_2 bsd freebsd gfdl_1_2 gfdl_1_3 gpl_1 gpl_2 gpl_3 lgpl_2_1 lgpl_3_0 mit mozilla_1_0 mozilla_1_1 openssl perl_5 qpl_1_0 ssleay sun zlib open_source restricted unrestricted unknown);my%license_map_2=((map {$_=>$_}@valid_licenses_2),apache=>'apache_2_0',artistic=>'artistic_1',artistic2=>'artistic_2',gpl=>'open_source',lgpl=>'open_source',mozilla=>'open_source',perl=>'perl_5',restrictive=>'restricted',);sub _license_2 {my ($element)=@_;return ['unknown' ]unless defined$element;$element=[$element ]unless ref$element eq 'ARRAY';my@new_list;for my$lic (@$element){next unless defined$lic;if (my$new=$license_map_2{lc$lic}){push@new_list,$new}}return@new_list ? \@new_list : ['unknown' ]}my%license_downgrade_map=qw(agpl_3 open_source apache_1_1 apache apache_2_0 apache artistic_1 artistic artistic_2 artistic_2 bsd bsd freebsd open_source gfdl_1_2 open_source gfdl_1_3 open_source gpl_1 gpl gpl_2 gpl gpl_3 gpl lgpl_2_1 lgpl lgpl_3_0 lgpl mit mit mozilla_1_0 mozilla mozilla_1_1 mozilla openssl open_source perl_5 perl qpl_1_0 open_source ssleay open_source sun open_source zlib open_source open_source open_source restricted restrictive unrestricted unrestricted unknown unknown);sub _downgrade_license {my ($element)=@_;if (!defined$element){return "unknown"}elsif(ref$element eq 'ARRAY'){if (@$element > 1){if (grep {!$is_open_source{$license_downgrade_map{lc $_}|| 'unknown' }}@$element){return 'unknown'}else {return 'open_source'}}elsif (@$element==1){return$license_downgrade_map{lc$element->[0]}|| "unknown"}}elsif (!ref$element){return$license_downgrade_map{lc$element}|| "unknown"}return "unknown"}my$no_index_spec_1_2={'file'=>\&_listify,'dir'=>\&_listify,'package'=>\&_listify,'namespace'=>\&_listify,};my$no_index_spec_1_3={'file'=>\&_listify,'directory'=>\&_listify,'package'=>\&_listify,'namespace'=>\&_listify,};my$no_index_spec_2={'file'=>\&_listify,'directory'=>\&_listify,'package'=>\&_listify,'namespace'=>\&_listify,':custom'=>\&_prefix_custom,};sub _no_index_1_2 {my (undef,undef,$meta)=@_;my$no_index=$meta->{no_index}|| $meta->{private};return unless$no_index;if (!ref$no_index){my$item=$no_index;$no_index={dir=>[$item ],file=>[$item ]}}elsif (ref$no_index eq 'ARRAY'){my$list=$no_index;$no_index={dir=>[@$list ],file=>[@$list ]}}if (exists$no_index->{files}){$no_index->{file}=delete$no_index->{files}}if (exists$no_index->{modules}){$no_index->{module}=delete$no_index->{modules}}return _convert($no_index,$no_index_spec_1_2)}sub _no_index_directory {my ($element,$key,$meta,$version)=@_;return unless$element;if (!ref$element){my$item=$element;$element={directory=>[$item ],file=>[$item ]}}elsif (ref$element eq 'ARRAY'){my$list=$element;$element={directory=>[@$list ],file=>[@$list ]}}if (exists$element->{dir}){$element->{directory}=delete$element->{dir}}if (exists$element->{files}){$element->{file}=delete$element->{files}}if (exists$element->{modules}){$element->{module}=delete$element->{modules}}my$spec=$version==2 ? $no_index_spec_2 : $no_index_spec_1_3;return _convert($element,$spec)}sub _is_module_name {my$mod=shift;return unless defined$mod && length$mod;return$mod =~ m{^[A-Za-z][A-Za-z0-9_]*(?:::[A-Za-z0-9_]+)*$}}sub _clean_version {my ($element)=@_;return 0 if!defined$element;$element =~ s{^\s*}{};$element =~ s{\s*$}{};$element =~ s{^\.}{0.};return 0 if!length$element;return 0 if ($element eq 'undef' || $element eq '');my$v=eval {version->new($element)};if (defined$v){return _is_qv($v)? $v->normal : $element}else {return 0}}sub _bad_version_hook {my ($v)=@_;$v =~ s{^\s*}{};$v =~ s{\s*$}{};$v =~ s{[a-z]+$}{};my$vobj=eval {version->new($v)};return defined($vobj)? $vobj : version->new(0)}sub _version_map {my ($element)=@_;return unless defined$element;if (ref$element eq 'HASH'){my$new_map=CPAN::Meta::Requirements->new({bad_version_hook=>\&_bad_version_hook });while (my ($k,$v)=each %$element){next unless _is_module_name($k);if (!defined($v)||!length($v)|| $v eq 'undef' || $v eq ''){$v=0}if (_is_module_name($v)&&!version::is_lax($v)){$new_map->add_minimum($k=>0);$new_map->add_minimum($v=>0)}$new_map->add_string_requirement($k=>$v)}return$new_map->as_string_hash}elsif (ref$element eq 'ARRAY'){my$hashref={map {$_=>0}@$element };return _version_map($hashref)}elsif (ref$element eq '' && length$element){return {$element=>0 }}return}sub _prereqs_from_1 {my (undef,undef,$meta)=@_;my$prereqs={};for my$phase (qw/build configure/){my$key="${phase}_requires";$prereqs->{$phase}{requires}=_version_map($meta->{$key})if$meta->{$key}}for my$rel (qw/requires recommends conflicts/){$prereqs->{runtime}{$rel}=_version_map($meta->{$rel})if$meta->{$rel}}return$prereqs}my$prereqs_spec={configure=>\&_prereqs_rel,build=>\&_prereqs_rel,test=>\&_prereqs_rel,runtime=>\&_prereqs_rel,develop=>\&_prereqs_rel,':custom'=>\&_prefix_custom,};my$relation_spec={requires=>\&_version_map,recommends=>\&_version_map,suggests=>\&_version_map,conflicts=>\&_version_map,':custom'=>\&_prefix_custom,};sub _cleanup_prereqs {my ($prereqs,$key,$meta,$to_version)=@_;return unless$prereqs && ref$prereqs eq 'HASH';return _convert($prereqs,$prereqs_spec,$to_version)}sub _prereqs_rel {my ($relation,$key,$meta,$to_version)=@_;return unless$relation && ref$relation eq 'HASH';return _convert($relation,$relation_spec,$to_version)}BEGIN {my@old_prereqs=qw(requires configure_requires recommends conflicts);for (@old_prereqs){my$sub="_get_$_";my ($phase,$type)=split qr/_/,$_;if (!defined$type){$type=$phase;$phase='runtime'}no strict 'refs';*{$sub}=sub {_extract_prereqs($_[2]->{prereqs},$phase,$type)}}}sub _get_build_requires {my ($data,$key,$meta)=@_;my$test_h=_extract_prereqs($_[2]->{prereqs},qw(test requires))|| {};my$build_h=_extract_prereqs($_[2]->{prereqs},qw(build requires))|| {};my$test_req=CPAN::Meta::Requirements->from_string_hash($test_h);my$build_req=CPAN::Meta::Requirements->from_string_hash($build_h);$test_req->add_requirements($build_req)->as_string_hash}sub _extract_prereqs {my ($prereqs,$phase,$type)=@_;return unless ref$prereqs eq 'HASH';return scalar _version_map($prereqs->{$phase}{$type})}sub _downgrade_optional_features {my (undef,undef,$meta)=@_;return unless exists$meta->{optional_features};my$origin=$meta->{optional_features};my$features={};for my$name (keys %$origin){$features->{$name}={description=>$origin->{$name}{description},requires=>_extract_prereqs($origin->{$name}{prereqs},'runtime','requires'),configure_requires=>_extract_prereqs($origin->{$name}{prereqs},'runtime','configure_requires'),build_requires=>_extract_prereqs($origin->{$name}{prereqs},'runtime','build_requires'),recommends=>_extract_prereqs($origin->{$name}{prereqs},'runtime','recommends'),conflicts=>_extract_prereqs($origin->{$name}{prereqs},'runtime','conflicts'),};for my$k (keys %{$features->{$name}}){delete$features->{$name}{$k}unless defined$features->{$name}{$k}}}return$features}sub _upgrade_optional_features {my (undef,undef,$meta)=@_;return unless exists$meta->{optional_features};my$origin=$meta->{optional_features};my$features={};for my$name (keys %$origin){$features->{$name}={description=>$origin->{$name}{description},prereqs=>_prereqs_from_1(undef,undef,$origin->{$name}),};delete$features->{$name}{prereqs}{configure}}return$features}my$optional_features_2_spec={description=>\&_keep,prereqs=>\&_cleanup_prereqs,':custom'=>\&_prefix_custom,};sub _feature_2 {my ($element,$key,$meta,$to_version)=@_;return unless$element && ref$element eq 'HASH';_convert($element,$optional_features_2_spec,$to_version)}sub _cleanup_optional_features_2 {my ($element,$key,$meta,$to_version)=@_;return unless$element && ref$element eq 'HASH';my$new_data={};for my$k (keys %$element){$new_data->{$k}=_feature_2($element->{$k},$k,$meta,$to_version)}return unless keys %$new_data;return$new_data}sub _optional_features_1_4 {my ($element)=@_;return unless$element;$element=_optional_features_as_map($element);for my$name (keys %$element){for my$drop (qw/requires_packages requires_os excluded_os/){delete$element->{$name}{$drop}}}return$element}sub _optional_features_as_map {my ($element)=@_;return unless$element;if (ref$element eq 'ARRAY'){my%map;for my$feature (@$element){my (@parts)=%$feature;$map{$parts[0]}=$parts[1]}$element=\%map}return$element}sub _is_urlish {defined $_[0]&& $_[0]=~ m{\A[-+.a-z0-9]+:.+}i}sub _url_or_drop {my ($element)=@_;return$element if _is_urlish($element);return}sub _url_list {my ($element)=@_;return unless$element;$element=_listify($element);$element=[grep {_is_urlish($_)}@$element ];return unless @$element;return$element}sub _author_list {my ($element)=@_;return ['unknown' ]unless$element;$element=_listify($element);$element=[map {defined $_ && length $_ ? $_ : 'unknown'}@$element ];return ['unknown' ]unless @$element;return$element}my$resource2_upgrade={license=>sub {return _is_urlish($_[0])? _listify($_[0]): undef},homepage=>\&_url_or_drop,bugtracker=>sub {my ($item)=@_;return unless$item;if ($item =~ m{^mailto:(.*)$}){return {mailto=>$1 }}elsif(_is_urlish($item)){return {web=>$item }}else {return}},repository=>sub {return _is_urlish($_[0])? {url=>$_[0]}: undef},':custom'=>\&_prefix_custom,};sub _upgrade_resources_2 {my (undef,undef,$meta,$version)=@_;return unless exists$meta->{resources};return _convert($meta->{resources},$resource2_upgrade)}my$bugtracker2_spec={web=>\&_url_or_drop,mailto=>\&_keep,':custom'=>\&_prefix_custom,};sub _repo_type {my ($element,$key,$meta,$to_version)=@_;return$element if defined$element;return unless exists$meta->{url};my$repo_url=$meta->{url};for my$type (qw/git svn/){return$type if$repo_url =~ m{\A$type}}return}my$repository2_spec={web=>\&_url_or_drop,url=>\&_url_or_drop,type=>\&_repo_type,':custom'=>\&_prefix_custom,};my$resources2_cleanup={license=>\&_url_list,homepage=>\&_url_or_drop,bugtracker=>sub {ref $_[0]? _convert($_[0],$bugtracker2_spec): undef},repository=>sub {my$data=shift;ref$data ? _convert($data,$repository2_spec): undef},':custom'=>\&_prefix_custom,};sub _cleanup_resources_2 {my ($resources,$key,$meta,$to_version)=@_;return unless$resources && ref$resources eq 'HASH';return _convert($resources,$resources2_cleanup,$to_version)}my$resource1_spec={license=>\&_url_or_drop,homepage=>\&_url_or_drop,bugtracker=>\&_url_or_drop,repository=>\&_url_or_drop,':custom'=>\&_keep,};sub _resources_1_3 {my (undef,undef,$meta,$version)=@_;return unless exists$meta->{resources};return _convert($meta->{resources},$resource1_spec)}*_resources_1_4=*_resources_1_3;sub _resources_1_2 {my (undef,undef,$meta)=@_;my$resources=$meta->{resources}|| {};if ($meta->{license_url}&&!$resources->{license}){$resources->{license}=$meta->{license_url}if _is_urlish($meta->{license_url})}return unless keys %$resources;return _convert($resources,$resource1_spec)}my$resource_downgrade_spec={license=>sub {return ref $_[0]? $_[0]->[0]: $_[0]},homepage=>\&_url_or_drop,bugtracker=>sub {return $_[0]->{web}},repository=>sub {return $_[0]->{url}|| $_[0]->{web}},':custom'=>\&_no_prefix_ucfirst_custom,};sub _downgrade_resources {my (undef,undef,$meta,$version)=@_;return unless exists$meta->{resources};return _convert($meta->{resources},$resource_downgrade_spec)}sub _release_status {my ($element,undef,$meta)=@_;return$element if$element && $element =~ m{\A(?:stable|testing|unstable)\z};return _release_status_from_version(undef,undef,$meta)}sub _release_status_from_version {my (undef,undef,$meta)=@_;my$version=$meta->{version}|| '';return ($version =~ /_/)? 'testing' : 'stable'}my$provides_spec={file=>\&_keep,version=>\&_keep,};my$provides_spec_2={file=>\&_keep,version=>\&_keep,':custom'=>\&_prefix_custom,};sub _provides {my ($element,$key,$meta,$to_version)=@_;return unless defined$element && ref$element eq 'HASH';my$spec=$to_version==2 ? $provides_spec_2 : $provides_spec;my$new_data={};for my$k (keys %$element){$new_data->{$k}=_convert($element->{$k},$spec,$to_version);$new_data->{$k}{version}=_clean_version($element->{$k}{version})if exists$element->{$k}{version}}return$new_data}sub _convert {my ($data,$spec,$to_version,$is_fragment)=@_;my$new_data={};for my$key (keys %$spec){next if$key eq ':custom' || $key eq ':drop';next unless my$fcn=$spec->{$key};if ($is_fragment && $key eq 'generated_by'){$fcn=\&_keep}die "spec for '$key' is not a coderef" unless ref$fcn && ref$fcn eq 'CODE';my$new_value=$fcn->($data->{$key},$key,$data,$to_version);$new_data->{$key}=$new_value if defined$new_value}my$drop_list=$spec->{':drop'};my$customizer=$spec->{':custom'}|| \&_keep;for my$key (keys %$data){next if$drop_list && grep {$key eq $_}@$drop_list;next if exists$spec->{$key};$new_data->{$customizer->($key)}=$data->{$key}}return$new_data}my%up_convert=('2-from-1.4'=>{'abstract'=>\&_keep_or_unknown,'author'=>\&_author_list,'generated_by'=>\&_generated_by,'license'=>\&_license_2,'meta-spec'=>\&_change_meta_spec,'name'=>\&_keep,'version'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'release_status'=>\&_release_status,'keywords'=>\&_keep,'no_index'=>\&_no_index_directory,'optional_features'=>\&_upgrade_optional_features,'provides'=>\&_provides,'resources'=>\&_upgrade_resources_2,'description'=>\&_keep,'prereqs'=>\&_prereqs_from_1,':drop'=>[qw(build_requires configure_requires conflicts distribution_type license_url private recommends requires) ],':custom'=>\&_prefix_custom,},'1.4-from-1.3'=>{'abstract'=>\&_keep_or_unknown,'author'=>\&_author_list,'generated_by'=>\&_generated_by,'license'=>\&_license_1,'meta-spec'=>\&_change_meta_spec,'name'=>\&_keep,'version'=>\&_keep,'build_requires'=>\&_version_map,'conflicts'=>\&_version_map,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'keywords'=>\&_keep,'no_index'=>\&_no_index_directory,'optional_features'=>\&_optional_features_1_4,'provides'=>\&_provides,'recommends'=>\&_version_map,'requires'=>\&_version_map,'resources'=>\&_resources_1_4,'configure_requires'=>\&_keep,':drop'=>[qw(license_url private)],':custom'=>\&_keep },'1.3-from-1.2'=>{'abstract'=>\&_keep_or_unknown,'author'=>\&_author_list,'generated_by'=>\&_generated_by,'license'=>\&_license_1,'meta-spec'=>\&_change_meta_spec,'name'=>\&_keep,'version'=>\&_keep,'build_requires'=>\&_version_map,'conflicts'=>\&_version_map,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'keywords'=>\&_keep,'no_index'=>\&_no_index_directory,'optional_features'=>\&_optional_features_as_map,'provides'=>\&_provides,'recommends'=>\&_version_map,'requires'=>\&_version_map,'resources'=>\&_resources_1_3,':drop'=>[qw(license_url private)],':custom'=>\&_keep },'1.2-from-1.1'=>{'version'=>\&_keep,'license'=>\&_license_1,'name'=>\&_keep,'generated_by'=>\&_generated_by,'abstract'=>\&_keep_or_unknown,'author'=>\&_author_list,'meta-spec'=>\&_change_meta_spec,'build_requires'=>\&_version_map,'conflicts'=>\&_version_map,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'recommends'=>\&_version_map,'requires'=>\&_version_map,'keywords'=>\&_keep,'no_index'=>\&_no_index_1_2,'optional_features'=>\&_optional_features_as_map,'provides'=>\&_provides,'resources'=>\&_resources_1_2,':drop'=>[qw(license_url private)],':custom'=>\&_keep },'1.1-from-1.0'=>{'version'=>\&_keep,'name'=>\&_keep,'build_requires'=>\&_version_map,'conflicts'=>\&_version_map,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'generated_by'=>\&_generated_by,'license'=>\&_license_1,'recommends'=>\&_version_map,'requires'=>\&_version_map,'license_url'=>\&_url_or_drop,'private'=>\&_keep,':custom'=>\&_keep },);my%down_convert=('1.4-from-2'=>{'abstract'=>\&_keep_or_unknown,'author'=>\&_author_list,'generated_by'=>\&_generated_by,'license'=>\&_downgrade_license,'meta-spec'=>\&_change_meta_spec,'name'=>\&_keep,'version'=>\&_keep,'build_requires'=>\&_get_build_requires,'configure_requires'=>\&_get_configure_requires,'conflicts'=>\&_get_conflicts,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'keywords'=>\&_keep,'no_index'=>\&_no_index_directory,'optional_features'=>\&_downgrade_optional_features,'provides'=>\&_provides,'recommends'=>\&_get_recommends,'requires'=>\&_get_requires,'resources'=>\&_downgrade_resources,':drop'=>[qw(description prereqs release_status)],':custom'=>\&_keep },'1.3-from-1.4'=>{'abstract'=>\&_keep_or_unknown,'author'=>\&_author_list,'generated_by'=>\&_generated_by,'license'=>\&_license_1,'meta-spec'=>\&_change_meta_spec,'name'=>\&_keep,'version'=>\&_keep,'build_requires'=>\&_version_map,'conflicts'=>\&_version_map,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'keywords'=>\&_keep,'no_index'=>\&_no_index_directory,'optional_features'=>\&_optional_features_as_map,'provides'=>\&_provides,'recommends'=>\&_version_map,'requires'=>\&_version_map,'resources'=>\&_resources_1_3,':drop'=>[qw(configure_requires)],':custom'=>\&_keep,},'1.2-from-1.3'=>{'abstract'=>\&_keep_or_unknown,'author'=>\&_author_list,'generated_by'=>\&_generated_by,'license'=>\&_license_1,'meta-spec'=>\&_change_meta_spec,'name'=>\&_keep,'version'=>\&_keep,'build_requires'=>\&_version_map,'conflicts'=>\&_version_map,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'keywords'=>\&_keep,'no_index'=>\&_no_index_1_2,'optional_features'=>\&_optional_features_as_map,'provides'=>\&_provides,'recommends'=>\&_version_map,'requires'=>\&_version_map,'resources'=>\&_resources_1_3,':custom'=>\&_keep,},'1.1-from-1.2'=>{'version'=>\&_keep,'name'=>\&_keep,'meta-spec'=>\&_change_meta_spec,'build_requires'=>\&_version_map,'conflicts'=>\&_version_map,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'generated_by'=>\&_generated_by,'license'=>\&_license_1,'private'=>\&_keep,'recommends'=>\&_version_map,'requires'=>\&_version_map,':drop'=>[qw(abstract author provides no_index keywords resources)],':custom'=>\&_keep,},'1.0-from-1.1'=>{'name'=>\&_keep,'meta-spec'=>\&_change_meta_spec,'version'=>\&_keep,'build_requires'=>\&_version_map,'conflicts'=>\&_version_map,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'generated_by'=>\&_generated_by,'license'=>\&_license_1,'recommends'=>\&_version_map,'requires'=>\&_version_map,':custom'=>\&_keep,},);my%cleanup=('2'=>{'abstract'=>\&_keep_or_unknown,'author'=>\&_author_list,'generated_by'=>\&_generated_by,'license'=>\&_license_2,'meta-spec'=>\&_change_meta_spec,'name'=>\&_keep,'version'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'release_status'=>\&_release_status,'keywords'=>\&_keep,'no_index'=>\&_no_index_directory,'optional_features'=>\&_cleanup_optional_features_2,'provides'=>\&_provides,'resources'=>\&_cleanup_resources_2,'description'=>\&_keep,'prereqs'=>\&_cleanup_prereqs,':drop'=>[qw(build_requires configure_requires conflicts distribution_type license_url private recommends requires) ],':custom'=>\&_prefix_custom,},'1.4'=>{'abstract'=>\&_keep_or_unknown,'author'=>\&_author_list,'generated_by'=>\&_generated_by,'license'=>\&_license_1,'meta-spec'=>\&_change_meta_spec,'name'=>\&_keep,'version'=>\&_keep,'build_requires'=>\&_version_map,'conflicts'=>\&_version_map,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'keywords'=>\&_keep,'no_index'=>\&_no_index_directory,'optional_features'=>\&_optional_features_1_4,'provides'=>\&_provides,'recommends'=>\&_version_map,'requires'=>\&_version_map,'resources'=>\&_resources_1_4,'configure_requires'=>\&_keep,':custom'=>\&_keep },'1.3'=>{'abstract'=>\&_keep_or_unknown,'author'=>\&_author_list,'generated_by'=>\&_generated_by,'license'=>\&_license_1,'meta-spec'=>\&_change_meta_spec,'name'=>\&_keep,'version'=>\&_keep,'build_requires'=>\&_version_map,'conflicts'=>\&_version_map,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'keywords'=>\&_keep,'no_index'=>\&_no_index_directory,'optional_features'=>\&_optional_features_as_map,'provides'=>\&_provides,'recommends'=>\&_version_map,'requires'=>\&_version_map,'resources'=>\&_resources_1_3,':custom'=>\&_keep },'1.2'=>{'version'=>\&_keep,'license'=>\&_license_1,'name'=>\&_keep,'generated_by'=>\&_generated_by,'abstract'=>\&_keep_or_unknown,'author'=>\&_author_list,'meta-spec'=>\&_change_meta_spec,'build_requires'=>\&_version_map,'conflicts'=>\&_version_map,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'recommends'=>\&_version_map,'requires'=>\&_version_map,'keywords'=>\&_keep,'no_index'=>\&_no_index_1_2,'optional_features'=>\&_optional_features_as_map,'provides'=>\&_provides,'resources'=>\&_resources_1_2,':custom'=>\&_keep },'1.1'=>{'version'=>\&_keep,'name'=>\&_keep,'meta-spec'=>\&_change_meta_spec,'build_requires'=>\&_version_map,'conflicts'=>\&_version_map,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'generated_by'=>\&_generated_by,'license'=>\&_license_1,'recommends'=>\&_version_map,'requires'=>\&_version_map,'license_url'=>\&_url_or_drop,'private'=>\&_keep,':custom'=>\&_keep },'1.0'=>{'name'=>\&_keep,'meta-spec'=>\&_change_meta_spec,'version'=>\&_keep,'build_requires'=>\&_version_map,'conflicts'=>\&_version_map,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'generated_by'=>\&_generated_by,'license'=>\&_license_1,'recommends'=>\&_version_map,'requires'=>\&_version_map,':custom'=>\&_keep,},);my%fragments_generate=('2'=>{'abstract'=>'abstract','author'=>'author','generated_by'=>'generated_by','license'=>'license','name'=>'name','version'=>'version','dynamic_config'=>'dynamic_config','release_status'=>'release_status','keywords'=>'keywords','no_index'=>'no_index','optional_features'=>'optional_features','provides'=>'provides','resources'=>'resources','description'=>'description','prereqs'=>'prereqs',},'1.4'=>{'abstract'=>'abstract','author'=>'author','generated_by'=>'generated_by','license'=>'license','name'=>'name','version'=>'version','build_requires'=>'prereqs','conflicts'=>'prereqs','distribution_type'=>'distribution_type','dynamic_config'=>'dynamic_config','keywords'=>'keywords','no_index'=>'no_index','optional_features'=>'optional_features','provides'=>'provides','recommends'=>'prereqs','requires'=>'prereqs','resources'=>'resources','configure_requires'=>'prereqs',},);$fragments_generate{$_}=$fragments_generate{'1.4'}for qw/1.3 1.2 1.1 1.0/;sub new {my ($class,$data,%args)=@_;my$self={'data'=>$data,'spec'=>_extract_spec_version($data,$args{default_version}),};return bless$self,$class}sub _extract_spec_version {my ($data,$default)=@_;my$spec=$data->{'meta-spec'};return($default || "1.0")unless defined$spec && ref$spec eq 'HASH';my$v=$spec->{version};if (defined$v && $v =~ /^\d+(?:\.\d+)?$/){return$v if defined$v && grep {$v eq $_}keys%known_specs;return$v+0 if defined$v && grep {$v==$_}keys%known_specs}return "2" if exists$data->{prereqs};return "1.4" if exists$data->{configure_requires};return($default || "1.2")}sub convert {my ($self,%args)=@_;my$args={%args };my$new_version=$args->{version}|| $HIGHEST;my$is_fragment=$args->{is_fragment};my ($old_version)=$self->{spec};my$converted=_dclone($self->{data});if ($old_version==$new_version){$converted=_convert($converted,$cleanup{$old_version},$old_version,$is_fragment);unless ($args->{is_fragment}){my$cmv=CPAN::Meta::Validator->new($converted);unless ($cmv->is_valid){my$errs=join("\n",$cmv->errors);die "Failed to clean-up $old_version metadata. Errors:\n$errs\n"}}return$converted}elsif ($old_version > $new_version){my@vers=sort {$b <=> $a}keys%known_specs;for my$i (0 .. $#vers-1){next if$vers[$i]> $old_version;last if$vers[$i+1]< $new_version;my$spec_string="$vers[$i+1]-from-$vers[$i]";$converted=_convert($converted,$down_convert{$spec_string},$vers[$i+1],$is_fragment);unless ($args->{is_fragment}){my$cmv=CPAN::Meta::Validator->new($converted);unless ($cmv->is_valid){my$errs=join("\n",$cmv->errors);die "Failed to downconvert metadata to $vers[$i+1]. Errors:\n$errs\n"}}}return$converted}else {my@vers=sort {$a <=> $b}keys%known_specs;for my$i (0 .. $#vers-1){next if$vers[$i]< $old_version;last if$vers[$i+1]> $new_version;my$spec_string="$vers[$i+1]-from-$vers[$i]";$converted=_convert($converted,$up_convert{$spec_string},$vers[$i+1],$is_fragment);unless ($args->{is_fragment}){my$cmv=CPAN::Meta::Validator->new($converted);unless ($cmv->is_valid){my$errs=join("\n",$cmv->errors);die "Failed to upconvert metadata to $vers[$i+1]. Errors:\n$errs\n"}}}return$converted}}sub upgrade_fragment {my ($self)=@_;my ($old_version)=$self->{spec};my%expected=map {;$_=>1}grep {defined}map {$fragments_generate{$old_version}{$_}}keys %{$self->{data}};my$converted=$self->convert(version=>$HIGHEST,is_fragment=>1);for my$key (keys %$converted){next if$key =~ /^x_/i || $key eq 'meta-spec';delete$converted->{$key}unless$expected{$key}}return$converted}1; +CPAN_META_CONVERTER + +$fatpacked{"CPAN/Meta/Feature.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META_FEATURE'; + use 5.006;use strict;use warnings;package CPAN::Meta::Feature;our$VERSION='2.150005';use CPAN::Meta::Prereqs;sub new {my ($class,$identifier,$spec)=@_;my%guts=(identifier=>$identifier,description=>$spec->{description},prereqs=>CPAN::Meta::Prereqs->new($spec->{prereqs}),);bless \%guts=>$class}sub identifier {$_[0]{identifier}}sub description {$_[0]{description}}sub prereqs {$_[0]{prereqs}}1; +CPAN_META_FEATURE + +$fatpacked{"CPAN/Meta/History.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META_HISTORY'; + use 5.006;use strict;use warnings;package CPAN::Meta::History;our$VERSION='2.150005';1; +CPAN_META_HISTORY + +$fatpacked{"CPAN/Meta/Merge.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META_MERGE'; + use strict;use warnings;package CPAN::Meta::Merge;our$VERSION='2.150005';use Carp qw/croak/;use Scalar::Util qw/blessed/;use CPAN::Meta::Converter 2.141170;sub _is_identical {my ($left,$right)=@_;return (not defined$left and not defined$right)|| (defined$left and defined$right and $left eq $right)}sub _identical {my ($left,$right,$path)=@_;croak sprintf "Can't merge attribute %s: '%s' does not equal '%s'",join('.',@{$path}),$left,$right unless _is_identical($left,$right);return$left}sub _merge {my ($current,$next,$mergers,$path)=@_;for my$key (keys %{$next}){if (not exists$current->{$key}){$current->{$key}=$next->{$key}}elsif (my$merger=$mergers->{$key}){$current->{$key}=$merger->($current->{$key},$next->{$key},[@{$path},$key ])}elsif ($merger=$mergers->{':default'}){$current->{$key}=$merger->($current->{$key},$next->{$key},[@{$path},$key ])}else {croak sprintf "Can't merge unknown attribute '%s'",join '.',@{$path},$key}}return$current}sub _uniq {my%seen=();return grep {not $seen{$_}++}@_}sub _set_addition {my ($left,$right)=@_;return [+_uniq(@{$left},@{$right})]}sub _uniq_map {my ($left,$right,$path)=@_;for my$key (keys %{$right}){if (not exists$left->{$key}){$left->{$key}=$right->{$key}}elsif (_is_identical($left->{$key},$right->{$key})){1}elsif (ref$left->{$key}eq 'HASH' and ref$right->{$key}eq 'HASH'){$left->{$key}=_uniq_map($left->{$key},$right->{$key},[@{$path},$key ])}else {croak 'Duplication of element ' .join '.',@{$path},$key}}return$left}sub _improvize {my ($left,$right,$path)=@_;my ($name)=reverse @{$path};if ($name =~ /^x_/){if (ref($left)eq 'ARRAY'){return _set_addition($left,$right,$path)}elsif (ref($left)eq 'HASH'){return _uniq_map($left,$right,$path)}else {return _identical($left,$right,$path)}}croak sprintf "Can't merge '%s'",join '.',@{$path}}sub _optional_features {my ($left,$right,$path)=@_;for my$key (keys %{$right}){if (not exists$left->{$key}){$left->{$key}=$right->{$key}}else {for my$subkey (keys %{$right->{$key}}){next if$subkey eq 'prereqs';if (not exists$left->{$key}{$subkey}){$left->{$key}{$subkey}=$right->{$key}{$subkey}}else {Carp::croak "Cannot merge two optional_features named '$key' with different '$subkey' values" if do {no warnings 'uninitialized';$left->{$key}{$subkey}ne $right->{$key}{$subkey}}}}require CPAN::Meta::Prereqs;$left->{$key}{prereqs}=CPAN::Meta::Prereqs->new($left->{$key}{prereqs})->with_merged_prereqs(CPAN::Meta::Prereqs->new($right->{$key}{prereqs}))->as_string_hash}}return$left}my%default=(abstract=>\&_identical,author=>\&_set_addition,dynamic_config=>sub {my ($left,$right)=@_;return$left || $right},generated_by=>sub {my ($left,$right)=@_;return join ', ',_uniq(split(/, /,$left),split(/, /,$right))},license=>\&_set_addition,'meta-spec'=>{version=>\&_identical,url=>\&_identical },name=>\&_identical,release_status=>\&_identical,version=>\&_identical,description=>\&_identical,keywords=>\&_set_addition,no_index=>{map {($_=>\&_set_addition)}qw/file directory package namespace/ },optional_features=>\&_optional_features,prereqs=>sub {require CPAN::Meta::Prereqs;my ($left,$right)=map {CPAN::Meta::Prereqs->new($_)}@_[0,1];return$left->with_merged_prereqs($right)->as_string_hash},provides=>\&_uniq_map,resources=>{license=>\&_set_addition,homepage=>\&_identical,bugtracker=>\&_uniq_map,repository=>\&_uniq_map,':default'=>\&_improvize,},':default'=>\&_improvize,);sub new {my ($class,%arguments)=@_;croak 'default version required' if not exists$arguments{default_version};my%mapping=%default;my%extra=%{$arguments{extra_mappings}|| {}};for my$key (keys%extra){if (ref($mapping{$key})eq 'HASH'){$mapping{$key}={%{$mapping{$key}},%{$extra{$key}}}}else {$mapping{$key}=$extra{$key}}}return bless {default_version=>$arguments{default_version},mapping=>_coerce_mapping(\%mapping,[]),},$class}my%coderef_for=(set_addition=>\&_set_addition,uniq_map=>\&_uniq_map,identical=>\&_identical,improvize=>\&_improvize,);sub _coerce_mapping {my ($orig,$map_path)=@_;my%ret;for my$key (keys %{$orig}){my$value=$orig->{$key};if (ref($orig->{$key})eq 'CODE'){$ret{$key}=$value}elsif (ref($value)eq 'HASH'){my$mapping=_coerce_mapping($value,[@{$map_path},$key ]);$ret{$key}=sub {my ($left,$right,$path)=@_;return _merge($left,$right,$mapping,[@{$path}])}}elsif ($coderef_for{$value}){$ret{$key}=$coderef_for{$value}}else {croak "Don't know what to do with " .join '.',@{$map_path},$key}}return \%ret}sub merge {my ($self,@items)=@_;my$current={};for my$next (@items){if (blessed($next)&& $next->isa('CPAN::Meta')){$next=$next->as_struct}elsif (ref($next)eq 'HASH'){my$cmc=CPAN::Meta::Converter->new($next,default_version=>$self->{default_version});$next=$cmc->upgrade_fragment}else {croak "Don't know how to merge '$next'"}$current=_merge($current,$next,$self->{mapping},[])}return$current}1; +CPAN_META_MERGE + +$fatpacked{"CPAN/Meta/Prereqs.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META_PREREQS'; + use 5.006;use strict;use warnings;package CPAN::Meta::Prereqs;our$VERSION='2.150005';use Carp qw(confess);use Scalar::Util qw(blessed);use CPAN::Meta::Requirements 2.121;sub __legal_phases {qw(configure build test runtime develop)}sub __legal_types {qw(requires recommends suggests conflicts)}sub new {my ($class,$prereq_spec)=@_;$prereq_spec ||= {};my%is_legal_phase=map {;$_=>1}$class->__legal_phases;my%is_legal_type=map {;$_=>1}$class->__legal_types;my%guts;PHASE: for my$phase (keys %$prereq_spec){next PHASE unless$phase =~ /\Ax_/i or $is_legal_phase{$phase};my$phase_spec=$prereq_spec->{$phase };next PHASE unless keys %$phase_spec;TYPE: for my$type (keys %$phase_spec){next TYPE unless$type =~ /\Ax_/i or $is_legal_type{$type};my$spec=$phase_spec->{$type };next TYPE unless keys %$spec;$guts{prereqs}{$phase}{$type}=CPAN::Meta::Requirements->from_string_hash($spec)}}return bless \%guts=>$class}sub requirements_for {my ($self,$phase,$type)=@_;confess "requirements_for called without phase" unless defined$phase;confess "requirements_for called without type" unless defined$type;unless ($phase =~ /\Ax_/i or grep {$phase eq $_}$self->__legal_phases){confess "requested requirements for unknown phase: $phase"}unless ($type =~ /\Ax_/i or grep {$type eq $_}$self->__legal_types){confess "requested requirements for unknown type: $type"}my$req=($self->{prereqs}{$phase}{$type}||= CPAN::Meta::Requirements->new);$req->finalize if$self->is_finalized;return$req}sub with_merged_prereqs {my ($self,$other)=@_;my@other=blessed($other)? $other : @$other;my@prereq_objs=($self,@other);my%new_arg;for my$phase ($self->__legal_phases){for my$type ($self->__legal_types){my$req=CPAN::Meta::Requirements->new;for my$prereq (@prereq_objs){my$this_req=$prereq->requirements_for($phase,$type);next unless$this_req->required_modules;$req->add_requirements($this_req)}next unless$req->required_modules;$new_arg{$phase }{$type }=$req->as_string_hash}}return (ref$self)->new(\%new_arg)}sub merged_requirements {my ($self,$phases,$types)=@_;$phases=[qw/runtime build test/]unless defined$phases;$types=[qw/requires recommends/]unless defined$types;confess "merged_requirements phases argument must be an arrayref" unless ref$phases eq 'ARRAY';confess "merged_requirements types argument must be an arrayref" unless ref$types eq 'ARRAY';my$req=CPAN::Meta::Requirements->new;for my$phase (@$phases){unless ($phase =~ /\Ax_/i or grep {$phase eq $_}$self->__legal_phases){confess "requested requirements for unknown phase: $phase"}for my$type (@$types){unless ($type =~ /\Ax_/i or grep {$type eq $_}$self->__legal_types){confess "requested requirements for unknown type: $type"}$req->add_requirements($self->requirements_for($phase,$type))}}$req->finalize if$self->is_finalized;return$req}sub as_string_hash {my ($self)=@_;my%hash;for my$phase ($self->__legal_phases){for my$type ($self->__legal_types){my$req=$self->requirements_for($phase,$type);next unless$req->required_modules;$hash{$phase }{$type }=$req->as_string_hash}}return \%hash}sub is_finalized {$_[0]{finalized}}sub finalize {my ($self)=@_;$self->{finalized}=1;for my$phase (keys %{$self->{prereqs}}){$_->finalize for values %{$self->{prereqs}{$phase}}}}sub clone {my ($self)=@_;my$clone=(ref$self)->new($self->as_string_hash)}1; +CPAN_META_PREREQS + +$fatpacked{"CPAN/Meta/Requirements.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META_REQUIREMENTS'; + use strict;use warnings;package CPAN::Meta::Requirements;our$VERSION='2.133';use Carp ();BEGIN {eval "use version ()";if (my$err=$@){eval "use ExtUtils::MakeMaker::version" or die$err}}*_is_qv=version->can('is_qv')? sub {$_[0]->is_qv}: sub {exists $_[0]->{qv}};my$V0=version->new(0);my@valid_options=qw(bad_version_hook);sub new {my ($class,$options)=@_;$options ||= {};Carp::croak "Argument to $class\->new() must be a hash reference" unless ref$options eq 'HASH';my%self=map {;$_=>$options->{$_}}@valid_options;return bless \%self=>$class}sub _find_magic_vstring {my$value=shift;my$tvalue='';require B;my$sv=B::svref_2object(\$value);my$magic=ref($sv)eq 'B::PVMG' ? $sv->MAGIC : undef;while ($magic){if ($magic->TYPE eq 'V'){$tvalue=$magic->PTR;$tvalue =~ s/^v?(.+)$/v$1/;last}else {$magic=$magic->MOREMAGIC}}return$tvalue}sub _isa_version {UNIVERSAL::isa($_[0],'UNIVERSAL')&& $_[0]->isa('version')}sub _version_object {my ($self,$module,$version)=@_;my ($vobj,$err);if (not defined$version or (!ref($version)&& $version eq '0')){return$V0}elsif (ref($version)eq 'version' || _isa_version($version)){$vobj=$version}else {if ($INC{'version/vpp.pm'}|| $INC{'ExtUtils/MakeMaker/version/vpp.pm'}){my$magic=_find_magic_vstring($version);$version=$magic if length$magic}eval {local$SIG{__WARN__}=sub {die "Invalid version: $_[0]"};$vobj=version->new($version)};if (my$err=$@){my$hook=$self->{bad_version_hook};$vobj=eval {$hook->($version,$module)}if ref$hook eq 'CODE';unless (eval {$vobj->isa("version")}){$err =~ s{ at .* line \d+.*$}{};die "Can't convert '$version': $err"}}}if ($vobj =~ m{\A\.}){$vobj=version->new("0$vobj")}if (_is_qv($vobj)){$vobj=version->new($vobj->normal)}return$vobj}BEGIN {for my$type (qw(maximum exclusion exact_version)){my$method="with_$type";my$to_add=$type eq 'exact_version' ? $type : "add_$type";my$code=sub {my ($self,$name,$version)=@_;$version=$self->_version_object($name,$version);$self->__modify_entry_for($name,$method,$version);return$self};no strict 'refs';*$to_add=$code}}sub add_minimum {my ($self,$name,$version)=@_;if (not defined$version or "$version" eq '0'){return$self if$self->__entry_for($name);Carp::confess("can't add new requirements to finalized requirements")if$self->is_finalized;$self->{requirements}{$name }=CPAN::Meta::Requirements::_Range::Range->with_minimum($V0)}else {$version=$self->_version_object($name,$version);$self->__modify_entry_for($name,'with_minimum',$version)}return$self}sub add_requirements {my ($self,$req)=@_;for my$module ($req->required_modules){my$modifiers=$req->__entry_for($module)->as_modifiers;for my$modifier (@$modifiers){my ($method,@args)=@$modifier;$self->$method($module=>@args)}}return$self}sub accepts_module {my ($self,$module,$version)=@_;$version=$self->_version_object($module,$version);return 1 unless my$range=$self->__entry_for($module);return$range->_accepts($version)}sub clear_requirement {my ($self,$module)=@_;return$self unless$self->__entry_for($module);Carp::confess("can't clear requirements on finalized requirements")if$self->is_finalized;delete$self->{requirements}{$module };return$self}sub requirements_for_module {my ($self,$module)=@_;my$entry=$self->__entry_for($module);return unless$entry;return$entry->as_string}sub required_modules {keys %{$_[0]{requirements}}}sub clone {my ($self)=@_;my$new=(ref$self)->new;return$new->add_requirements($self)}sub __entry_for {$_[0]{requirements}{$_[1]}}sub __modify_entry_for {my ($self,$name,$method,$version)=@_;my$fin=$self->is_finalized;my$old=$self->__entry_for($name);Carp::confess("can't add new requirements to finalized requirements")if$fin and not $old;my$new=($old || 'CPAN::Meta::Requirements::_Range::Range')->$method($version);Carp::confess("can't modify finalized requirements")if$fin and $old->as_string ne $new->as_string;$self->{requirements}{$name }=$new}sub is_simple {my ($self)=@_;for my$module ($self->required_modules){return if$self->__entry_for($module)->as_string =~ /\s/}return 1}sub is_finalized {$_[0]{finalized}}sub finalize {$_[0]{finalized}=1}sub as_string_hash {my ($self)=@_;my%hash=map {;$_=>$self->{requirements}{$_}->as_string}$self->required_modules;return \%hash}my%methods_for_op=('=='=>[qw(exact_version) ],'!='=>[qw(add_exclusion) ],'>='=>[qw(add_minimum) ],'<='=>[qw(add_maximum) ],'>'=>[qw(add_minimum add_exclusion) ],'<'=>[qw(add_maximum add_exclusion) ],);sub add_string_requirement {my ($self,$module,$req)=@_;unless (defined$req && length$req){$req=0;$self->_blank_carp($module)}my$magic=_find_magic_vstring($req);if (length$magic){$self->add_minimum($module=>$magic);return}my@parts=split qr{\s*,\s*},$req;for my$part (@parts){my ($op,$ver)=$part =~ m{\A\s*(==|>=|>|<=|<|!=)\s*(.*)\z};if (!defined$op){$self->add_minimum($module=>$part)}else {Carp::confess("illegal requirement string: $req")unless my$methods=$methods_for_op{$op };$self->$_($module=>$ver)for @$methods}}}sub _blank_carp {my ($self,$module)=@_;Carp::carp("Undefined requirement for $module treated as '0'")}sub from_string_hash {my ($class,$hash,$options)=@_;my$self=$class->new($options);for my$module (keys %$hash){my$req=$hash->{$module};unless (defined$req && length$req){$req=0;$class->_blank_carp($module)}$self->add_string_requirement($module,$req)}return$self}{package CPAN::Meta::Requirements::_Range::Exact;sub _new {bless {version=>$_[1]}=>$_[0]}sub _accepts {return $_[0]{version}==$_[1]}sub as_string {return "== $_[0]{version}"}sub as_modifiers {return [[exact_version=>$_[0]{version}]]}sub _clone {(ref $_[0])->_new(version->new($_[0]{version}))}sub with_exact_version {my ($self,$version)=@_;return$self->_clone if$self->_accepts($version);Carp::confess("illegal requirements: unequal exact version specified")}sub with_minimum {my ($self,$minimum)=@_;return$self->_clone if$self->{version}>= $minimum;Carp::confess("illegal requirements: minimum above exact specification")}sub with_maximum {my ($self,$maximum)=@_;return$self->_clone if$self->{version}<= $maximum;Carp::confess("illegal requirements: maximum below exact specification")}sub with_exclusion {my ($self,$exclusion)=@_;return$self->_clone unless$exclusion==$self->{version};Carp::confess("illegal requirements: excluded exact specification")}}{package CPAN::Meta::Requirements::_Range::Range;sub _self {ref($_[0])? $_[0]: (bless {}=>$_[0])}sub _clone {return (bless {}=>$_[0])unless ref $_[0];my ($s)=@_;my%guts=((exists$s->{minimum}? (minimum=>version->new($s->{minimum})): ()),(exists$s->{maximum}? (maximum=>version->new($s->{maximum})): ()),(exists$s->{exclusions}? (exclusions=>[map {version->new($_)}@{$s->{exclusions}}]): ()),);bless \%guts=>ref($s)}sub as_modifiers {my ($self)=@_;my@mods;push@mods,[add_minimum=>$self->{minimum}]if exists$self->{minimum};push@mods,[add_maximum=>$self->{maximum}]if exists$self->{maximum};push@mods,map {;[add_exclusion=>$_ ]}@{$self->{exclusions}|| []};return \@mods}sub as_string {my ($self)=@_;return 0 if!keys %$self;return "$self->{minimum}" if (keys %$self)==1 and exists$self->{minimum};my@exclusions=@{$self->{exclusions}|| []};my@parts;for my$pair ([qw(>= > minimum) ],[qw(<= < maximum) ],){my ($op,$e_op,$k)=@$pair;if (exists$self->{$k}){my@new_exclusions=grep {$_!=$self->{$k }}@exclusions;if (@new_exclusions==@exclusions){push@parts,"$op $self->{ $k }"}else {push@parts,"$e_op $self->{ $k }";@exclusions=@new_exclusions}}}push@parts,map {;"!= $_"}@exclusions;return join q{, },@parts}sub with_exact_version {my ($self,$version)=@_;$self=$self->_clone;Carp::confess("illegal requirements: exact specification outside of range")unless$self->_accepts($version);return CPAN::Meta::Requirements::_Range::Exact->_new($version)}sub _simplify {my ($self)=@_;if (defined$self->{minimum}and defined$self->{maximum}){if ($self->{minimum}==$self->{maximum}){Carp::confess("illegal requirements: excluded all values")if grep {$_==$self->{minimum}}@{$self->{exclusions}|| []};return CPAN::Meta::Requirements::_Range::Exact->_new($self->{minimum})}Carp::confess("illegal requirements: minimum exceeds maximum")if$self->{minimum}> $self->{maximum}}if ($self->{exclusions}){my%seen;@{$self->{exclusions}}=grep {(!defined$self->{minimum}or $_ >= $self->{minimum})and (!defined$self->{maximum}or $_ <= $self->{maximum})and !$seen{$_}++}@{$self->{exclusions}}}return$self}sub with_minimum {my ($self,$minimum)=@_;$self=$self->_clone;if (defined (my$old_min=$self->{minimum})){$self->{minimum}=(sort {$b cmp $a}($minimum,$old_min))[0]}else {$self->{minimum}=$minimum}return$self->_simplify}sub with_maximum {my ($self,$maximum)=@_;$self=$self->_clone;if (defined (my$old_max=$self->{maximum})){$self->{maximum}=(sort {$a cmp $b}($maximum,$old_max))[0]}else {$self->{maximum}=$maximum}return$self->_simplify}sub with_exclusion {my ($self,$exclusion)=@_;$self=$self->_clone;push @{$self->{exclusions}||= []},$exclusion;return$self->_simplify}sub _accepts {my ($self,$version)=@_;return if defined$self->{minimum}and $version < $self->{minimum};return if defined$self->{maximum}and $version > $self->{maximum};return if defined$self->{exclusions}and grep {$version==$_}@{$self->{exclusions}};return 1}}1; +CPAN_META_REQUIREMENTS + +$fatpacked{"CPAN/Meta/Spec.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META_SPEC'; + use 5.006;use strict;use warnings;package CPAN::Meta::Spec;our$VERSION='2.150005';1; +CPAN_META_SPEC + +$fatpacked{"CPAN/Meta/Validator.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META_VALIDATOR'; + use 5.006;use strict;use warnings;package CPAN::Meta::Validator;our$VERSION='2.150005';my%known_specs=('1.4'=>'http://module-build.sourceforge.net/META-spec-v1.4.html','1.3'=>'http://module-build.sourceforge.net/META-spec-v1.3.html','1.2'=>'http://module-build.sourceforge.net/META-spec-v1.2.html','1.1'=>'http://module-build.sourceforge.net/META-spec-v1.1.html','1.0'=>'http://module-build.sourceforge.net/META-spec-v1.0.html');my%known_urls=map {$known_specs{$_}=>$_}keys%known_specs;my$module_map1={'map'=>{':key'=>{name=>\&module,value=>\&exversion }}};my$module_map2={'map'=>{':key'=>{name=>\&module,value=>\&version }}};my$no_index_2={'map'=>{file=>{list=>{value=>\&string }},directory=>{list=>{value=>\&string }},'package'=>{list=>{value=>\&string }},namespace=>{list=>{value=>\&string }},':key'=>{name=>\&custom_2,value=>\&anything },}};my$no_index_1_3={'map'=>{file=>{list=>{value=>\&string }},directory=>{list=>{value=>\&string }},'package'=>{list=>{value=>\&string }},namespace=>{list=>{value=>\&string }},':key'=>{name=>\&string,value=>\&anything },}};my$no_index_1_2={'map'=>{file=>{list=>{value=>\&string }},dir=>{list=>{value=>\&string }},'package'=>{list=>{value=>\&string }},namespace=>{list=>{value=>\&string }},':key'=>{name=>\&string,value=>\&anything },}};my$no_index_1_1={'map'=>{':key'=>{name=>\&string,list=>{value=>\&string }},}};my$prereq_map={map=>{':key'=>{name=>\&phase,'map'=>{':key'=>{name=>\&relation,%$module_map1,},},}},};my%definitions=('2'=>{'abstract'=>{mandatory=>1,value=>\&string },'author'=>{mandatory=>1,list=>{value=>\&string }},'dynamic_config'=>{mandatory=>1,value=>\&boolean },'generated_by'=>{mandatory=>1,value=>\&string },'license'=>{mandatory=>1,list=>{value=>\&license }},'meta-spec'=>{mandatory=>1,'map'=>{version=>{mandatory=>1,value=>\&version},url=>{value=>\&url },':key'=>{name=>\&custom_2,value=>\&anything },}},'name'=>{mandatory=>1,value=>\&string },'release_status'=>{mandatory=>1,value=>\&release_status },'version'=>{mandatory=>1,value=>\&version },'description'=>{value=>\&string },'keywords'=>{list=>{value=>\&string }},'no_index'=>$no_index_2,'optional_features'=>{'map'=>{':key'=>{name=>\&string,'map'=>{description=>{value=>\&string },prereqs=>$prereq_map,':key'=>{name=>\&custom_2,value=>\&anything },}}}},'prereqs'=>$prereq_map,'provides'=>{'map'=>{':key'=>{name=>\&module,'map'=>{file=>{mandatory=>1,value=>\&file },version=>{value=>\&version },':key'=>{name=>\&custom_2,value=>\&anything },}}}},'resources'=>{'map'=>{license=>{list=>{value=>\&url }},homepage=>{value=>\&url },bugtracker=>{'map'=>{web=>{value=>\&url },mailto=>{value=>\&string},':key'=>{name=>\&custom_2,value=>\&anything },}},repository=>{'map'=>{web=>{value=>\&url },url=>{value=>\&url },type=>{value=>\&string },':key'=>{name=>\&custom_2,value=>\&anything },}},':key'=>{value=>\&string,name=>\&custom_2 },}},':key'=>{name=>\&custom_2,value=>\&anything },},'1.4'=>{'meta-spec'=>{mandatory=>1,'map'=>{version=>{mandatory=>1,value=>\&version},url=>{mandatory=>1,value=>\&urlspec },':key'=>{name=>\&string,value=>\&anything },},},'name'=>{mandatory=>1,value=>\&string },'version'=>{mandatory=>1,value=>\&version },'abstract'=>{mandatory=>1,value=>\&string },'author'=>{mandatory=>1,list=>{value=>\&string }},'license'=>{mandatory=>1,value=>\&license },'generated_by'=>{mandatory=>1,value=>\&string },'distribution_type'=>{value=>\&string },'dynamic_config'=>{value=>\&boolean },'requires'=>$module_map1,'recommends'=>$module_map1,'build_requires'=>$module_map1,'configure_requires'=>$module_map1,'conflicts'=>$module_map2,'optional_features'=>{'map'=>{':key'=>{name=>\&string,'map'=>{description=>{value=>\&string },requires=>$module_map1,recommends=>$module_map1,build_requires=>$module_map1,conflicts=>$module_map2,':key'=>{name=>\&string,value=>\&anything },}}}},'provides'=>{'map'=>{':key'=>{name=>\&module,'map'=>{file=>{mandatory=>1,value=>\&file },version=>{value=>\&version },':key'=>{name=>\&string,value=>\&anything },}}}},'no_index'=>$no_index_1_3,'private'=>$no_index_1_3,'keywords'=>{list=>{value=>\&string }},'resources'=>{'map'=>{license=>{value=>\&url },homepage=>{value=>\&url },bugtracker=>{value=>\&url },repository=>{value=>\&url },':key'=>{value=>\&string,name=>\&custom_1 },}},':key'=>{name=>\&string,value=>\&anything },},'1.3'=>{'meta-spec'=>{mandatory=>1,'map'=>{version=>{mandatory=>1,value=>\&version},url=>{mandatory=>1,value=>\&urlspec },':key'=>{name=>\&string,value=>\&anything },},},'name'=>{mandatory=>1,value=>\&string },'version'=>{mandatory=>1,value=>\&version },'abstract'=>{mandatory=>1,value=>\&string },'author'=>{mandatory=>1,list=>{value=>\&string }},'license'=>{mandatory=>1,value=>\&license },'generated_by'=>{mandatory=>1,value=>\&string },'distribution_type'=>{value=>\&string },'dynamic_config'=>{value=>\&boolean },'requires'=>$module_map1,'recommends'=>$module_map1,'build_requires'=>$module_map1,'conflicts'=>$module_map2,'optional_features'=>{'map'=>{':key'=>{name=>\&string,'map'=>{description=>{value=>\&string },requires=>$module_map1,recommends=>$module_map1,build_requires=>$module_map1,conflicts=>$module_map2,':key'=>{name=>\&string,value=>\&anything },}}}},'provides'=>{'map'=>{':key'=>{name=>\&module,'map'=>{file=>{mandatory=>1,value=>\&file },version=>{value=>\&version },':key'=>{name=>\&string,value=>\&anything },}}}},'no_index'=>$no_index_1_3,'private'=>$no_index_1_3,'keywords'=>{list=>{value=>\&string }},'resources'=>{'map'=>{license=>{value=>\&url },homepage=>{value=>\&url },bugtracker=>{value=>\&url },repository=>{value=>\&url },':key'=>{value=>\&string,name=>\&custom_1 },}},':key'=>{name=>\&string,value=>\&anything },},'1.2'=>{'meta-spec'=>{mandatory=>1,'map'=>{version=>{mandatory=>1,value=>\&version},url=>{mandatory=>1,value=>\&urlspec },':key'=>{name=>\&string,value=>\&anything },},},'name'=>{mandatory=>1,value=>\&string },'version'=>{mandatory=>1,value=>\&version },'license'=>{mandatory=>1,value=>\&license },'generated_by'=>{mandatory=>1,value=>\&string },'author'=>{mandatory=>1,list=>{value=>\&string }},'abstract'=>{mandatory=>1,value=>\&string },'distribution_type'=>{value=>\&string },'dynamic_config'=>{value=>\&boolean },'keywords'=>{list=>{value=>\&string }},'private'=>$no_index_1_2,'$no_index'=>$no_index_1_2,'requires'=>$module_map1,'recommends'=>$module_map1,'build_requires'=>$module_map1,'conflicts'=>$module_map2,'optional_features'=>{'map'=>{':key'=>{name=>\&string,'map'=>{description=>{value=>\&string },requires=>$module_map1,recommends=>$module_map1,build_requires=>$module_map1,conflicts=>$module_map2,':key'=>{name=>\&string,value=>\&anything },}}}},'provides'=>{'map'=>{':key'=>{name=>\&module,'map'=>{file=>{mandatory=>1,value=>\&file },version=>{value=>\&version },':key'=>{name=>\&string,value=>\&anything },}}}},'resources'=>{'map'=>{license=>{value=>\&url },homepage=>{value=>\&url },bugtracker=>{value=>\&url },repository=>{value=>\&url },':key'=>{value=>\&string,name=>\&custom_1 },}},':key'=>{name=>\&string,value=>\&anything },},'1.1'=>{'name'=>{value=>\&string },'version'=>{mandatory=>1,value=>\&version },'license'=>{value=>\&license },'generated_by'=>{value=>\&string },'license_uri'=>{value=>\&url },'distribution_type'=>{value=>\&string },'dynamic_config'=>{value=>\&boolean },'private'=>$no_index_1_1,'requires'=>$module_map1,'recommends'=>$module_map1,'build_requires'=>$module_map1,'conflicts'=>$module_map2,':key'=>{name=>\&string,value=>\&anything },},'1.0'=>{'name'=>{value=>\&string },'version'=>{mandatory=>1,value=>\&version },'license'=>{value=>\&license },'generated_by'=>{value=>\&string },'license_uri'=>{value=>\&url },'distribution_type'=>{value=>\&string },'dynamic_config'=>{value=>\&boolean },'requires'=>$module_map1,'recommends'=>$module_map1,'build_requires'=>$module_map1,'conflicts'=>$module_map2,':key'=>{name=>\&string,value=>\&anything },},);sub new {my ($class,$data)=@_;my$self={'data'=>$data,'spec'=>eval {$data->{'meta-spec'}{'version'}}|| "1.0",'errors'=>undef,};return bless$self,$class}sub is_valid {my$self=shift;my$data=$self->{data};my$spec_version=$self->{spec};$self->check_map($definitions{$spec_version},$data);return!$self->errors}sub errors {my$self=shift;return ()unless(defined$self->{errors});return @{$self->{errors}}}my$spec_error="Missing validation action in specification. " ."Must be one of 'map', 'list', or 'value'";sub check_map {my ($self,$spec,$data)=@_;if(ref($spec)ne 'HASH'){$self->_error("Unknown META specification, cannot validate.");return}if(ref($data)ne 'HASH'){$self->_error("Expected a map structure from string or file.");return}for my$key (keys %$spec){next unless($spec->{$key}->{mandatory});next if(defined$data->{$key});push @{$self->{stack}},$key;$self->_error("Missing mandatory field, '$key'");pop @{$self->{stack}}}for my$key (keys %$data){push @{$self->{stack}},$key;if($spec->{$key}){if($spec->{$key}{value}){$spec->{$key}{value}->($self,$key,$data->{$key})}elsif($spec->{$key}{'map'}){$self->check_map($spec->{$key}{'map'},$data->{$key})}elsif($spec->{$key}{'list'}){$self->check_list($spec->{$key}{'list'},$data->{$key})}else {$self->_error("$spec_error for '$key'")}}elsif ($spec->{':key'}){$spec->{':key'}{name}->($self,$key,$key);if($spec->{':key'}{value}){$spec->{':key'}{value}->($self,$key,$data->{$key})}elsif($spec->{':key'}{'map'}){$self->check_map($spec->{':key'}{'map'},$data->{$key})}elsif($spec->{':key'}{'list'}){$self->check_list($spec->{':key'}{'list'},$data->{$key})}else {$self->_error("$spec_error for ':key'")}}else {$self->_error("Unknown key, '$key', found in map structure")}pop @{$self->{stack}}}}sub check_list {my ($self,$spec,$data)=@_;if(ref($data)ne 'ARRAY'){$self->_error("Expected a list structure");return}if(defined$spec->{mandatory}){if(!defined$data->[0]){$self->_error("Missing entries from mandatory list")}}for my$value (@$data){push @{$self->{stack}},$value || "";if(defined$spec->{value}){$spec->{value}->($self,'list',$value)}elsif(defined$spec->{'map'}){$self->check_map($spec->{'map'},$value)}elsif(defined$spec->{'list'}){$self->check_list($spec->{'list'},$value)}elsif ($spec->{':key'}){$self->check_map($spec,$value)}else {$self->_error("$spec_error associated with '$self->{stack}[-2]'")}pop @{$self->{stack}}}}sub header {my ($self,$key,$value)=@_;if(defined$value){return 1 if($value && $value =~ /^--- #YAML:1.0/)}$self->_error("file does not have a valid YAML header.");return 0}sub release_status {my ($self,$key,$value)=@_;if(defined$value){my$version=$self->{data}{version}|| '';if ($version =~ /_/){return 1 if ($value =~ /\A(?:testing|unstable)\z/);$self->_error("'$value' for '$key' is invalid for version '$version'")}else {return 1 if ($value =~ /\A(?:stable|testing|unstable)\z/);$self->_error("'$value' for '$key' is invalid")}}else {$self->_error("'$key' is not defined")}return 0}sub _uri_split {return $_[0]=~ m,(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?,}sub url {my ($self,$key,$value)=@_;if(defined$value){my ($scheme,$auth,$path,$query,$frag)=_uri_split($value);unless (defined$scheme && length$scheme){$self->_error("'$value' for '$key' does not have a URL scheme");return 0}unless (defined$auth && length$auth){$self->_error("'$value' for '$key' does not have a URL authority");return 0}return 1}$value ||= '';$self->_error("'$value' for '$key' is not a valid URL.");return 0}sub urlspec {my ($self,$key,$value)=@_;if(defined$value){return 1 if($value && $known_specs{$self->{spec}}eq $value);if($value && $known_urls{$value}){$self->_error('META specification URL does not match version');return 0}}$self->_error('Unknown META specification');return 0}sub anything {return 1}sub string {my ($self,$key,$value)=@_;if(defined$value){return 1 if($value || $value =~ /^0$/)}$self->_error("value is an undefined string");return 0}sub string_or_undef {my ($self,$key,$value)=@_;return 1 unless(defined$value);return 1 if($value || $value =~ /^0$/);$self->_error("No string defined for '$key'");return 0}sub file {my ($self,$key,$value)=@_;return 1 if(defined$value);$self->_error("No file defined for '$key'");return 0}sub exversion {my ($self,$key,$value)=@_;if(defined$value && ($value || $value =~ /0/)){my$pass=1;for(split(",",$value)){$self->version($key,$_)or ($pass=0)}return$pass}$value='' unless(defined$value);$self->_error("'$value' for '$key' is not a valid version.");return 0}sub version {my ($self,$key,$value)=@_;if(defined$value){return 0 unless($value || $value =~ /0/);return 1 if($value =~ /^\s*((<|<=|>=|>|!=|==)\s*)?v?\d+((\.\d+((_|\.)\d+)?)?)/)}else {$value=''}$self->_error("'$value' for '$key' is not a valid version.");return 0}sub boolean {my ($self,$key,$value)=@_;if(defined$value){return 1 if($value =~ /^(0|1|true|false)$/)}else {$value=''}$self->_error("'$value' for '$key' is not a boolean value.");return 0}my%v1_licenses=('perl'=>'http://dev.perl.org/licenses/','gpl'=>'http://www.opensource.org/licenses/gpl-license.php','apache'=>'http://apache.org/licenses/LICENSE-2.0','artistic'=>'http://opensource.org/licenses/artistic-license.php','artistic_2'=>'http://opensource.org/licenses/artistic-license-2.0.php','lgpl'=>'http://www.opensource.org/licenses/lgpl-license.php','bsd'=>'http://www.opensource.org/licenses/bsd-license.php','gpl'=>'http://www.opensource.org/licenses/gpl-license.php','mit'=>'http://opensource.org/licenses/mit-license.php','mozilla'=>'http://opensource.org/licenses/mozilla1.1.php','open_source'=>undef,'unrestricted'=>undef,'restrictive'=>undef,'unknown'=>undef,);my%v2_licenses=map {$_=>1}qw(agpl_3 apache_1_1 apache_2_0 artistic_1 artistic_2 bsd freebsd gfdl_1_2 gfdl_1_3 gpl_1 gpl_2 gpl_3 lgpl_2_1 lgpl_3_0 mit mozilla_1_0 mozilla_1_1 openssl perl_5 qpl_1_0 ssleay sun zlib open_source restricted unrestricted unknown);sub license {my ($self,$key,$value)=@_;my$licenses=$self->{spec}< 2 ? \%v1_licenses : \%v2_licenses;if(defined$value){return 1 if($value && exists$licenses->{$value})}else {$value=''}$self->_error("License '$value' is invalid");return 0}sub custom_1 {my ($self,$key)=@_;if(defined$key){return 1 if($key && $key =~ /^[_a-z]+$/i && $key =~ /[A-Z]/)}else {$key=''}$self->_error("Custom resource '$key' must be in CamelCase.");return 0}sub custom_2 {my ($self,$key)=@_;if(defined$key){return 1 if($key && $key =~ /^x_/i)}else {$key=''}$self->_error("Custom key '$key' must begin with 'x_' or 'X_'.");return 0}sub identifier {my ($self,$key)=@_;if(defined$key){return 1 if($key && $key =~ /^([a-z][_a-z]+)$/i)}else {$key=''}$self->_error("Key '$key' is not a legal identifier.");return 0}sub module {my ($self,$key)=@_;if(defined$key){return 1 if($key && $key =~ /^[A-Za-z0-9_]+(::[A-Za-z0-9_]+)*$/)}else {$key=''}$self->_error("Key '$key' is not a legal module name.");return 0}my@valid_phases=qw/configure build test runtime develop/;sub phase {my ($self,$key)=@_;if(defined$key){return 1 if(length$key && grep {$key eq $_}@valid_phases);return 1 if$key =~ /x_/i}else {$key=''}$self->_error("Key '$key' is not a legal phase.");return 0}my@valid_relations=qw/requires recommends suggests conflicts/;sub relation {my ($self,$key)=@_;if(defined$key){return 1 if(length$key && grep {$key eq $_}@valid_relations);return 1 if$key =~ /x_/i}else {$key=''}$self->_error("Key '$key' is not a legal prereq relationship.");return 0}sub _error {my$self=shift;my$mess=shift;$mess .= ' ('.join(' -> ',@{$self->{stack}}).')' if($self->{stack});$mess .= " [Validation: $self->{spec}]";push @{$self->{errors}},$mess}1; +CPAN_META_VALIDATOR + +$fatpacked{"CPAN/Meta/YAML.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META_YAML'; + use 5.008001;use strict;use warnings;package CPAN::Meta::YAML;$CPAN::Meta::YAML::VERSION='0.016';;use Exporter;our@ISA=qw{Exporter};our@EXPORT=qw{Load Dump};our@EXPORT_OK=qw{LoadFile DumpFile freeze thaw};sub Dump {return CPAN::Meta::YAML->new(@_)->_dump_string}sub Load {my$self=CPAN::Meta::YAML->_load_string(@_);if (wantarray){return @$self}else {return$self->[-1]}}BEGIN {*freeze=\&Dump;*thaw=\&Load}sub DumpFile {my$file=shift;return CPAN::Meta::YAML->new(@_)->_dump_file($file)}sub LoadFile {my$file=shift;my$self=CPAN::Meta::YAML->_load_file($file);if (wantarray){return @$self}else {return$self->[-1]}}sub new {my$class=shift;bless [@_ ],$class}sub read_string {my$self=shift;$self->_load_string(@_)}sub write_string {my$self=shift;$self->_dump_string(@_)}sub read {my$self=shift;$self->_load_file(@_)}sub write {my$self=shift;$self->_dump_file(@_)}my@UNPRINTABLE=qw(0 x01 x02 x03 x04 x05 x06 a b t n v f r x0E x0F x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x1A e x1C x1D x1E x1F);my%UNESCAPES=(0=>"\x00",z=>"\x00",N=>"\x85",a=>"\x07",b=>"\x08",t=>"\x09",n=>"\x0a",v=>"\x0b",f=>"\x0c",r=>"\x0d",e=>"\x1b",'\\'=>'\\',);my%QUOTE=map {$_=>1}qw{null true false};my$re_capture_double_quoted=qr/\"([^\\"]*(?:\\.[^\\"]*)*)\"/;my$re_capture_single_quoted=qr/\'([^\']*(?:\'\'[^\']*)*)\'/;my$re_capture_unquoted_key=qr/([^:]+(?::+\S(?:[^:]*|.*?(?=:)))*)(?=\s*\:(?:\s+|$))/;my$re_trailing_comment=qr/(?:\s+\#.*)?/;my$re_key_value_separator=qr/\s*:(?:\s+(?:\#.*)?|$)/;sub _load_file {my$class=ref $_[0]? ref shift : shift;my$file=shift or $class->_error('You did not specify a file name');$class->_error("File '$file' does not exist")unless -e $file;$class->_error("'$file' is a directory, not a file")unless -f _;$class->_error("Insufficient permissions to read '$file'")unless -r _;open(my$fh,"<:unix:encoding(UTF-8)",$file);unless ($fh){$class->_error("Failed to open file '$file': $!")}if (_can_flock()){flock($fh,Fcntl::LOCK_SH())or warn "Couldn't lock '$file' for reading: $!"}my$contents=eval {use warnings FATAL=>'utf8';local $/;<$fh>};if (my$err=$@){$class->_error("Error reading from file '$file': $err")}unless (close$fh){$class->_error("Failed to close file '$file': $!")}$class->_load_string($contents)}sub _load_string {my$class=ref $_[0]? ref shift : shift;my$self=bless [],$class;my$string=$_[0];eval {unless (defined$string){die \"Did not provide a string to load"}if (utf8::is_utf8($string)&&!utf8::valid($string)){die \<<'...'}utf8::upgrade($string);$string =~ s/^\x{FEFF}//;return$self unless length$string;my@lines=grep {!/^\s*(?:\#.*)?\z/}split /(?:\015{1,2}\012|\015|\012)/,$string;@lines and $lines[0]=~ /^\%YAML[: ][\d\.]+.*\z/ and shift@lines;my$in_document=0;while (@lines){if ($lines[0]=~ /^---\s*(?:(.+)\s*)?\z/){shift@lines;if (defined $1 and $1 !~ /^(?:\#.+|\%YAML[: ][\d\.]+)\z/){push @$self,$self->_load_scalar("$1",[undef ],\@lines);next}$in_document=1}if (!@lines or $lines[0]=~ /^(?:---|\.\.\.)/){push @$self,undef;while (@lines and $lines[0]!~ /^---/){shift@lines}$in_document=0}elsif (!$in_document && @$self){die \"CPAN::Meta::YAML failed to classify the line '$lines[0]'"}elsif ($lines[0]=~ /^\s*\-(?:\s|$|-+$)/){my$document=[];push @$self,$document;$self->_load_array($document,[0 ],\@lines)}elsif ($lines[0]=~ /^(\s*)\S/){my$document={};push @$self,$document;$self->_load_hash($document,[length($1)],\@lines)}else {die \"CPAN::Meta::YAML failed to classify the line '$lines[0]'"}}};my$err=$@;if (ref$err eq 'SCALAR'){$self->_error(${$err})}elsif ($err){$self->_error($err)}return$self}sub _unquote_single {my ($self,$string)=@_;return '' unless length$string;$string =~ s/\'\'/\'/g;return$string}sub _unquote_double {my ($self,$string)=@_;return '' unless length$string;$string =~ s/\\"/"/g;$string =~ s{\\([Nnever\\fartz0b]|x([0-9a-fA-F]{2}))} + Read an invalid UTF-8 string (maybe mixed UTF-8 and 8-bit character set). + Did you decode with lax ":utf8" instead of strict ":encoding(UTF-8)"? + ... + {(length($1)>1)?pack("H2",$2):$UNESCAPES{$1}}gex;return$string}sub _load_scalar {my ($self,$string,$indent,$lines)=@_;$string =~ s/\s*\z//;return undef if$string eq '~';if ($string =~ /^$re_capture_single_quoted$re_trailing_comment\z/){return$self->_unquote_single($1)}if ($string =~ /^$re_capture_double_quoted$re_trailing_comment\z/){return$self->_unquote_double($1)}if ($string =~ /^[\'\"!&]/){die \"CPAN::Meta::YAML does not support a feature in line '$string'"}return {}if$string =~ /^{}(?:\s+\#.*)?\z/;return []if$string =~ /^\[\](?:\s+\#.*)?\z/;if ($string !~ /^[>|]/){die \"CPAN::Meta::YAML found illegal characters in plain scalar: '$string'" if$string =~ /^(?:-(?:\s|$)|[\@\%\`])/ or $string =~ /:(?:\s|$)/;$string =~ s/\s+#.*\z//;return$string}die \"CPAN::Meta::YAML failed to find multi-line scalar content" unless @$lines;$lines->[0]=~ /^(\s*)/;$indent->[-1]=length("$1");if (defined$indent->[-2]and $indent->[-1]<= $indent->[-2]){die \"CPAN::Meta::YAML found bad indenting in line '$lines->[0]'"}my@multiline=();while (@$lines){$lines->[0]=~ /^(\s*)/;last unless length($1)>= $indent->[-1];push@multiline,substr(shift(@$lines),length($1))}my$j=(substr($string,0,1)eq '>')? ' ' : "\n";my$t=(substr($string,1,1)eq '-')? '' : "\n";return join($j,@multiline).$t}sub _load_array {my ($self,$array,$indent,$lines)=@_;while (@$lines){if ($lines->[0]=~ /^(?:---|\.\.\.)/){while (@$lines and $lines->[0]!~ /^---/){shift @$lines}return 1}$lines->[0]=~ /^(\s*)/;if (length($1)< $indent->[-1]){return 1}elsif (length($1)> $indent->[-1]){die \"CPAN::Meta::YAML found bad indenting in line '$lines->[0]'"}if ($lines->[0]=~ /^(\s*\-\s+)[^\'\"]\S*\s*:(?:\s+|$)/){my$indent2=length("$1");$lines->[0]=~ s/-/ /;push @$array,{};$self->_load_hash($array->[-1],[@$indent,$indent2 ],$lines)}elsif ($lines->[0]=~ /^\s*\-\s*\z/){shift @$lines;unless (@$lines){push @$array,undef;return 1}if ($lines->[0]=~ /^(\s*)\-/){my$indent2=length("$1");if ($indent->[-1]==$indent2){push @$array,undef}else {push @$array,[];$self->_load_array($array->[-1],[@$indent,$indent2 ],$lines)}}elsif ($lines->[0]=~ /^(\s*)\S/){push @$array,{};$self->_load_hash($array->[-1],[@$indent,length("$1")],$lines)}else {die \"CPAN::Meta::YAML failed to classify line '$lines->[0]'"}}elsif ($lines->[0]=~ /^\s*\-(\s*)(.+?)\s*\z/){shift @$lines;push @$array,$self->_load_scalar("$2",[@$indent,undef ],$lines)}elsif (defined$indent->[-2]and $indent->[-1]==$indent->[-2]){return 1}else {die \"CPAN::Meta::YAML failed to classify line '$lines->[0]'"}}return 1}sub _load_hash {my ($self,$hash,$indent,$lines)=@_;while (@$lines){if ($lines->[0]=~ /^(?:---|\.\.\.)/){while (@$lines and $lines->[0]!~ /^---/){shift @$lines}return 1}$lines->[0]=~ /^(\s*)/;if (length($1)< $indent->[-1]){return 1}elsif (length($1)> $indent->[-1]){die \"CPAN::Meta::YAML found bad indenting in line '$lines->[0]'"}my$key;if ($lines->[0]=~ s/^\s*$re_capture_single_quoted$re_key_value_separator//){$key=$self->_unquote_single($1)}elsif ($lines->[0]=~ s/^\s*$re_capture_double_quoted$re_key_value_separator//){$key=$self->_unquote_double($1)}elsif ($lines->[0]=~ s/^\s*$re_capture_unquoted_key$re_key_value_separator//){$key=$1;$key =~ s/\s+$//}elsif ($lines->[0]=~ /^\s*\?/){die \"CPAN::Meta::YAML does not support a feature in line '$lines->[0]'"}else {die \"CPAN::Meta::YAML failed to classify line '$lines->[0]'"}if (exists$hash->{$key}){warn "CPAN::Meta::YAML found a duplicate key '$key' in line '$lines->[0]'"}if (length$lines->[0]){$hash->{$key}=$self->_load_scalar(shift(@$lines),[@$indent,undef ],$lines)}else {shift @$lines;unless (@$lines){$hash->{$key}=undef;return 1}if ($lines->[0]=~ /^(\s*)-/){$hash->{$key}=[];$self->_load_array($hash->{$key},[@$indent,length($1)],$lines)}elsif ($lines->[0]=~ /^(\s*)./){my$indent2=length("$1");if ($indent->[-1]>= $indent2){$hash->{$key}=undef}else {$hash->{$key}={};$self->_load_hash($hash->{$key},[@$indent,length($1)],$lines)}}}}return 1}sub _dump_file {my$self=shift;require Fcntl;my$file=shift or $self->_error('You did not specify a file name');my$fh;if (_can_flock()){my$flags=Fcntl::O_WRONLY()|Fcntl::O_CREAT();sysopen($fh,$file,$flags);unless ($fh){$self->_error("Failed to open file '$file' for writing: $!")}binmode($fh,":raw:encoding(UTF-8)");flock($fh,Fcntl::LOCK_EX())or warn "Couldn't lock '$file' for reading: $!";truncate$fh,0;seek$fh,0,0}else {open$fh,">:unix:encoding(UTF-8)",$file}print {$fh}$self->_dump_string;unless (close$fh){$self->_error("Failed to close file '$file': $!")}return 1}sub _dump_string {my$self=shift;return '' unless ref$self && @$self;my$indent=0;my@lines=();eval {for my$cursor (@$self){push@lines,'---';if (!defined$cursor){}elsif (!ref$cursor){$lines[-1].= ' ' .$self->_dump_scalar($cursor)}elsif (ref$cursor eq 'ARRAY'){unless (@$cursor){$lines[-1].= ' []';next}push@lines,$self->_dump_array($cursor,$indent,{})}elsif (ref$cursor eq 'HASH'){unless (%$cursor){$lines[-1].= ' {}';next}push@lines,$self->_dump_hash($cursor,$indent,{})}else {die \("Cannot serialize " .ref($cursor))}}};if (ref $@ eq 'SCALAR'){$self->_error(${$@})}elsif ($@){$self->_error($@)}join '',map {"$_\n"}@lines}sub _has_internal_string_value {my$value=shift;my$b_obj=B::svref_2object(\$value);return$b_obj->FLAGS & B::SVf_POK()}sub _dump_scalar {my$string=$_[1];my$is_key=$_[2];my$has_string_flag=_has_internal_string_value($string);return '~' unless defined$string;return "''" unless length$string;if (Scalar::Util::looks_like_number($string)){if ($is_key || $has_string_flag){return qq['$string']}else {return$string}}if ($string =~ /[\x00-\x09\x0b-\x0d\x0e-\x1f\x7f-\x9f\'\n]/){$string =~ s/\\/\\\\/g;$string =~ s/"/\\"/g;$string =~ s/\n/\\n/g;$string =~ s/[\x85]/\\N/g;$string =~ s/([\x00-\x1f])/\\$UNPRINTABLE[ord($1)]/g;$string =~ s/([\x7f-\x9f])/'\x' . sprintf("%X",ord($1))/ge;return qq|"$string"|}if ($string =~ /(?:^[~!@#%&*|>?:,'"`{}\[\]]|^-+$|\s|:\z)/ or $QUOTE{$string}){return "'$string'"}return$string}sub _dump_array {my ($self,$array,$indent,$seen)=@_;if ($seen->{refaddr($array)}++){die \"CPAN::Meta::YAML does not support circular references"}my@lines=();for my$el (@$array){my$line=(' ' x $indent).'-';my$type=ref$el;if (!$type){$line .= ' ' .$self->_dump_scalar($el);push@lines,$line}elsif ($type eq 'ARRAY'){if (@$el){push@lines,$line;push@lines,$self->_dump_array($el,$indent + 1,$seen)}else {$line .= ' []';push@lines,$line}}elsif ($type eq 'HASH'){if (keys %$el){push@lines,$line;push@lines,$self->_dump_hash($el,$indent + 1,$seen)}else {$line .= ' {}';push@lines,$line}}else {die \"CPAN::Meta::YAML does not support $type references"}}@lines}sub _dump_hash {my ($self,$hash,$indent,$seen)=@_;if ($seen->{refaddr($hash)}++){die \"CPAN::Meta::YAML does not support circular references"}my@lines=();for my$name (sort keys %$hash){my$el=$hash->{$name};my$line=(' ' x $indent).$self->_dump_scalar($name,1).":";my$type=ref$el;if (!$type){$line .= ' ' .$self->_dump_scalar($el);push@lines,$line}elsif ($type eq 'ARRAY'){if (@$el){push@lines,$line;push@lines,$self->_dump_array($el,$indent + 1,$seen)}else {$line .= ' []';push@lines,$line}}elsif ($type eq 'HASH'){if (keys %$el){push@lines,$line;push@lines,$self->_dump_hash($el,$indent + 1,$seen)}else {$line .= ' {}';push@lines,$line}}else {die \"CPAN::Meta::YAML does not support $type references"}}@lines}our$errstr='';sub _error {require Carp;$errstr=$_[1];$errstr =~ s/ at \S+ line \d+.*//;Carp::croak($errstr)}my$errstr_warned;sub errstr {require Carp;Carp::carp("CPAN::Meta::YAML->errstr and \$CPAN::Meta::YAML::errstr is deprecated")unless$errstr_warned++;$errstr}use B;my$HAS_FLOCK;sub _can_flock {if (defined$HAS_FLOCK){return$HAS_FLOCK}else {require Config;my$c=\%Config::Config;$HAS_FLOCK=grep {$c->{$_}}qw/d_flock d_fcntl_can_lock d_lockf/;require Fcntl if$HAS_FLOCK;return$HAS_FLOCK}}use Scalar::Util ();BEGIN {local $@;if (eval {Scalar::Util->VERSION(1.18)}){*refaddr=*Scalar::Util::refaddr}else {eval <<'END_PERL'}}delete$CPAN::Meta::YAML::{refaddr};1; + # Scalar::Util failed to load or too old + sub refaddr { + my $pkg = ref($_[0]) or return undef; + if ( !! UNIVERSAL::can($_[0], 'can') ) { + bless $_[0], 'Scalar::Util::Fake'; + } else { + $pkg = undef; + } + "$_[0]" =~ /0x(\w+)/; + my $i = do { no warnings 'portable'; hex $1 }; + bless $_[0], $pkg if defined $pkg; + $i; + } + END_PERL +CPAN_META_YAML + +$fatpacked{"Exporter.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'EXPORTER'; + package Exporter;require 5.006;our$Debug=0;our$ExportLevel=0;our$Verbose ||= 0;our$VERSION='5.70';our (%Cache);sub as_heavy {require Exporter::Heavy;my$c=(caller(1))[3];$c =~ s/.*:://;\&{"Exporter::Heavy::heavy_$c"}}sub export {goto &{as_heavy()}}sub import {my$pkg=shift;my$callpkg=caller($ExportLevel);if ($pkg eq "Exporter" and @_ and $_[0]eq "import"){*{$callpkg."::import"}=\&import;return}my$exports=\@{"$pkg\::EXPORT"};my$fail=${$pkg .'::'}{EXPORT_FAIL}&& \@{"$pkg\::EXPORT_FAIL"};return export$pkg,$callpkg,@_ if$Verbose or $Debug or $fail && @$fail > 1;my$export_cache=($Cache{$pkg}||= {});my$args=@_ or @_=@$exports;if ($args and not %$export_cache){s/^&//,$export_cache->{$_}=1 foreach (@$exports,@{"$pkg\::EXPORT_OK"})}my$heavy;if ($args or $fail){($heavy=(/\W/ or $args and not exists$export_cache->{$_}or $fail and @$fail and $_ eq $fail->[0]))and last foreach (@_)}else {($heavy=/\W/)and last foreach (@_)}return export$pkg,$callpkg,($args ? @_ : ())if$heavy;local$SIG{__WARN__}=sub {require Carp;&Carp::carp}if not $SIG{__WARN__};*{"$callpkg\::$_"}=\&{"$pkg\::$_"}foreach @_}sub export_fail {my$self=shift;@_}sub export_to_level {goto &{as_heavy()}}sub export_tags {goto &{as_heavy()}}sub export_ok_tags {goto &{as_heavy()}}sub require_version {goto &{as_heavy()}}1; +EXPORTER + +$fatpacked{"Exporter/Heavy.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'EXPORTER_HEAVY'; + package Exporter::Heavy;use strict;no strict 'refs';require Exporter;our$VERSION=$Exporter::VERSION;sub _rebuild_cache {my ($pkg,$exports,$cache)=@_;s/^&// foreach @$exports;@{$cache}{@$exports}=(1)x @$exports;my$ok=\@{"${pkg}::EXPORT_OK"};if (@$ok){s/^&// foreach @$ok;@{$cache}{@$ok}=(1)x @$ok}}sub heavy_export {my$oldwarn=$SIG{__WARN__};local$SIG{__WARN__}=sub {local$SIG{__WARN__}=$oldwarn;my$text=shift;if ($text =~ s/ at \S*Exporter\S*.pm line \d+.*\n//){require Carp;local$Carp::CarpLevel=1;Carp::carp($text)}else {warn$text}};local$SIG{__DIE__}=sub {require Carp;local$Carp::CarpLevel=1;Carp::croak("$_[0]Illegal null symbol in \@${1}::EXPORT")if $_[0]=~ /^Unable to create sub named "(.*?)::"/};my($pkg,$callpkg,@imports)=@_;my($type,$sym,$cache_is_current,$oops);my($exports,$export_cache)=(\@{"${pkg}::EXPORT"},$Exporter::Cache{$pkg}||= {});if (@imports){if (!%$export_cache){_rebuild_cache ($pkg,$exports,$export_cache);$cache_is_current=1}if (grep m{^[/!:]},@imports){my$tagsref=\%{"${pkg}::EXPORT_TAGS"};my$tagdata;my%imports;my($remove,$spec,@names,@allexports);unshift@imports,':DEFAULT' if$imports[0]=~ m/^!/;for$spec (@imports){$remove=$spec =~ s/^!//;if ($spec =~ s/^://){if ($spec eq 'DEFAULT'){@names=@$exports}elsif ($tagdata=$tagsref->{$spec}){@names=@$tagdata}else {warn qq["$spec" is not defined in %${pkg}::EXPORT_TAGS];++$oops;next}}elsif ($spec =~ m:^/(.*)/$:){my$patn=$1;@allexports=keys %$export_cache unless@allexports;@names=grep(/$patn/,@allexports)}else {@names=($spec)}warn "Import ".($remove ? "del":"add").": @names " if$Exporter::Verbose;if ($remove){for$sym (@names){delete$imports{$sym}}}else {@imports{@names}=(1)x @names}}@imports=keys%imports}my@carp;for$sym (@imports){if (!$export_cache->{$sym}){if ($sym =~ m/^\d/){$pkg->VERSION($sym);if (@imports==1){@imports=@$exports;last}if (@imports==2 and!$imports[1]){@imports=();last}}elsif ($sym !~ s/^&// ||!$export_cache->{$sym}){unless ($cache_is_current){%$export_cache=();_rebuild_cache ($pkg,$exports,$export_cache);$cache_is_current=1}if (!$export_cache->{$sym}){push@carp,qq["$sym" is not exported by the $pkg module\n];$oops++}}}}if ($oops){require Carp;Carp::croak("@{carp}Can't continue after import errors")}}else {@imports=@$exports}my($fail,$fail_cache)=(\@{"${pkg}::EXPORT_FAIL"},$Exporter::FailCache{$pkg}||= {});if (@$fail){if (!%$fail_cache){my@expanded=map {/^\w/ ? ($_,'&'.$_): $_}@$fail;warn "${pkg}::EXPORT_FAIL cached: @expanded" if$Exporter::Verbose;@{$fail_cache}{@expanded}=(1)x @expanded}my@failed;for$sym (@imports){push(@failed,$sym)if$fail_cache->{$sym}}if (@failed){@failed=$pkg->export_fail(@failed);for$sym (@failed){require Carp;Carp::carp(qq["$sym" is not implemented by the $pkg module ],"on this architecture")}if (@failed){require Carp;Carp::croak("Can't continue after import errors")}}}warn "Importing into $callpkg from $pkg: ",join(", ",sort@imports)if$Exporter::Verbose;for$sym (@imports){(*{"${callpkg}::$sym"}=\&{"${pkg}::$sym"},next)unless$sym =~ s/^(\W)//;$type=$1;no warnings 'once';*{"${callpkg}::$sym"}=$type eq '&' ? \&{"${pkg}::$sym"}: $type eq '$' ? \${"${pkg}::$sym"}: $type eq '@' ? \@{"${pkg}::$sym"}: $type eq '%' ? \%{"${pkg}::$sym"}: $type eq '*' ? *{"${pkg}::$sym"}: do {require Carp;Carp::croak("Can't export symbol: $type$sym")}}}sub heavy_export_to_level {my$pkg=shift;my$level=shift;(undef)=shift;my$callpkg=caller($level);$pkg->export($callpkg,@_)}sub _push_tags {my($pkg,$var,$syms)=@_;my@nontag=();my$export_tags=\%{"${pkg}::EXPORT_TAGS"};push(@{"${pkg}::$var"},map {$export_tags->{$_}? @{$export_tags->{$_}}: scalar(push(@nontag,$_),$_)}(@$syms)? @$syms : keys %$export_tags);if (@nontag and $^W){require Carp;Carp::carp(join(", ",@nontag)." are not tags of $pkg")}}sub heavy_require_version {my($self,$wanted)=@_;my$pkg=ref$self || $self;return ${pkg}->VERSION($wanted)}sub heavy_export_tags {_push_tags((caller)[0],"EXPORT",\@_)}sub heavy_export_ok_tags {_push_tags((caller)[0],"EXPORT_OK",\@_)}1; +EXPORTER_HEAVY + +$fatpacked{"File/pushd.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'FILE_PUSHD'; + use strict;use warnings;package File::pushd;our$VERSION='1.009';our@EXPORT=qw(pushd tempd);our@ISA=qw(Exporter);use Exporter;use Carp;use Cwd qw(getcwd abs_path);use File::Path qw(rmtree);use File::Temp qw();use File::Spec;use overload q{""}=>sub {File::Spec->canonpath($_[0]->{_pushd})},fallback=>1;sub pushd {my ($target_dir,$options)=@_;$options->{untaint_pattern}||= qr{^([-+@\w./]+)$};$target_dir="." unless defined$target_dir;croak "Can't locate directory $target_dir" unless -d $target_dir;my$tainted_orig=getcwd;my$orig;if ($tainted_orig =~ $options->{untaint_pattern}){$orig=$1}else {$orig=$tainted_orig}my$tainted_dest;eval {$tainted_dest=$target_dir ? abs_path($target_dir): $orig};croak "Can't locate absolute path for $target_dir: $@" if $@;my$dest;if ($tainted_dest =~ $options->{untaint_pattern}){$dest=$1}else {$dest=$tainted_dest}if ($dest ne $orig){chdir$dest or croak "Can't chdir to $dest\: $!"}my$self=bless {_pushd=>$dest,_original=>$orig },__PACKAGE__;return$self}sub tempd {my ($options)=@_;my$dir;eval {$dir=pushd(File::Temp::tempdir(CLEANUP=>0),$options)};croak $@ if $@;$dir->{_tempd}=1;return$dir}sub preserve {my$self=shift;return 1 if!$self->{"_tempd"};if (@_==0){return$self->{_preserve}=1}else {return$self->{_preserve}=$_[0]? 1 : 0}}sub DESTROY {my ($self)=@_;my$orig=$self->{_original};chdir$orig if$orig;if ($self->{_tempd}&&!$self->{_preserve}){my$err=do {local $@;eval {rmtree($self->{_pushd})};$@};carp$err if$err}}1; +FILE_PUSHD + +$fatpacked{"HTTP/Tiny.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'HTTP_TINY'; + package HTTP::Tiny;use strict;use warnings;our$VERSION='0.056';use Carp ();my@attributes;BEGIN {@attributes=qw(cookie_jar default_headers http_proxy https_proxy keep_alive local_address max_redirect max_size proxy no_proxy timeout SSL_options verify_SSL);my%persist_ok=map {;$_=>1}qw(cookie_jar default_headers max_redirect max_size);no strict 'refs';no warnings 'uninitialized';for my$accessor (@attributes){*{$accessor}=sub {@_ > 1 ? do {delete $_[0]->{handle}if!$persist_ok{$accessor}&& $_[1]ne $_[0]->{$accessor};$_[0]->{$accessor}=$_[1]}: $_[0]->{$accessor}}}}sub agent {my($self,$agent)=@_;if(@_ > 1){$self->{agent}=(defined$agent && $agent =~ / $/)? $agent .$self->_agent : $agent}return$self->{agent}}sub new {my($class,%args)=@_;my$self={max_redirect=>5,timeout=>60,keep_alive=>1,verify_SSL=>$args{verify_SSL}|| $args{verify_ssl}|| 0,no_proxy=>$ENV{no_proxy},};bless$self,$class;$class->_validate_cookie_jar($args{cookie_jar})if$args{cookie_jar};for my$key (@attributes){$self->{$key}=$args{$key}if exists$args{$key}}$self->agent(exists$args{agent}? $args{agent}: $class->_agent);$self->_set_proxies;return$self}sub _set_proxies {my ($self)=@_;if (!exists$self->{proxy}){$self->{proxy}=$ENV{all_proxy}|| $ENV{ALL_PROXY}}if (defined$self->{proxy}){$self->_split_proxy('generic proxy'=>$self->{proxy})}else {delete$self->{proxy}}if (!exists$self->{http_proxy}){local$ENV{HTTP_PROXY}if$ENV{REQUEST_METHOD};$self->{http_proxy}=$ENV{http_proxy}|| $ENV{HTTP_PROXY}|| $self->{proxy}}if (defined$self->{http_proxy}){$self->_split_proxy(http_proxy=>$self->{http_proxy});$self->{_has_proxy}{http}=1}else {delete$self->{http_proxy}}if (!exists$self->{https_proxy}){$self->{https_proxy}=$ENV{https_proxy}|| $ENV{HTTPS_PROXY}|| $self->{proxy}}if ($self->{https_proxy}){$self->_split_proxy(https_proxy=>$self->{https_proxy});$self->{_has_proxy}{https}=1}else {delete$self->{https_proxy}}unless (ref$self->{no_proxy}eq 'ARRAY'){$self->{no_proxy}=(defined$self->{no_proxy})? [split /\s*,\s*/,$self->{no_proxy}]: []}return}for my$sub_name (qw/get head put post delete/){my$req_method=uc$sub_name;no strict 'refs';eval <<"HERE"}sub post_form {my ($self,$url,$data,$args)=@_;(@_==3 || @_==4 && ref$args eq 'HASH')or Carp::croak(q/Usage: $http->post_form(URL, DATAREF, [HASHREF])/ ."\n");my$headers={};while (my ($key,$value)=each %{$args->{headers}|| {}}){$headers->{lc$key}=$value}delete$args->{headers};return$self->request('POST',$url,{%$args,content=>$self->www_form_urlencode($data),headers=>{%$headers,'content-type'=>'application/x-www-form-urlencoded' },})}sub mirror {my ($self,$url,$file,$args)=@_;@_==3 || (@_==4 && ref$args eq 'HASH')or Carp::croak(q/Usage: $http->mirror(URL, FILE, [HASHREF])/ ."\n");if (-e $file and my$mtime=(stat($file))[9]){$args->{headers}{'if-modified-since'}||= $self->_http_date($mtime)}my$tempfile=$file .int(rand(2**31));require Fcntl;sysopen my$fh,$tempfile,Fcntl::O_CREAT()|Fcntl::O_EXCL()|Fcntl::O_WRONLY()or Carp::croak(qq/Error: Could not create temporary file $tempfile for downloading: $!\n/);binmode$fh;$args->{data_callback}=sub {print {$fh}$_[0]};my$response=$self->request('GET',$url,$args);close$fh or Carp::croak(qq/Error: Caught error closing temporary file $tempfile: $!\n/);if ($response->{success}){rename$tempfile,$file or Carp::croak(qq/Error replacing $file with $tempfile: $!\n/);my$lm=$response->{headers}{'last-modified'};if ($lm and my$mtime=$self->_parse_http_date($lm)){utime$mtime,$mtime,$file}}$response->{success}||= $response->{status}eq '304';unlink$tempfile;return$response}my%idempotent=map {$_=>1}qw/GET HEAD PUT DELETE OPTIONS TRACE/;sub request {my ($self,$method,$url,$args)=@_;@_==3 || (@_==4 && ref$args eq 'HASH')or Carp::croak(q/Usage: $http->request(METHOD, URL, [HASHREF])/ ."\n");$args ||= {};my$response;for (0 .. 1){$response=eval {$self->_request($method,$url,$args)};last unless $@ && $idempotent{$method}&& $@ =~ m{^(?:Socket closed|Unexpected end)}}if (my$e=$@){if (ref$e eq 'HASH' && exists$e->{status}){return$e}$e="$e";$response={url=>$url,success=>q{},status=>599,reason=>'Internal Exception',content=>$e,headers=>{'content-type'=>'text/plain','content-length'=>length$e,}}}return$response}sub www_form_urlencode {my ($self,$data)=@_;(@_==2 && ref$data)or Carp::croak(q/Usage: $http->www_form_urlencode(DATAREF)/ ."\n");(ref$data eq 'HASH' || ref$data eq 'ARRAY')or Carp::croak("form data must be a hash or array reference\n");my@params=ref$data eq 'HASH' ? %$data : @$data;@params % 2==0 or Carp::croak("form data reference must have an even number of terms\n");my@terms;while(@params){my ($key,$value)=splice(@params,0,2);if (ref$value eq 'ARRAY'){unshift@params,map {$key=>$_}@$value}else {push@terms,join("=",map {$self->_uri_escape($_)}$key,$value)}}return join("&",(ref$data eq 'ARRAY')? (@terms): (sort@terms))}sub can_ssl {my ($self)=@_;my($ok,$reason)=(1,'');unless (eval {require IO::Socket::SSL;IO::Socket::SSL->VERSION(1.42)}){$ok=0;$reason .= qq/IO::Socket::SSL 1.42 must be installed for https support\n/}unless (eval {require Net::SSLeay;Net::SSLeay->VERSION(1.49)}){$ok=0;$reason .= qq/Net::SSLeay 1.49 must be installed for https support\n/}if (ref($self)&& ($self->{verify_SSL}|| $self->{SSL_options}{SSL_verify_mode})){my$handle=HTTP::Tiny::Handle->new(SSL_options=>$self->{SSL_options},verify_SSL=>$self->{verify_SSL},);unless (eval {$handle->_find_CA_file;1}){$ok=0;$reason .= "$@"}}wantarray ? ($ok,$reason): $ok}my%DefaultPort=(http=>80,https=>443,);sub _agent {my$class=ref($_[0])|| $_[0];(my$default_agent=$class)=~ s{::}{-}g;return$default_agent ."/" .$class->VERSION}sub _request {my ($self,$method,$url,$args)=@_;my ($scheme,$host,$port,$path_query,$auth)=$self->_split_url($url);my$request={method=>$method,scheme=>$scheme,host=>$host,port=>$port,host_port=>($port==$DefaultPort{$scheme}? $host : "$host:$port"),uri=>$path_query,headers=>{},};my$handle=delete$self->{handle};if ($handle){unless ($handle->can_reuse($scheme,$host,$port)){$handle->close;undef$handle}}$handle ||= $self->_open_handle($request,$scheme,$host,$port);$self->_prepare_headers_and_cb($request,$args,$url,$auth);$handle->write_request($request);my$response;do {$response=$handle->read_response_header}until (substr($response->{status},0,1)ne '1');$self->_update_cookie_jar($url,$response)if$self->{cookie_jar};if (my@redir_args=$self->_maybe_redirect($request,$response,$args)){$handle->close;return$self->_request(@redir_args,$args)}my$known_message_length;if ($method eq 'HEAD' || $response->{status}=~ /^[23]04/){$known_message_length=1}else {my$data_cb=$self->_prepare_data_cb($response,$args);$known_message_length=$handle->read_body($data_cb,$response)}if ($self->{keep_alive}&& $known_message_length && $response->{protocol}eq 'HTTP/1.1' && ($response->{headers}{connection}|| '')ne 'close'){$self->{handle}=$handle}else {$handle->close}$response->{success}=substr($response->{status},0,1)eq '2';$response->{url}=$url;return$response}sub _open_handle {my ($self,$request,$scheme,$host,$port)=@_;my$handle=HTTP::Tiny::Handle->new(timeout=>$self->{timeout},SSL_options=>$self->{SSL_options},verify_SSL=>$self->{verify_SSL},local_address=>$self->{local_address},keep_alive=>$self->{keep_alive});if ($self->{_has_proxy}{$scheme}&&!grep {$host =~ /\Q$_\E$/}@{$self->{no_proxy}}){return$self->_proxy_connect($request,$handle)}else {return$handle->connect($scheme,$host,$port)}}sub _proxy_connect {my ($self,$request,$handle)=@_;my@proxy_vars;if ($request->{scheme}eq 'https'){Carp::croak(qq{No https_proxy defined})unless$self->{https_proxy};@proxy_vars=$self->_split_proxy(https_proxy=>$self->{https_proxy});if ($proxy_vars[0]eq 'https'){Carp::croak(qq{Can't proxy https over https: $request->{uri} via $self->{https_proxy}})}}else {Carp::croak(qq{No http_proxy defined})unless$self->{http_proxy};@proxy_vars=$self->_split_proxy(http_proxy=>$self->{http_proxy})}my ($p_scheme,$p_host,$p_port,$p_auth)=@proxy_vars;if (length$p_auth &&!defined$request->{headers}{'proxy-authorization'}){$self->_add_basic_auth_header($request,'proxy-authorization'=>$p_auth)}$handle->connect($p_scheme,$p_host,$p_port);if ($request->{scheme}eq 'https'){$self->_create_proxy_tunnel($request,$handle)}else {$request->{uri}="$request->{scheme}://$request->{host_port}$request->{uri}"}return$handle}sub _split_proxy {my ($self,$type,$proxy)=@_;my ($scheme,$host,$port,$path_query,$auth)=eval {$self->_split_url($proxy)};unless(defined($scheme)&& length($scheme)&& length($host)&& length($port)&& $path_query eq '/'){Carp::croak(qq{$type URL must be in format http[s]://[auth@]:/\n})}return ($scheme,$host,$port,$auth)}sub _create_proxy_tunnel {my ($self,$request,$handle)=@_;$handle->_assert_ssl;my$agent=exists($request->{headers}{'user-agent'})? $request->{headers}{'user-agent'}: $self->{agent};my$connect_request={method=>'CONNECT',uri=>"$request->{host}:$request->{port}",headers=>{host=>"$request->{host}:$request->{port}",'user-agent'=>$agent,}};if ($request->{headers}{'proxy-authorization'}){$connect_request->{headers}{'proxy-authorization'}=delete$request->{headers}{'proxy-authorization'}}$handle->write_request($connect_request);my$response;do {$response=$handle->read_response_header}until (substr($response->{status},0,1)ne '1');unless (substr($response->{status},0,1)eq '2'){die$response}$handle->start_ssl($request->{host});return}sub _prepare_headers_and_cb {my ($self,$request,$args,$url,$auth)=@_;for ($self->{default_headers},$args->{headers}){next unless defined;while (my ($k,$v)=each %$_){$request->{headers}{lc$k}=$v}}if (exists$request->{headers}{'host'}){die(qq/The 'Host' header must not be provided as header option\n/)}$request->{headers}{'host'}=$request->{host_port};$request->{headers}{'user-agent'}||= $self->{agent};$request->{headers}{'connection'}="close" unless$self->{keep_alive};if (defined$args->{content}){if (ref$args->{content}eq 'CODE'){$request->{headers}{'content-type'}||= "application/octet-stream";$request->{headers}{'transfer-encoding'}='chunked' unless$request->{headers}{'content-length'}|| $request->{headers}{'transfer-encoding'};$request->{cb}=$args->{content}}elsif (length$args->{content}){my$content=$args->{content};if ($] ge '5.008'){utf8::downgrade($content,1)or die(qq/Wide character in request message body\n/)}$request->{headers}{'content-type'}||= "application/octet-stream";$request->{headers}{'content-length'}=length$content unless$request->{headers}{'content-length'}|| $request->{headers}{'transfer-encoding'};$request->{cb}=sub {substr$content,0,length$content,''}}$request->{trailer_cb}=$args->{trailer_callback}if ref$args->{trailer_callback}eq 'CODE'}if ($self->{cookie_jar}){my$cookies=$self->cookie_jar->cookie_header($url);$request->{headers}{cookie}=$cookies if length$cookies}if (length$auth &&!defined$request->{headers}{authorization}){$self->_add_basic_auth_header($request,'authorization'=>$auth)}return}sub _add_basic_auth_header {my ($self,$request,$header,$auth)=@_;require MIME::Base64;$request->{headers}{$header}="Basic " .MIME::Base64::encode_base64($auth,"");return}sub _prepare_data_cb {my ($self,$response,$args)=@_;my$data_cb=$args->{data_callback};$response->{content}='';if (!$data_cb || $response->{status}!~ /^2/){if (defined$self->{max_size}){$data_cb=sub {$_[1]->{content}.= $_[0];die(qq/Size of response body exceeds the maximum allowed of $self->{max_size}\n/)if length $_[1]->{content}> $self->{max_size}}}else {$data_cb=sub {$_[1]->{content}.= $_[0]}}}return$data_cb}sub _update_cookie_jar {my ($self,$url,$response)=@_;my$cookies=$response->{headers}->{'set-cookie'};return unless defined$cookies;my@cookies=ref$cookies ? @$cookies : $cookies;$self->cookie_jar->add($url,$_)for@cookies;return}sub _validate_cookie_jar {my ($class,$jar)=@_;for my$method (qw/add cookie_header/){Carp::croak(qq/Cookie jar must provide the '$method' method\n/)unless ref($jar)&& ref($jar)->can($method)}return}sub _maybe_redirect {my ($self,$request,$response,$args)=@_;my$headers=$response->{headers};my ($status,$method)=($response->{status},$request->{method});if (($status eq '303' or ($status =~ /^30[1278]/ && $method =~ /^GET|HEAD$/))and $headers->{location}and ++$args->{redirects}<= $self->{max_redirect}){my$location=($headers->{location}=~ /^\//)? "$request->{scheme}://$request->{host_port}$headers->{location}" : $headers->{location};return (($status eq '303' ? 'GET' : $method),$location)}return}sub _split_url {my$url=pop;my ($scheme,$host,$path_query)=$url =~ m<\A([^:/?#]+)://([^/?#]*)([^#]*)> or die(qq/Cannot parse URL: '$url'\n/);$scheme=lc$scheme;$path_query="/$path_query" unless$path_query =~ m<\A/>;my$auth='';if ((my$i=index$host,'@')!=-1){$auth=substr$host,0,$i,'';substr$host,0,1,'';$auth =~ s/%([0-9A-Fa-f]{2})/chr(hex($1))/eg}my$port=$host =~ s/:(\d*)\z// && length $1 ? $1 : $scheme eq 'http' ? 80 : $scheme eq 'https' ? 443 : undef;return ($scheme,(length$host ? lc$host : "localhost"),$port,$path_query,$auth)}my$DoW="Sun|Mon|Tue|Wed|Thu|Fri|Sat";my$MoY="Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec";sub _http_date {my ($sec,$min,$hour,$mday,$mon,$year,$wday)=gmtime($_[1]);return sprintf("%s, %02d %s %04d %02d:%02d:%02d GMT",substr($DoW,$wday*4,3),$mday,substr($MoY,$mon*4,3),$year+1900,$hour,$min,$sec)}sub _parse_http_date {my ($self,$str)=@_;require Time::Local;my@tl_parts;if ($str =~ /^[SMTWF][a-z]+, +(\d{1,2}) ($MoY) +(\d\d\d\d) +(\d\d):(\d\d):(\d\d) +GMT$/){@tl_parts=($6,$5,$4,$1,(index($MoY,$2)/4),$3)}elsif ($str =~ /^[SMTWF][a-z]+, +(\d\d)-($MoY)-(\d{2,4}) +(\d\d):(\d\d):(\d\d) +GMT$/){@tl_parts=($6,$5,$4,$1,(index($MoY,$2)/4),$3)}elsif ($str =~ /^[SMTWF][a-z]+ +($MoY) +(\d{1,2}) +(\d\d):(\d\d):(\d\d) +(?:[^0-9]+ +)?(\d\d\d\d)$/){@tl_parts=($5,$4,$3,$2,(index($MoY,$1)/4),$6)}return eval {my$t=@tl_parts ? Time::Local::timegm(@tl_parts): -1;$t < 0 ? undef : $t}}my%escapes=map {chr($_)=>sprintf("%%%02X",$_)}0..255;$escapes{' '}="+";my$unsafe_char=qr/[^A-Za-z0-9\-\._~]/;sub _uri_escape {my ($self,$str)=@_;if ($] ge '5.008'){utf8::encode($str)}else {$str=pack("U*",unpack("C*",$str))if (length$str==do {use bytes;length$str});$str=pack("C*",unpack("C*",$str))}$str =~ s/($unsafe_char)/$escapes{$1}/ge;return$str}package HTTP::Tiny::Handle;use strict;use warnings;use Errno qw[EINTR EPIPE];use IO::Socket qw[SOCK_STREAM];my$SOCKET_CLASS=$ENV{PERL_HTTP_TINY_IPV4_ONLY}? 'IO::Socket::INET' : eval {require IO::Socket::IP;IO::Socket::IP->VERSION(0.25)}? 'IO::Socket::IP' : 'IO::Socket::INET';sub BUFSIZE () {32768}my$Printable=sub {local $_=shift;s/\r/\\r/g;s/\n/\\n/g;s/\t/\\t/g;s/([^\x20-\x7E])/sprintf('\\x%.2X', ord($1))/ge;$_};my$Token=qr/[\x21\x23-\x27\x2A\x2B\x2D\x2E\x30-\x39\x41-\x5A\x5E-\x7A\x7C\x7E]/;sub new {my ($class,%args)=@_;return bless {rbuf=>'',timeout=>60,max_line_size=>16384,max_header_lines=>64,verify_SSL=>0,SSL_options=>{},%args },$class}sub connect {@_==4 || die(q/Usage: $handle->connect(scheme, host, port)/ ."\n");my ($self,$scheme,$host,$port)=@_;if ($scheme eq 'https'){$self->_assert_ssl}elsif ($scheme ne 'http'){die(qq/Unsupported URL scheme '$scheme'\n/)}$self->{fh}=$SOCKET_CLASS->new(PeerHost=>$host,PeerPort=>$port,$self->{local_address}? (LocalAddr=>$self->{local_address}): (),Proto=>'tcp',Type=>SOCK_STREAM,Timeout=>$self->{timeout},KeepAlive=>!!$self->{keep_alive})or die(qq/Could not connect to '$host:$port': $@\n/);binmode($self->{fh})or die(qq/Could not binmode() socket: '$!'\n/);$self->start_ssl($host)if$scheme eq 'https';$self->{scheme}=$scheme;$self->{host}=$host;$self->{port}=$port;$self->{pid}=$$;$self->{tid}=_get_tid();return$self}sub start_ssl {my ($self,$host)=@_;if (ref($self->{fh})eq 'IO::Socket::SSL'){unless ($self->{fh}->stop_SSL){my$ssl_err=IO::Socket::SSL->errstr;die(qq/Error halting prior SSL connection: $ssl_err/)}}my$ssl_args=$self->_ssl_args($host);IO::Socket::SSL->start_SSL($self->{fh},%$ssl_args,SSL_create_ctx_callback=>sub {my$ctx=shift;Net::SSLeay::CTX_set_mode($ctx,Net::SSLeay::MODE_AUTO_RETRY())},);unless (ref($self->{fh})eq 'IO::Socket::SSL'){my$ssl_err=IO::Socket::SSL->errstr;die(qq/SSL connection failed for $host: $ssl_err\n/)}}sub close {@_==1 || die(q/Usage: $handle->close()/ ."\n");my ($self)=@_;CORE::close($self->{fh})or die(qq/Could not close socket: '$!'\n/)}sub write {@_==2 || die(q/Usage: $handle->write(buf)/ ."\n");my ($self,$buf)=@_;if ($] ge '5.008'){utf8::downgrade($buf,1)or die(qq/Wide character in write()\n/)}my$len=length$buf;my$off=0;local$SIG{PIPE}='IGNORE';while (){$self->can_write or die(qq/Timed out while waiting for socket to become ready for writing\n/);my$r=syswrite($self->{fh},$buf,$len,$off);if (defined$r){$len -= $r;$off += $r;last unless$len > 0}elsif ($!==EPIPE){die(qq/Socket closed by remote server: $!\n/)}elsif ($!!=EINTR){if ($self->{fh}->can('errstr')){my$err=$self->{fh}->errstr();die (qq/Could not write to SSL socket: '$err'\n /)}else {die(qq/Could not write to socket: '$!'\n/)}}}return$off}sub read {@_==2 || @_==3 || die(q/Usage: $handle->read(len [, allow_partial])/ ."\n");my ($self,$len,$allow_partial)=@_;my$buf='';my$got=length$self->{rbuf};if ($got){my$take=($got < $len)? $got : $len;$buf=substr($self->{rbuf},0,$take,'');$len -= $take}while ($len > 0){$self->can_read or die(q/Timed out while waiting for socket to become ready for reading/ ."\n");my$r=sysread($self->{fh},$buf,$len,length$buf);if (defined$r){last unless$r;$len -= $r}elsif ($!!=EINTR){if ($self->{fh}->can('errstr')){my$err=$self->{fh}->errstr();die (qq/Could not read from SSL socket: '$err'\n /)}else {die(qq/Could not read from socket: '$!'\n/)}}}if ($len &&!$allow_partial){die(qq/Unexpected end of stream\n/)}return$buf}sub readline {@_==1 || die(q/Usage: $handle->readline()/ ."\n");my ($self)=@_;while (){if ($self->{rbuf}=~ s/\A ([^\x0D\x0A]* \x0D?\x0A)//x){return $1}if (length$self->{rbuf}>= $self->{max_line_size}){die(qq/Line size exceeds the maximum allowed size of $self->{max_line_size}\n/)}$self->can_read or die(qq/Timed out while waiting for socket to become ready for reading\n/);my$r=sysread($self->{fh},$self->{rbuf},BUFSIZE,length$self->{rbuf});if (defined$r){last unless$r}elsif ($!!=EINTR){if ($self->{fh}->can('errstr')){my$err=$self->{fh}->errstr();die (qq/Could not read from SSL socket: '$err'\n /)}else {die(qq/Could not read from socket: '$!'\n/)}}}die(qq/Unexpected end of stream while looking for line\n/)}sub read_header_lines {@_==1 || @_==2 || die(q/Usage: $handle->read_header_lines([headers])/ ."\n");my ($self,$headers)=@_;$headers ||= {};my$lines=0;my$val;while (){my$line=$self->readline;if (++$lines >= $self->{max_header_lines}){die(qq/Header lines exceeds maximum number allowed of $self->{max_header_lines}\n/)}elsif ($line =~ /\A ([^\x00-\x1F\x7F:]+) : [\x09\x20]* ([^\x0D\x0A]*)/x){my ($field_name)=lc $1;if (exists$headers->{$field_name}){for ($headers->{$field_name}){$_=[$_]unless ref $_ eq "ARRAY";push @$_,$2;$val=\$_->[-1]}}else {$val=\($headers->{$field_name}=$2)}}elsif ($line =~ /\A [\x09\x20]+ ([^\x0D\x0A]*)/x){$val or die(qq/Unexpected header continuation line\n/);next unless length $1;$$val .= ' ' if length $$val;$$val .= $1}elsif ($line =~ /\A \x0D?\x0A \z/x){last}else {die(q/Malformed header line: / .$Printable->($line)."\n")}}return$headers}sub write_request {@_==2 || die(q/Usage: $handle->write_request(request)/ ."\n");my($self,$request)=@_;$self->write_request_header(@{$request}{qw/method uri headers/});$self->write_body($request)if$request->{cb};return}my%HeaderCase=('content-md5'=>'Content-MD5','etag'=>'ETag','te'=>'TE','www-authenticate'=>'WWW-Authenticate','x-xss-protection'=>'X-XSS-Protection',);sub write_header_lines {(@_==2 || @_==3 && ref $_[1]eq 'HASH')|| die(q/Usage: $handle->write_header_lines(headers[,prefix])/ ."\n");my($self,$headers,$prefix_data)=@_;my$buf=(defined$prefix_data ? $prefix_data : '');while (my ($k,$v)=each %$headers){my$field_name=lc$k;if (exists$HeaderCase{$field_name}){$field_name=$HeaderCase{$field_name}}else {$field_name =~ /\A $Token+ \z/xo or die(q/Invalid HTTP header field name: / .$Printable->($field_name)."\n");$field_name =~ s/\b(\w)/\u$1/g;$HeaderCase{lc$field_name}=$field_name}for (ref$v eq 'ARRAY' ? @$v : $v){$_='' unless defined $_;$buf .= "$field_name: $_\x0D\x0A"}}$buf .= "\x0D\x0A";return$self->write($buf)}sub read_body {@_==3 || die(q/Usage: $handle->read_body(callback, response)/ ."\n");my ($self,$cb,$response)=@_;my$te=$response->{headers}{'transfer-encoding'}|| '';my$chunked=grep {/chunked/i}(ref$te eq 'ARRAY' ? @$te : $te);return$chunked ? $self->read_chunked_body($cb,$response): $self->read_content_body($cb,$response)}sub write_body {@_==2 || die(q/Usage: $handle->write_body(request)/ ."\n");my ($self,$request)=@_;if ($request->{headers}{'content-length'}){return$self->write_content_body($request)}else {return$self->write_chunked_body($request)}}sub read_content_body {@_==3 || @_==4 || die(q/Usage: $handle->read_content_body(callback, response, [read_length])/ ."\n");my ($self,$cb,$response,$content_length)=@_;$content_length ||= $response->{headers}{'content-length'};if (defined$content_length){my$len=$content_length;while ($len > 0){my$read=($len > BUFSIZE)? BUFSIZE : $len;$cb->($self->read($read,0),$response);$len -= $read}return length($self->{rbuf})==0}my$chunk;$cb->($chunk,$response)while length($chunk=$self->read(BUFSIZE,1));return}sub write_content_body {@_==2 || die(q/Usage: $handle->write_content_body(request)/ ."\n");my ($self,$request)=@_;my ($len,$content_length)=(0,$request->{headers}{'content-length'});while (){my$data=$request->{cb}->();defined$data && length$data or last;if ($] ge '5.008'){utf8::downgrade($data,1)or die(qq/Wide character in write_content()\n/)}$len += $self->write($data)}$len==$content_length or die(qq/Content-Length mismatch (got: $len expected: $content_length)\n/);return$len}sub read_chunked_body {@_==3 || die(q/Usage: $handle->read_chunked_body(callback, $response)/ ."\n");my ($self,$cb,$response)=@_;while (){my$head=$self->readline;$head =~ /\A ([A-Fa-f0-9]+)/x or die(q/Malformed chunk head: / .$Printable->($head)."\n");my$len=hex($1)or last;$self->read_content_body($cb,$response,$len);$self->read(2)eq "\x0D\x0A" or die(qq/Malformed chunk: missing CRLF after chunk data\n/)}$self->read_header_lines($response->{headers});return 1}sub write_chunked_body {@_==2 || die(q/Usage: $handle->write_chunked_body(request)/ ."\n");my ($self,$request)=@_;my$len=0;while (){my$data=$request->{cb}->();defined$data && length$data or last;if ($] ge '5.008'){utf8::downgrade($data,1)or die(qq/Wide character in write_chunked_body()\n/)}$len += length$data;my$chunk=sprintf '%X',length$data;$chunk .= "\x0D\x0A";$chunk .= $data;$chunk .= "\x0D\x0A";$self->write($chunk)}$self->write("0\x0D\x0A");$self->write_header_lines($request->{trailer_cb}->())if ref$request->{trailer_cb}eq 'CODE';return$len}sub read_response_header {@_==1 || die(q/Usage: $handle->read_response_header()/ ."\n");my ($self)=@_;my$line=$self->readline;$line =~ /\A (HTTP\/(0*\d+\.0*\d+)) [\x09\x20]+ ([0-9]{3}) [\x09\x20]+ ([^\x0D\x0A]*) \x0D?\x0A/x or die(q/Malformed Status-Line: / .$Printable->($line)."\n");my ($protocol,$version,$status,$reason)=($1,$2,$3,$4);die (qq/Unsupported HTTP protocol: $protocol\n/)unless$version =~ /0*1\.0*[01]/;return {status=>$status,reason=>$reason,headers=>$self->read_header_lines,protocol=>$protocol,}}sub write_request_header {@_==4 || die(q/Usage: $handle->write_request_header(method, request_uri, headers)/ ."\n");my ($self,$method,$request_uri,$headers)=@_;return$self->write_header_lines($headers,"$method $request_uri HTTP/1.1\x0D\x0A")}sub _do_timeout {my ($self,$type,$timeout)=@_;$timeout=$self->{timeout}unless defined$timeout && $timeout >= 0;my$fd=fileno$self->{fh};defined$fd && $fd >= 0 or die(qq/select(2): 'Bad file descriptor'\n/);my$initial=time;my$pending=$timeout;my$nfound;vec(my$fdset='',$fd,1)=1;while (){$nfound=($type eq 'read')? select($fdset,undef,undef,$pending): select(undef,$fdset,undef,$pending);if ($nfound==-1){$!==EINTR or die(qq/select(2): '$!'\n/);redo if!$timeout || ($pending=$timeout - (time - $initial))> 0;$nfound=0}last}$!=0;return$nfound}sub can_read {@_==1 || @_==2 || die(q/Usage: $handle->can_read([timeout])/ ."\n");my$self=shift;if (ref($self->{fh})eq 'IO::Socket::SSL'){return 1 if$self->{fh}->pending}return$self->_do_timeout('read',@_)}sub can_write {@_==1 || @_==2 || die(q/Usage: $handle->can_write([timeout])/ ."\n");my$self=shift;return$self->_do_timeout('write',@_)}sub _assert_ssl {my($ok,$reason)=HTTP::Tiny->can_ssl();die$reason unless$ok}sub can_reuse {my ($self,$scheme,$host,$port)=@_;return 0 if $self->{pid}!=$$ || $self->{tid}!=_get_tid()|| length($self->{rbuf})|| $scheme ne $self->{scheme}|| $host ne $self->{host}|| $port ne $self->{port}|| eval {$self->can_read(0)}|| $@ ;return 1}sub _find_CA_file {my$self=shift();if ($self->{SSL_options}->{SSL_ca_file}){unless (-r $self->{SSL_options}->{SSL_ca_file}){die qq/SSL_ca_file '$self->{SSL_options}->{SSL_ca_file}' not found or not readable\n/}return$self->{SSL_options}->{SSL_ca_file}}return Mozilla::CA::SSL_ca_file()if eval {require Mozilla::CA;1};for my$ca_bundle ("/etc/ssl/certs/ca-certificates.crt","/etc/pki/tls/certs/ca-bundle.crt","/etc/ssl/ca-bundle.pem","/etc/openssl/certs/ca-certificates.crt","/etc/ssl/cert.pem","/usr/local/share/certs/ca-root-nss.crt","/etc/pki/tls/cacert.pem","/etc/certs/ca-certificates.crt",){return$ca_bundle if -e $ca_bundle}die qq/Couldn't find a CA bundle with which to verify the SSL certificate.\n/ .qq/Try installing Mozilla::CA from CPAN\n/}sub _get_tid {no warnings 'reserved';return threads->can("tid")? threads->tid : 0}sub _ssl_args {my ($self,$host)=@_;my%ssl_args;if (Net::SSLeay::OPENSSL_VERSION_NUMBER()>= 0x01000000){$ssl_args{SSL_hostname}=$host,}if ($self->{verify_SSL}){$ssl_args{SSL_verifycn_scheme}='http';$ssl_args{SSL_verifycn_name}=$host;$ssl_args{SSL_verify_mode}=0x01;$ssl_args{SSL_ca_file}=$self->_find_CA_file}else {$ssl_args{SSL_verifycn_scheme}='none';$ssl_args{SSL_verify_mode}=0x00}for my$k (keys %{$self->{SSL_options}}){$ssl_args{$k}=$self->{SSL_options}{$k}if$k =~ m/^SSL_/}return \%ssl_args}1; + sub $sub_name { + my (\$self, \$url, \$args) = \@_; + \@_ == 2 || (\@_ == 3 && ref \$args eq 'HASH') + or Carp::croak(q/Usage: \$http->$sub_name(URL, [HASHREF])/ . "\n"); + return \$self->request('$req_method', \$url, \$args || {}); + } + HERE +HTTP_TINY + +$fatpacked{"JSON/PP.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'JSON_PP'; + package JSON::PP;use 5.005;use strict;use base qw(Exporter);use overload ();use Carp ();use B ();$JSON::PP::VERSION='2.27300';@JSON::PP::EXPORT=qw(encode_json decode_json from_json to_json);use constant P_ASCII=>0;use constant P_LATIN1=>1;use constant P_UTF8=>2;use constant P_INDENT=>3;use constant P_CANONICAL=>4;use constant P_SPACE_BEFORE=>5;use constant P_SPACE_AFTER=>6;use constant P_ALLOW_NONREF=>7;use constant P_SHRINK=>8;use constant P_ALLOW_BLESSED=>9;use constant P_CONVERT_BLESSED=>10;use constant P_RELAXED=>11;use constant P_LOOSE=>12;use constant P_ALLOW_BIGNUM=>13;use constant P_ALLOW_BAREKEY=>14;use constant P_ALLOW_SINGLEQUOTE=>15;use constant P_ESCAPE_SLASH=>16;use constant P_AS_NONBLESSED=>17;use constant P_ALLOW_UNKNOWN=>18;use constant OLD_PERL=>$] < 5.008 ? 1 : 0;BEGIN {my@xs_compati_bit_properties=qw(latin1 ascii utf8 indent canonical space_before space_after allow_nonref shrink allow_blessed convert_blessed relaxed allow_unknown);my@pp_bit_properties=qw(allow_singlequote allow_bignum loose allow_barekey escape_slash as_nonblessed);if ($] < 5.008){my$helper=$] >= 5.006 ? 'JSON::PP::Compat5006' : 'JSON::PP::Compat5005';eval qq| require $helper |;if ($@){Carp::croak $@}}for my$name (@xs_compati_bit_properties,@pp_bit_properties){my$flag_name='P_' .uc($name);eval qq/ + sub $name { + my \$enable = defined \$_[1] ? \$_[1] : 1; + + if (\$enable) { + \$_[0]->{PROPS}->[$flag_name] = 1; + } + else { + \$_[0]->{PROPS}->[$flag_name] = 0; + } + + \$_[0]; + } + + sub get_$name { + \$_[0]->{PROPS}->[$flag_name] ? 1 : ''; + } + /}}my%encode_allow_method =map {($_=>1)}qw/utf8 pretty allow_nonref latin1 self_encode escape_slash allow_blessed convert_blessed indent indent_length allow_bignum as_nonblessed/;my%decode_allow_method =map {($_=>1)}qw/utf8 allow_nonref loose allow_singlequote allow_bignum allow_barekey max_size relaxed/;my$JSON;sub encode_json ($) {($JSON ||= __PACKAGE__->new->utf8)->encode(@_)}sub decode_json {($JSON ||= __PACKAGE__->new->utf8)->decode(@_)}sub to_json($) {Carp::croak ("JSON::PP::to_json has been renamed to encode_json.")}sub from_json($) {Carp::croak ("JSON::PP::from_json has been renamed to decode_json.")}sub new {my$class=shift;my$self={max_depth=>512,max_size=>0,indent=>0,FLAGS=>0,fallback=>sub {encode_error('Invalid value. JSON can only reference.')},indent_length=>3,};bless$self,$class}sub encode {return $_[0]->PP_encode_json($_[1])}sub decode {return $_[0]->PP_decode_json($_[1],0x00000000)}sub decode_prefix {return $_[0]->PP_decode_json($_[1],0x00000001)}sub pretty {my ($self,$v)=@_;my$enable=defined$v ? $v : 1;if ($enable){$self->indent(1)->indent_length(3)->space_before(1)->space_after(1)}else {$self->indent(0)->space_before(0)->space_after(0)}$self}sub max_depth {my$max=defined $_[1]? $_[1]: 0x80000000;$_[0]->{max_depth}=$max;$_[0]}sub get_max_depth {$_[0]->{max_depth}}sub max_size {my$max=defined $_[1]? $_[1]: 0;$_[0]->{max_size}=$max;$_[0]}sub get_max_size {$_[0]->{max_size}}sub filter_json_object {$_[0]->{cb_object}=defined $_[1]? $_[1]: 0;$_[0]->{F_HOOK}=($_[0]->{cb_object}or $_[0]->{cb_sk_object})? 1 : 0;$_[0]}sub filter_json_single_key_object {if (@_ > 1){$_[0]->{cb_sk_object}->{$_[1]}=$_[2]}$_[0]->{F_HOOK}=($_[0]->{cb_object}or $_[0]->{cb_sk_object})? 1 : 0;$_[0]}sub indent_length {if (!defined $_[1]or $_[1]> 15 or $_[1]< 0){Carp::carp "The acceptable range of indent_length() is 0 to 15."}else {$_[0]->{indent_length}=$_[1]}$_[0]}sub get_indent_length {$_[0]->{indent_length}}sub sort_by {$_[0]->{sort_by}=defined $_[1]? $_[1]: 1;$_[0]}sub allow_bigint {Carp::carp("allow_bigint() is obsoleted. use allow_bignum() insted.")}{my$max_depth;my$indent;my$ascii;my$latin1;my$utf8;my$space_before;my$space_after;my$canonical;my$allow_blessed;my$convert_blessed;my$indent_length;my$escape_slash;my$bignum;my$as_nonblessed;my$depth;my$indent_count;my$keysort;sub PP_encode_json {my$self=shift;my$obj=shift;$indent_count=0;$depth=0;my$idx=$self->{PROPS};($ascii,$latin1,$utf8,$indent,$canonical,$space_before,$space_after,$allow_blessed,$convert_blessed,$escape_slash,$bignum,$as_nonblessed)=@{$idx}[P_ASCII .. P_SPACE_AFTER,P_ALLOW_BLESSED,P_CONVERT_BLESSED,P_ESCAPE_SLASH,P_ALLOW_BIGNUM,P_AS_NONBLESSED];($max_depth,$indent_length)=@{$self}{qw/max_depth indent_length/};$keysort=$canonical ? sub {$a cmp $b}: undef;if ($self->{sort_by}){$keysort=ref($self->{sort_by})eq 'CODE' ? $self->{sort_by}: $self->{sort_by}=~ /\D+/ ? $self->{sort_by}: sub {$a cmp $b}}encode_error("hash- or arrayref expected (not a simple scalar, use allow_nonref to allow this)")if(!ref$obj and!$idx->[P_ALLOW_NONREF ]);my$str=$self->object_to_json($obj);$str .= "\n" if ($indent);unless ($ascii or $latin1 or $utf8){utf8::upgrade($str)}if ($idx->[P_SHRINK ]){utf8::downgrade($str,1)}return$str}sub object_to_json {my ($self,$obj)=@_;my$type=ref($obj);if($type eq 'HASH'){return$self->hash_to_json($obj)}elsif($type eq 'ARRAY'){return$self->array_to_json($obj)}elsif ($type){if (blessed($obj)){return$self->value_to_json($obj)if ($obj->isa('JSON::PP::Boolean'));if ($convert_blessed and $obj->can('TO_JSON')){my$result=$obj->TO_JSON();if (defined$result and ref($result)){if (refaddr($obj)eq refaddr($result)){encode_error(sprintf("%s::TO_JSON method returned same object as was passed instead of a new one",ref$obj))}}return$self->object_to_json($result)}return "$obj" if ($bignum and _is_bignum($obj));return$self->blessed_to_json($obj)if ($allow_blessed and $as_nonblessed);encode_error(sprintf("encountered object '%s', but neither allow_blessed " ."nor convert_blessed settings are enabled",$obj))unless ($allow_blessed);return 'null'}else {return$self->value_to_json($obj)}}else{return$self->value_to_json($obj)}}sub hash_to_json {my ($self,$obj)=@_;my@res;encode_error("json text or perl structure exceeds maximum nesting level (max_depth set too low?)")if (++$depth > $max_depth);my ($pre,$post)=$indent ? $self->_up_indent(): ('','');my$del=($space_before ? ' ' : '').':' .($space_after ? ' ' : '');for my$k (_sort($obj)){if (OLD_PERL){utf8::decode($k)}push@res,string_to_json($self,$k).$del .($self->object_to_json($obj->{$k})|| $self->value_to_json($obj->{$k}))}--$depth;$self->_down_indent()if ($indent);return '{' .(@res ? $pre : '').(@res ? join(",$pre",@res).$post : '').'}'}sub array_to_json {my ($self,$obj)=@_;my@res;encode_error("json text or perl structure exceeds maximum nesting level (max_depth set too low?)")if (++$depth > $max_depth);my ($pre,$post)=$indent ? $self->_up_indent(): ('','');for my$v (@$obj){push@res,$self->object_to_json($v)|| $self->value_to_json($v)}--$depth;$self->_down_indent()if ($indent);return '[' .(@res ? $pre : '').(@res ? join(",$pre",@res).$post : '').']'}sub value_to_json {my ($self,$value)=@_;return 'null' if(!defined$value);my$b_obj=B::svref_2object(\$value);my$flags=$b_obj->FLAGS;return$value if$flags & (B::SVp_IOK | B::SVp_NOK)and!($flags & B::SVp_POK);my$type=ref($value);if(!$type){return string_to_json($self,$value)}elsif(blessed($value)and $value->isa('JSON::PP::Boolean')){return $$value==1 ? 'true' : 'false'}elsif ($type){if ((overload::StrVal($value)=~ /=(\w+)/)[0]){return$self->value_to_json("$value")}if ($type eq 'SCALAR' and defined $$value){return $$value eq '1' ? 'true' : $$value eq '0' ? 'false' : $self->{PROPS}->[P_ALLOW_UNKNOWN ]? 'null' : encode_error("cannot encode reference to scalar")}if ($self->{PROPS}->[P_ALLOW_UNKNOWN ]){return 'null'}else {if ($type eq 'SCALAR' or $type eq 'REF'){encode_error("cannot encode reference to scalar")}else {encode_error("encountered $value, but JSON can only represent references to arrays or hashes")}}}else {return$self->{fallback}->($value)if ($self->{fallback}and ref($self->{fallback})eq 'CODE');return 'null'}}my%esc=("\n"=>'\n',"\r"=>'\r',"\t"=>'\t',"\f"=>'\f',"\b"=>'\b',"\""=>'\"',"\\"=>'\\\\',"\'"=>'\\\'',);sub string_to_json {my ($self,$arg)=@_;$arg =~ s/([\x22\x5c\n\r\t\f\b])/$esc{$1}/g;$arg =~ s/\//\\\//g if ($escape_slash);$arg =~ s/([\x00-\x08\x0b\x0e-\x1f])/'\\u00' . unpack('H2', $1)/eg;if ($ascii){$arg=JSON_PP_encode_ascii($arg)}if ($latin1){$arg=JSON_PP_encode_latin1($arg)}if ($utf8){utf8::encode($arg)}return '"' .$arg .'"'}sub blessed_to_json {my$reftype=reftype($_[1])|| '';if ($reftype eq 'HASH'){return $_[0]->hash_to_json($_[1])}elsif ($reftype eq 'ARRAY'){return $_[0]->array_to_json($_[1])}else {return 'null'}}sub encode_error {my$error=shift;Carp::croak "$error"}sub _sort {defined$keysort ? (sort$keysort (keys %{$_[0]})): keys %{$_[0]}}sub _up_indent {my$self=shift;my$space=' ' x $indent_length;my ($pre,$post)=('','');$post="\n" .$space x $indent_count;$indent_count++;$pre="\n" .$space x $indent_count;return ($pre,$post)}sub _down_indent {$indent_count--}sub PP_encode_box {{depth=>$depth,indent_count=>$indent_count,}}}sub _encode_ascii {join('',map {$_ <= 127 ? chr($_): $_ <= 65535 ? sprintf('\u%04x',$_): sprintf('\u%x\u%x',_encode_surrogates($_))}unpack('U*',$_[0]))}sub _encode_latin1 {join('',map {$_ <= 255 ? chr($_): $_ <= 65535 ? sprintf('\u%04x',$_): sprintf('\u%x\u%x',_encode_surrogates($_))}unpack('U*',$_[0]))}sub _encode_surrogates {my$uni=$_[0]- 0x10000;return ($uni / 0x400 + 0xD800,$uni % 0x400 + 0xDC00)}sub _is_bignum {$_[0]->isa('Math::BigInt')or $_[0]->isa('Math::BigFloat')}my$max_intsize;BEGIN {my$checkint=1111;for my$d (5..64){$checkint .= 1;my$int=eval qq| $checkint |;if ($int =~ /[eE]/){$max_intsize=$d - 1;last}}}{my%escapes=(b=>"\x8",t=>"\x9",n=>"\xA",f=>"\xC",r=>"\xD",'\\'=>'\\','"'=>'"','/'=>'/',);my$text;my$at;my$ch;my$len;my$depth;my$encoding;my$is_valid_utf8;my$utf8_len;my$utf8;my$max_depth;my$max_size;my$relaxed;my$cb_object;my$cb_sk_object;my$F_HOOK;my$allow_bigint;my$singlequote;my$loose;my$allow_barekey;sub PP_decode_json {my ($self,$opt);($self,$text,$opt)=@_;($at,$ch,$depth)=(0,'',0);if (!defined$text or ref$text){decode_error("malformed JSON string, neither array, object, number, string or atom")}my$idx=$self->{PROPS};($utf8,$relaxed,$loose,$allow_bigint,$allow_barekey,$singlequote)=@{$idx}[P_UTF8,P_RELAXED,P_LOOSE .. P_ALLOW_SINGLEQUOTE];if ($utf8){utf8::downgrade($text,1)or Carp::croak("Wide character in subroutine entry")}else {utf8::upgrade($text);utf8::encode($text)}$len=length$text;($max_depth,$max_size,$cb_object,$cb_sk_object,$F_HOOK)=@{$self}{qw/max_depth max_size cb_object cb_sk_object F_HOOK/};if ($max_size > 1){use bytes;my$bytes=length$text;decode_error(sprintf("attempted decode of JSON text of %s bytes size, but max_size is set to %s" ,$bytes,$max_size),1)if ($bytes > $max_size)}my@octets=unpack('C4',$text);$encoding=($octets[0]and $octets[1])? 'UTF-8' : (!$octets[0]and $octets[1])? 'UTF-16BE' : (!$octets[0]and!$octets[1])? 'UTF-32BE' : ($octets[2])? 'UTF-16LE' : (!$octets[2])? 'UTF-32LE' : 'unknown';white();my$valid_start=defined$ch;my$result=value();return undef if (!$result && ($opt & 0x10000000));decode_error("malformed JSON string, neither array, object, number, string or atom")unless$valid_start;if (!$idx->[P_ALLOW_NONREF ]and!ref$result){decode_error('JSON text must be an object or array (but found number, string, true, false or null,' .' use allow_nonref to allow this)',1)}Carp::croak('something wrong.')if$len < $at;my$consumed=defined$ch ? $at - 1 : $at;white();if ($ch){return ($result,$consumed)if ($opt & 0x00000001);decode_error("garbage after JSON object")}($opt & 0x00000001)? ($result,$consumed): $result}sub next_chr {return$ch=undef if($at >= $len);$ch=substr($text,$at++,1)}sub value {white();return if(!defined$ch);return object()if($ch eq '{');return array()if($ch eq '[');return string()if($ch eq '"' or ($singlequote and $ch eq "'"));return number()if($ch =~ /[0-9]/ or $ch eq '-');return word()}sub string {my ($i,$s,$t,$u);my$utf16;my$is_utf8;($is_valid_utf8,$utf8_len)=('',0);$s='';if($ch eq '"' or ($singlequote and $ch eq "'")){my$boundChar=$ch;OUTER: while(defined(next_chr())){if($ch eq $boundChar){next_chr();if ($utf16){decode_error("missing low surrogate character in surrogate pair")}utf8::decode($s)if($is_utf8);return$s}elsif($ch eq '\\'){next_chr();if(exists$escapes{$ch}){$s .= $escapes{$ch}}elsif($ch eq 'u'){my$u='';for(1..4){$ch=next_chr();last OUTER if($ch !~ /[0-9a-fA-F]/);$u .= $ch}if ($u =~ /^[dD][89abAB][0-9a-fA-F]{2}/){$utf16=$u}elsif ($u =~ /^[dD][c-fC-F][0-9a-fA-F]{2}/){unless (defined$utf16){decode_error("missing high surrogate character in surrogate pair")}$is_utf8=1;$s .= JSON_PP_decode_surrogates($utf16,$u)|| next;$utf16=undef}else {if (defined$utf16){decode_error("surrogate pair expected")}if ((my$hex=hex($u))> 127){$is_utf8=1;$s .= JSON_PP_decode_unicode($u)|| next}else {$s .= chr$hex}}}else{unless ($loose){$at -= 2;decode_error('illegal backslash escape sequence in string')}$s .= $ch}}else{if (ord$ch > 127){unless($ch=is_valid_utf8($ch)){$at -= 1;decode_error("malformed UTF-8 character in JSON string")}else {$at += $utf8_len - 1}$is_utf8=1}if (!$loose){if ($ch =~ /[\x00-\x1f\x22\x5c]/){$at--;decode_error('invalid character encountered while parsing JSON string')}}$s .= $ch}}}decode_error("unexpected end of string while parsing JSON string")}sub white {while(defined$ch){if($ch le ' '){next_chr()}elsif($ch eq '/'){next_chr();if(defined$ch and $ch eq '/'){1 while(defined(next_chr())and $ch ne "\n" and $ch ne "\r")}elsif(defined$ch and $ch eq '*'){next_chr();while(1){if(defined$ch){if($ch eq '*'){if(defined(next_chr())and $ch eq '/'){next_chr();last}}else{next_chr()}}else{decode_error("Unterminated comment")}}next}else{$at--;decode_error("malformed JSON string, neither array, object, number, string or atom")}}else{if ($relaxed and $ch eq '#'){pos($text)=$at;$text =~ /\G([^\n]*(?:\r\n|\r|\n|$))/g;$at=pos($text);next_chr;next}last}}}sub array {my$a=$_[0]|| [];decode_error('json text or perl structure exceeds maximum nesting level (max_depth set too low?)')if (++$depth > $max_depth);next_chr();white();if(defined$ch and $ch eq ']'){--$depth;next_chr();return$a}else {while(defined($ch)){push @$a,value();white();if (!defined$ch){last}if($ch eq ']'){--$depth;next_chr();return$a}if($ch ne ','){last}next_chr();white();if ($relaxed and $ch eq ']'){--$depth;next_chr();return$a}}}decode_error(", or ] expected while parsing array")}sub object {my$o=$_[0]|| {};my$k;decode_error('json text or perl structure exceeds maximum nesting level (max_depth set too low?)')if (++$depth > $max_depth);next_chr();white();if(defined$ch and $ch eq '}'){--$depth;next_chr();if ($F_HOOK){return _json_object_hook($o)}return$o}else {while (defined$ch){$k=($allow_barekey and $ch ne '"' and $ch ne "'")? bareKey(): string();white();if(!defined$ch or $ch ne ':'){$at--;decode_error("':' expected")}next_chr();$o->{$k}=value();white();last if (!defined$ch);if($ch eq '}'){--$depth;next_chr();if ($F_HOOK){return _json_object_hook($o)}return$o}if($ch ne ','){last}next_chr();white();if ($relaxed and $ch eq '}'){--$depth;next_chr();if ($F_HOOK){return _json_object_hook($o)}return$o}}}$at--;decode_error(", or } expected while parsing object/hash")}sub bareKey {my$key;while($ch =~ /[^\x00-\x23\x25-\x2F\x3A-\x40\x5B-\x5E\x60\x7B-\x7F]/){$key .= $ch;next_chr()}return$key}sub word {my$word=substr($text,$at-1,4);if($word eq 'true'){$at += 3;next_chr;return$JSON::PP::true}elsif($word eq 'null'){$at += 3;next_chr;return undef}elsif($word eq 'fals'){$at += 3;if(substr($text,$at,1)eq 'e'){$at++;next_chr;return$JSON::PP::false}}$at--;decode_error("'null' expected")if ($word =~ /^n/);decode_error("'true' expected")if ($word =~ /^t/);decode_error("'false' expected")if ($word =~ /^f/);decode_error("malformed JSON string, neither array, object, number, string or atom")}sub number {my$n='';my$v;if($ch eq '0'){my$peek=substr($text,$at,1);my$hex=$peek =~ /[xX]/;if($hex){decode_error("malformed number (leading zero must not be followed by another digit)");($n)=(substr($text,$at+1)=~ /^([0-9a-fA-F]+)/)}else{($n)=(substr($text,$at)=~ /^([0-7]+)/);if (defined$n and length$n > 1){decode_error("malformed number (leading zero must not be followed by another digit)")}}if(defined$n and length($n)){if (!$hex and length($n)==1){decode_error("malformed number (leading zero must not be followed by another digit)")}$at += length($n)+ $hex;next_chr;return$hex ? hex($n): oct($n)}}if($ch eq '-'){$n='-';next_chr;if (!defined$ch or $ch !~ /\d/){decode_error("malformed number (no digits after initial minus)")}}while(defined$ch and $ch =~ /\d/){$n .= $ch;next_chr}if(defined$ch and $ch eq '.'){$n .= '.';next_chr;if (!defined$ch or $ch !~ /\d/){decode_error("malformed number (no digits after decimal point)")}else {$n .= $ch}while(defined(next_chr)and $ch =~ /\d/){$n .= $ch}}if(defined$ch and ($ch eq 'e' or $ch eq 'E')){$n .= $ch;next_chr;if(defined($ch)and ($ch eq '+' or $ch eq '-')){$n .= $ch;next_chr;if (!defined$ch or $ch =~ /\D/){decode_error("malformed number (no digits after exp sign)")}$n .= $ch}elsif(defined($ch)and $ch =~ /\d/){$n .= $ch}else {decode_error("malformed number (no digits after exp sign)")}while(defined(next_chr)and $ch =~ /\d/){$n .= $ch}}$v .= $n;if ($v !~ /[.eE]/ and length$v > $max_intsize){if ($allow_bigint){require Math::BigInt;return Math::BigInt->new($v)}else {return "$v"}}elsif ($allow_bigint){require Math::BigFloat;return Math::BigFloat->new($v)}return 0+$v}sub is_valid_utf8 {$utf8_len=$_[0]=~ /[\x00-\x7F]/ ? 1 : $_[0]=~ /[\xC2-\xDF]/ ? 2 : $_[0]=~ /[\xE0-\xEF]/ ? 3 : $_[0]=~ /[\xF0-\xF4]/ ? 4 : 0 ;return unless$utf8_len;my$is_valid_utf8=substr($text,$at - 1,$utf8_len);return ($is_valid_utf8 =~ /^(?: + [\x00-\x7F] + |[\xC2-\xDF][\x80-\xBF] + |[\xE0][\xA0-\xBF][\x80-\xBF] + |[\xE1-\xEC][\x80-\xBF][\x80-\xBF] + |[\xED][\x80-\x9F][\x80-\xBF] + |[\xEE-\xEF][\x80-\xBF][\x80-\xBF] + |[\xF0][\x90-\xBF][\x80-\xBF][\x80-\xBF] + |[\xF1-\xF3][\x80-\xBF][\x80-\xBF][\x80-\xBF] + |[\xF4][\x80-\x8F][\x80-\xBF][\x80-\xBF] + )$/x)? $is_valid_utf8 : ''}sub decode_error {my$error=shift;my$no_rep=shift;my$str=defined$text ? substr($text,$at): '';my$mess='';my$type=$] >= 5.008 ? 'U*' : $] < 5.006 ? 'C*' : utf8::is_utf8($str)? 'U*' : 'C*' ;for my$c (unpack($type,$str)){$mess .= $c==0x07 ? '\a' : $c==0x09 ? '\t' : $c==0x0a ? '\n' : $c==0x0d ? '\r' : $c==0x0c ? '\f' : $c < 0x20 ? sprintf('\x{%x}',$c): $c==0x5c ? '\\\\' : $c < 0x80 ? chr($c): sprintf('\x{%x}',$c);if (length$mess >= 20){$mess .= '...';last}}unless (length$mess){$mess='(end of string)'}Carp::croak ($no_rep ? "$error" : "$error, at character offset $at (before \"$mess\")")}sub _json_object_hook {my$o=$_[0];my@ks=keys %{$o};if ($cb_sk_object and @ks==1 and exists$cb_sk_object->{$ks[0]}and ref$cb_sk_object->{$ks[0]}){my@val=$cb_sk_object->{$ks[0]}->($o->{$ks[0]});if (@val==1){return$val[0]}}my@val=$cb_object->($o)if ($cb_object);if (@val==0 or @val > 1){return$o}else {return$val[0]}}sub PP_decode_box {{text=>$text,at=>$at,ch=>$ch,len=>$len,depth=>$depth,encoding=>$encoding,is_valid_utf8=>$is_valid_utf8,}}}sub _decode_surrogates {my$uni=0x10000 + (hex($_[0])- 0xD800)* 0x400 + (hex($_[1])- 0xDC00);my$un=pack('U*',$uni);utf8::encode($un);return$un}sub _decode_unicode {my$un=pack('U',hex shift);utf8::encode($un);return$un}BEGIN {unless (defined&utf8::is_utf8){require Encode;*utf8::is_utf8=*Encode::is_utf8}if ($] >= 5.008){*JSON::PP::JSON_PP_encode_ascii=\&_encode_ascii;*JSON::PP::JSON_PP_encode_latin1=\&_encode_latin1;*JSON::PP::JSON_PP_decode_surrogates=\&_decode_surrogates;*JSON::PP::JSON_PP_decode_unicode=\&_decode_unicode}if ($] >= 5.008 and $] < 5.008003){package JSON::PP;require subs;subs->import('join');eval q| + sub join { + return '' if (@_ < 2); + my $j = shift; + my $str = shift; + for (@_) { $str .= $j . $_; } + return $str; + } + |}sub JSON::PP::incr_parse {local$Carp::CarpLevel=1;($_[0]->{_incr_parser}||= JSON::PP::IncrParser->new)->incr_parse(@_)}sub JSON::PP::incr_skip {($_[0]->{_incr_parser}||= JSON::PP::IncrParser->new)->incr_skip}sub JSON::PP::incr_reset {($_[0]->{_incr_parser}||= JSON::PP::IncrParser->new)->incr_reset}eval q{ + sub JSON::PP::incr_text : lvalue { + $_[0]->{_incr_parser} ||= JSON::PP::IncrParser->new; + + if ( $_[0]->{_incr_parser}->{incr_parsing} ) { + Carp::croak("incr_text can not be called when the incremental parser already started parsing"); + } + $_[0]->{_incr_parser}->{incr_text}; + } + } if ($] >= 5.006)}BEGIN {eval 'require Scalar::Util';unless($@){*JSON::PP::blessed=\&Scalar::Util::blessed;*JSON::PP::reftype=\&Scalar::Util::reftype;*JSON::PP::refaddr=\&Scalar::Util::refaddr}else{eval 'sub UNIVERSAL::a_sub_not_likely_to_be_here { ref($_[0]) }';*JSON::PP::blessed=sub {local($@,$SIG{__DIE__},$SIG{__WARN__});ref($_[0])? eval {$_[0]->a_sub_not_likely_to_be_here}: undef};my%tmap=qw(B::NULL SCALAR B::HV HASH B::AV ARRAY B::CV CODE B::IO IO B::GV GLOB B::REGEXP REGEXP);*JSON::PP::reftype=sub {my$r=shift;return undef unless length(ref($r));my$t=ref(B::svref_2object($r));return exists$tmap{$t}? $tmap{$t}: length(ref($$r))? 'REF' : 'SCALAR'};*JSON::PP::refaddr=sub {return undef unless length(ref($_[0]));my$addr;if(defined(my$pkg=blessed($_[0]))){$addr .= bless $_[0],'Scalar::Util::Fake';bless $_[0],$pkg}else {$addr .= $_[0]}$addr =~ /0x(\w+)/;local $^W;hex($1)}}}$JSON::PP::true=do {bless \(my$dummy=1),"JSON::PP::Boolean"};$JSON::PP::false=do {bless \(my$dummy=0),"JSON::PP::Boolean"};sub is_bool {defined $_[0]and UNIVERSAL::isa($_[0],"JSON::PP::Boolean")}sub true {$JSON::PP::true}sub false {$JSON::PP::false}sub null {undef}package JSON::PP::Boolean;use overload ("0+"=>sub {${$_[0]}},"++"=>sub {$_[0]=${$_[0]}+ 1},"--"=>sub {$_[0]=${$_[0]}- 1},fallback=>1,);package JSON::PP::IncrParser;use strict;use constant INCR_M_WS=>0;use constant INCR_M_STR=>1;use constant INCR_M_BS=>2;use constant INCR_M_JSON=>3;use constant INCR_M_C0=>4;use constant INCR_M_C1=>5;$JSON::PP::IncrParser::VERSION='1.01';my$unpack_format=$] < 5.006 ? 'C*' : 'U*';sub new {my ($class)=@_;bless {incr_nest=>0,incr_text=>undef,incr_parsing=>0,incr_p=>0,},$class}sub incr_parse {my ($self,$coder,$text)=@_;$self->{incr_text}='' unless (defined$self->{incr_text});if (defined$text){if (utf8::is_utf8($text)and!utf8::is_utf8($self->{incr_text})){utf8::upgrade($self->{incr_text});utf8::decode($self->{incr_text})}$self->{incr_text}.= $text}my$max_size=$coder->get_max_size;if (defined wantarray){$self->{incr_mode}=INCR_M_WS unless defined$self->{incr_mode};if (wantarray){my@ret;$self->{incr_parsing}=1;do {push@ret,$self->_incr_parse($coder,$self->{incr_text});unless (!$self->{incr_nest}and $self->{incr_mode}==INCR_M_JSON){$self->{incr_mode}=INCR_M_WS if$self->{incr_mode}!=INCR_M_STR}}until (length$self->{incr_text}>= $self->{incr_p});$self->{incr_parsing}=0;return@ret}else {$self->{incr_parsing}=1;my$obj=$self->_incr_parse($coder,$self->{incr_text});$self->{incr_parsing}=0 if defined$obj;return$obj ? $obj : undef}}}sub _incr_parse {my ($self,$coder,$text,$skip)=@_;my$p=$self->{incr_p};my$restore=$p;my@obj;my$len=length$text;if ($self->{incr_mode}==INCR_M_WS){while ($len > $p){my$s=substr($text,$p,1);$p++ and next if (0x20 >= unpack($unpack_format,$s));$self->{incr_mode}=INCR_M_JSON;last}}while ($len > $p){my$s=substr($text,$p++,1);if ($s eq '"'){if (substr($text,$p - 2,1)eq '\\'){next}if ($self->{incr_mode}!=INCR_M_STR){$self->{incr_mode}=INCR_M_STR}else {$self->{incr_mode}=INCR_M_JSON;unless ($self->{incr_nest}){last}}}if ($self->{incr_mode}==INCR_M_JSON){if ($s eq '[' or $s eq '{'){if (++$self->{incr_nest}> $coder->get_max_depth){Carp::croak('json text or perl structure exceeds maximum nesting level (max_depth set too low?)')}}elsif ($s eq ']' or $s eq '}'){last if (--$self->{incr_nest}<= 0)}elsif ($s eq '#'){while ($len > $p){last if substr($text,$p++,1)eq "\n"}}}}$self->{incr_p}=$p;return if ($self->{incr_mode}==INCR_M_STR and not $self->{incr_nest});return if ($self->{incr_mode}==INCR_M_JSON and $self->{incr_nest}> 0);return '' unless (length substr($self->{incr_text},0,$p));local$Carp::CarpLevel=2;$self->{incr_p}=$restore;$self->{incr_c}=$p;my ($obj,$tail)=$coder->PP_decode_json(substr($self->{incr_text},0,$p),0x10000001);$self->{incr_text}=substr($self->{incr_text},$p);$self->{incr_p}=0;return$obj || ''}sub incr_text {if ($_[0]->{incr_parsing}){Carp::croak("incr_text can not be called when the incremental parser already started parsing")}$_[0]->{incr_text}}sub incr_skip {my$self=shift;$self->{incr_text}=substr($self->{incr_text},$self->{incr_c});$self->{incr_p}=0}sub incr_reset {my$self=shift;$self->{incr_text}=undef;$self->{incr_p}=0;$self->{incr_mode}=0;$self->{incr_nest}=0;$self->{incr_parsing}=0}1; +JSON_PP + +$fatpacked{"JSON/PP/Boolean.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'JSON_PP_BOOLEAN'; + use JSON::PP ();use strict;1; +JSON_PP_BOOLEAN + +$fatpacked{"Module/CPANfile.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'MODULE_CPANFILE'; + package Module::CPANfile;use strict;use warnings;use Cwd;use Carp ();use Module::CPANfile::Environment;use Module::CPANfile::Requirement;our$VERSION='1.1000';sub new {my($class,$file)=@_;bless {},$class}sub load {my($proto,$file)=@_;my$self=ref$proto ? $proto : $proto->new;$self->parse($file || Cwd::abs_path('cpanfile'));$self}sub save {my($self,$path)=@_;open my$out,">",$path or die "$path: $!";print {$out}$self->to_string}sub parse {my($self,$file)=@_;my$code=do {open my$fh,"<",$file or die "$file: $!";join '',<$fh>};my$env=Module::CPANfile::Environment->new($file);$env->parse($code)or die $@;$self->{_mirrors}=$env->mirrors;$self->{_prereqs}=$env->prereqs}sub from_prereqs {my($proto,$prereqs)=@_;my$self=$proto->new;$self->{_prereqs}=Module::CPANfile::Prereqs->from_cpan_meta($prereqs);$self}sub mirrors {my$self=shift;$self->{_mirrors}|| []}sub features {my$self=shift;map$self->feature($_),$self->{_prereqs}->identifiers}sub feature {my($self,$identifier)=@_;$self->{_prereqs}->feature($identifier)}sub prereq {shift->prereqs}sub prereqs {my$self=shift;$self->{_prereqs}->as_cpan_meta}sub merged_requirements {my$self=shift;$self->{_prereqs}->merged_requirements}sub effective_prereqs {my($self,$features)=@_;$self->prereqs_with(@{$features || []})}sub prereqs_with {my($self,@feature_identifiers)=@_;my$prereqs=$self->prereqs;my@others=map {$self->feature($_)->prereqs}@feature_identifiers;$prereqs->with_merged_prereqs(\@others)}sub prereq_specs {my$self=shift;$self->prereqs->as_string_hash}sub prereq_for_module {my($self,$module)=@_;$self->{_prereqs}->find($module)}sub options_for_module {my($self,$module)=@_;my$prereq=$self->prereq_for_module($module)or return;$prereq->requirement->options}sub merge_meta {my($self,$file,$version)=@_;require CPAN::Meta;$version ||= $file =~ /\.yml$/ ? '1.4' : '2';my$prereq=$self->prereqs;my$meta=CPAN::Meta->load_file($file);my$prereqs_hash=$prereq->with_merged_prereqs($meta->effective_prereqs)->as_string_hash;my$struct={%{$meta->as_struct},prereqs=>$prereqs_hash };CPAN::Meta->new($struct)->save($file,{version=>$version })}sub _dump {my$str=shift;require Data::Dumper;chomp(my$value=Data::Dumper->new([$str])->Terse(1)->Dump);$value}sub to_string {my($self,$include_empty)=@_;my$mirrors=$self->mirrors;my$prereqs=$self->prereq_specs;my$code='';$code .= $self->_dump_mirrors($mirrors);$code .= $self->_dump_prereqs($prereqs,$include_empty);for my$feature ($self->features){$code .= sprintf "feature %s, %s => sub {\n",_dump($feature->{identifier}),_dump($feature->{description});$code .= $self->_dump_prereqs($feature->{spec},$include_empty,4);$code .= "}\n\n"}$code =~ s/\n+$/\n/s;$code}sub _dump_mirrors {my($self,$mirrors)=@_;my$code="";for my$url (@$mirrors){$code .= "mirror '$url';\n"}$code =~ s/\n+$/\n/s;$code}sub _dump_prereqs {my($self,$prereqs,$include_empty,$base_indent)=@_;my$code='';for my$phase (qw(runtime configure build test develop)){my$indent=$phase eq 'runtime' ? '' : ' ';$indent=(' ' x ($base_indent || 0)).$indent;my($phase_code,$requirements);$phase_code .= "on $phase => sub {\n" unless$phase eq 'runtime';for my$type (qw(requires recommends suggests conflicts)){for my$mod (sort keys %{$prereqs->{$phase}{$type}}){my$ver=$prereqs->{$phase}{$type}{$mod};$phase_code .= $ver eq '0' ? "${indent}$type '$mod';\n" : "${indent}$type '$mod', '$ver';\n";$requirements++}}$phase_code .= "\n" unless$requirements;$phase_code .= "};\n" unless$phase eq 'runtime';$code .= $phase_code ."\n" if$requirements or $include_empty}$code =~ s/\n+$/\n/s;$code}1; +MODULE_CPANFILE + +$fatpacked{"Module/CPANfile/Environment.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'MODULE_CPANFILE_ENVIRONMENT'; + package Module::CPANfile::Environment;use strict;use warnings;use Module::CPANfile::Prereqs;use Carp ();my@bindings=qw(on requires recommends suggests conflicts feature osname mirror configure_requires build_requires test_requires author_requires);my$file_id=1;sub new {my($class,$file)=@_;bless {file=>$file,phase=>'runtime',feature=>undef,features=>{},prereqs=>Module::CPANfile::Prereqs->new,mirrors=>[],},$class}sub bind {my$self=shift;my$pkg=caller;for my$binding (@bindings){no strict 'refs';*{"$pkg\::$binding"}=sub {$self->$binding(@_)}}}sub parse {my($self,$code)=@_;my$err;{local $@;$file_id++;$self->_evaluate(<{file} failed: $err"};return 1}sub _evaluate {my$_environment=$_[0];eval $_[1]}sub prereqs {$_[0]->{prereqs}}sub mirrors {$_[0]->{mirrors}}sub on {my($self,$phase,$code)=@_;local$self->{phase}=$phase;$code->()}sub feature {my($self,$identifier,$description,$code)=@_;if (@_==3 && ref($description)eq 'CODE'){$code=$description;$description=$identifier}unless (ref$description eq '' && ref$code eq 'CODE'){Carp::croak("Usage: feature 'identifier', 'Description' => sub { ... }")}local$self->{feature}=$identifier;$self->prereqs->add_feature($identifier,$description);$code->()}sub osname {die "TODO"}sub mirror {my($self,$url)=@_;push @{$self->{mirrors}},$url}sub requirement_for {my($self,$module,@args)=@_;my$requirement=0;$requirement=shift@args if@args % 2;return Module::CPANfile::Requirement->new(name=>$module,version=>$requirement,@args,)}sub requires {my$self=shift;$self->add_prereq(requires=>@_)}sub recommends {my$self=shift;$self->add_prereq(recommends=>@_)}sub suggests {my$self=shift;$self->add_prereq(suggests=>@_)}sub conflicts {my$self=shift;$self->add_prereq(conflicts=>@_)}sub add_prereq {my($self,$type,$module,@args)=@_;$self->prereqs->add_prereq(feature=>$self->{feature},phase=>$self->{phase},type=>$type,module=>$module,requirement=>$self->requirement_for($module,@args),)}sub configure_requires {my($self,@args)=@_;$self->on(configure=>sub {$self->requires(@args)})}sub build_requires {my($self,@args)=@_;$self->on(build=>sub {$self->requires(@args)})}sub test_requires {my($self,@args)=@_;$self->on(test=>sub {$self->requires(@args)})}sub author_requires {my($self,@args)=@_;$self->on(develop=>sub {$self->requires(@args)})}1; + package Module::CPANfile::Sandbox$file_id; + no warnings; + BEGIN { \$_environment->bind } + + # line 1 "$self->{file}" + $code; + EVAL +MODULE_CPANFILE_ENVIRONMENT + +$fatpacked{"Module/CPANfile/Prereq.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'MODULE_CPANFILE_PREREQ'; + package Module::CPANfile::Prereq;use strict;sub new {my($class,%options)=@_;bless \%options,$class}sub feature {$_[0]->{feature}}sub phase {$_[0]->{phase}}sub type {$_[0]->{type}}sub module {$_[0]->{module}}sub requirement {$_[0]->{requirement}}sub match_feature {my($self,$identifier)=@_;no warnings 'uninitialized';$self->feature eq $identifier}1; +MODULE_CPANFILE_PREREQ + +$fatpacked{"Module/CPANfile/Prereqs.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'MODULE_CPANFILE_PREREQS'; + package Module::CPANfile::Prereqs;use strict;use Carp ();use CPAN::Meta::Feature;use Module::CPANfile::Prereq;sub from_cpan_meta {my($class,$prereqs)=@_;my$self=$class->new;for my$phase (keys %$prereqs){for my$type (keys %{$prereqs->{$phase}}){while (my($module,$requirement)=each %{$prereqs->{$phase}{$type}}){$self->add_prereq(phase=>$phase,type=>$type,module=>$module,requirement=>Module::CPANfile::Requirement->new(name=>$module,version=>$requirement),)}}}$self}sub new {my$class=shift;bless {prereqs=>[],features=>{},},$class}sub add_feature {my($self,$identifier,$description)=@_;$self->{features}{$identifier}={description=>$description }}sub add_prereq {my($self,%args)=@_;$self->add(Module::CPANfile::Prereq->new(%args))}sub add {my($self,$prereq)=@_;push @{$self->{prereqs}},$prereq}sub as_cpan_meta {my$self=shift;$self->{cpanmeta}||= $self->build_cpan_meta}sub build_cpan_meta {my($self,$identifier)=@_;my$prereq_spec={};$self->prereq_each($identifier,sub {my$prereq=shift;$prereq_spec->{$prereq->phase}{$prereq->type}{$prereq->module}=$prereq->requirement->version});CPAN::Meta::Prereqs->new($prereq_spec)}sub prereq_each {my($self,$identifier,$code)=@_;for my$prereq (@{$self->{prereqs}}){next unless$prereq->match_feature($identifier);$code->($prereq)}}sub merged_requirements {my$self=shift;my$reqs=CPAN::Meta::Requirements->new;for my$prereq (@{$self->{prereqs}}){$reqs->add_string_requirement($prereq->module,$prereq->requirement->version)}$reqs}sub find {my($self,$module)=@_;for my$prereq (@{$self->{prereqs}}){return$prereq if$prereq->module eq $module}return}sub identifiers {my$self=shift;keys %{$self->{features}}}sub feature {my($self,$identifier)=@_;my$data=$self->{features}{$identifier}or Carp::croak("Unknown feature '$identifier'");my$prereqs=$self->build_cpan_meta($identifier);CPAN::Meta::Feature->new($identifier,{description=>$data->{description},prereqs=>$prereqs->as_string_hash,})}1; +MODULE_CPANFILE_PREREQS + +$fatpacked{"Module/CPANfile/Requirement.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'MODULE_CPANFILE_REQUIREMENT'; + package Module::CPANfile::Requirement;use strict;sub new {my ($class,%args)=@_;$args{version}||= 0;bless +{name=>delete$args{name},version=>delete$args{version},options=>\%args,},$class}sub name {$_[0]->{name}}sub version {$_[0]->{version}}sub options {$_[0]->{options}}sub has_options {keys %{$_[0]->{options}}> 0}1; +MODULE_CPANFILE_REQUIREMENT + +$fatpacked{"Module/Metadata.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'MODULE_METADATA'; + package Module::Metadata;sub __clean_eval {eval $_[0]}use strict;use warnings;our$VERSION='1.000027';use Carp qw/croak/;use File::Spec;BEGIN {eval {require Fcntl;Fcntl->import('SEEK_SET');1}or *SEEK_SET=sub {0}}use version 0.87;BEGIN {if ($INC{'Log/Contextual.pm'}){require "Log/Contextual/WarnLogger.pm";Log::Contextual->import('log_info','-default_logger'=>Log::Contextual::WarnLogger->new({env_prefix=>'MODULE_METADATA',}),)}else {*log_info=sub (&) {warn $_[0]->()}}}use File::Find qw(find);my$V_NUM_REGEXP=qr{v?[0-9._]+};my$PKG_FIRST_WORD_REGEXP=qr{ # the FIRST word in a package name + [a-zA-Z_] # the first word CANNOT start with a digit + (?: + [\w']? # can contain letters, digits, _, or ticks + \w # But, NO multi-ticks or trailing ticks + )* + }x;my$PKG_ADDL_WORD_REGEXP=qr{ # the 2nd+ word in a package name + \w # the 2nd+ word CAN start with digits + (?: + [\w']? # and can contain letters or ticks + \w # But, NO multi-ticks or trailing ticks + )* + }x;my$PKG_NAME_REGEXP=qr{ # match a package name + (?: :: )? # a pkg name can start with arisdottle + $PKG_FIRST_WORD_REGEXP # a package word + (?: + (?: :: )+ ### arisdottle (allow one or many times) + $PKG_ADDL_WORD_REGEXP ### a package word + )* # ^ zero, one or many times + (?: + :: # allow trailing arisdottle + )? + }x;my$PKG_REGEXP=qr{ # match a package declaration + ^[\s\{;]* # intro chars on a line + package # the word 'package' + \s+ # whitespace + ($PKG_NAME_REGEXP) # a package name + \s* # optional whitespace + ($V_NUM_REGEXP)? # optional version number + \s* # optional whitesapce + [;\{] # semicolon line terminator or block start (since 5.16) + }x;my$VARNAME_REGEXP=qr{ # match fully-qualified VERSION name + ([\$*]) # sigil - $ or * + ( + ( # optional leading package name + (?:::|\')? # possibly starting like just :: (a la $::VERSION) + (?:\w+(?:::|\'))* # Foo::Bar:: ... + )? + VERSION + )\b + }x;my$VERS_REGEXP=qr{ # match a VERSION definition + (?: + \(\s*$VARNAME_REGEXP\s*\) # with parens + | + $VARNAME_REGEXP # without parens + ) + \s* + =[^=~>] # = but not ==, nor =~, nor => + }x;sub new_from_file {my$class=shift;my$filename=File::Spec->rel2abs(shift);return undef unless defined($filename)&& -f $filename;return$class->_init(undef,$filename,@_)}sub new_from_handle {my$class=shift;my$handle=shift;my$filename=shift;return undef unless defined($handle)&& defined($filename);$filename=File::Spec->rel2abs($filename);return$class->_init(undef,$filename,@_,handle=>$handle)}sub new_from_module {my$class=shift;my$module=shift;my%props=@_;$props{inc}||= \@INC;my$filename=$class->find_module_by_name($module,$props{inc});return undef unless defined($filename)&& -f $filename;return$class->_init($module,$filename,%props)}{my$compare_versions=sub {my ($v1,$op,$v2)=@_;$v1=version->new($v1)unless UNIVERSAL::isa($v1,'version');my$eval_str="\$v1 $op \$v2";my$result=eval$eval_str;log_info {"error comparing versions: '$eval_str' $@"}if $@;return$result};my$normalize_version=sub {my ($version)=@_;if ($version =~ /[=<>!,]/){}elsif (ref$version eq 'version'){$version=$version->is_qv ? $version->normal : $version->stringify}elsif ($version =~ /^[^v][^.]*\.[^.]+\./){$version="v$version"}else {}return$version};my$resolve_module_versions=sub {my$packages=shift;my($file,$version);my$err='';for my$p (@$packages){if (defined($p->{version})){if (defined($version)){if ($compare_versions->($version,'!=',$p->{version})){$err .= " $p->{file} ($p->{version})\n"}else {}}else {$file=$p->{file};$version=$p->{version}}}$file ||= $p->{file}if defined($p->{file})}if ($err){$err=" $file ($version)\n" .$err}my%result=(file=>$file,version=>$version,err=>$err);return \%result};sub provides {my$class=shift;croak "provides() requires key/value pairs \n" if @_ % 2;my%args=@_;croak "provides() takes only one of 'dir' or 'files'\n" if$args{dir}&& $args{files};croak "provides() requires a 'version' argument" unless defined$args{version};croak "provides() does not support version '$args{version}' metadata" unless grep {$args{version}eq $_}qw/1.4 2/;$args{prefix}='lib' unless defined$args{prefix};my$p;if ($args{dir}){$p=$class->package_versions_from_directory($args{dir})}else {croak "provides() requires 'files' to be an array reference\n" unless ref$args{files}eq 'ARRAY';$p=$class->package_versions_from_directory($args{files})}if (length$args{prefix}){$args{prefix}=~ s{/$}{};for my$v (values %$p){$v->{file}="$args{prefix}/$v->{file}"}}return$p}sub package_versions_from_directory {my ($class,$dir,$files)=@_;my@files;if ($files){@files=@$files}else {find({wanted=>sub {push@files,$_ if -f $_ && /\.pm$/},no_chdir=>1,},$dir)}my(%prime,%alt);for my$file (@files){my$mapped_filename=File::Spec::Unix->abs2rel($file,$dir);my@path=split(/\//,$mapped_filename);(my$prime_package=join('::',@path))=~ s/\.pm$//;my$pm_info=$class->new_from_file($file);for my$package ($pm_info->packages_inside){next if$package eq 'main';next if$package eq 'DB';next if grep /^_/,split(/::/,$package);my$version=$pm_info->version($package);$prime_package=$package if lc($prime_package)eq lc($package);if ($package eq $prime_package){if (exists($prime{$package})){croak "Unexpected conflict in '$package'; multiple versions found.\n"}else {$mapped_filename="$package.pm" if lc("$package.pm")eq lc($mapped_filename);$prime{$package}{file}=$mapped_filename;$prime{$package}{version}=$version if defined($version)}}else {push(@{$alt{$package}},{file=>$mapped_filename,version=>$version,})}}}for my$package (keys(%alt)){my$result=$resolve_module_versions->($alt{$package});if (exists($prime{$package})){if ($result->{err}){log_info {"Found conflicting versions for package '$package'\n" ." $prime{$package}{file} ($prime{$package}{version})\n" .$result->{err}}}elsif (defined($result->{version})){if (exists($prime{$package}{version})&& defined($prime{$package}{version})){if ($compare_versions->($prime{$package}{version},'!=',$result->{version})){log_info {"Found conflicting versions for package '$package'\n" ." $prime{$package}{file} ($prime{$package}{version})\n" ." $result->{file} ($result->{version})\n"}}}else {$prime{$package}{file}=$result->{file};$prime{$package}{version}=$result->{version}}}else {}}else {if ($result->{err}){log_info {"Found conflicting versions for package '$package'\n" .$result->{err}}}$prime{$package}{file}=$result->{file};$prime{$package}{version}=$result->{version}if defined($result->{version})}}for (grep defined $_->{version},values%prime){$_->{version}=$normalize_version->($_->{version})}return \%prime}}sub _init {my$class=shift;my$module=shift;my$filename=shift;my%props=@_;my$handle=delete$props{handle};my(%valid_props,@valid_props);@valid_props=qw(collect_pod inc);@valid_props{@valid_props}=delete(@props{@valid_props});warn "Unknown properties: @{[keys %props]}\n" if scalar(%props);my%data=(module=>$module,filename=>$filename,version=>undef,packages=>[],versions=>{},pod=>{},pod_headings=>[],collect_pod=>0,%valid_props,);my$self=bless(\%data,$class);if (not $handle){my$filename=$self->{filename};open$handle,'<',$filename or croak("Can't open '$filename': $!");$self->_handle_bom($handle,$filename)}$self->_parse_fh($handle);unless($self->{module}and length($self->{module})){my ($v,$d,$f)=File::Spec->splitpath($self->{filename});if($f =~ /\.pm$/){$f =~ s/\..+$//;my@candidates=grep /$f$/,@{$self->{packages}};$self->{module}=shift(@candidates)}else {if(grep /main/,@{$self->{packages}}){$self->{module}='main'}else {$self->{module}=$self->{packages}[0]|| ''}}}$self->{version}=$self->{versions}{$self->{module}}if defined($self->{module});return$self}sub _do_find_module {my$class=shift;my$module=shift || croak 'find_module_by_name() requires a package name';my$dirs=shift || \@INC;my$file=File::Spec->catfile(split(/::/,$module));for my$dir (@$dirs){my$testfile=File::Spec->catfile($dir,$file);return [File::Spec->rel2abs($testfile),$dir ]if -e $testfile and!-d _;$testfile .= '.pm';return [File::Spec->rel2abs($testfile),$dir ]if -e $testfile}return}sub find_module_by_name {my$found=shift()->_do_find_module(@_)or return;return$found->[0]}sub find_module_dir_by_name {my$found=shift()->_do_find_module(@_)or return;return$found->[1]}sub _parse_version_expression {my$self=shift;my$line=shift;my($sigil,$variable_name,$package);if ($line =~ /$VERS_REGEXP/o){($sigil,$variable_name,$package)=$2 ? ($1,$2,$3): ($4,$5,$6);if ($package){$package=($package eq '::')? 'main' : $package;$package =~ s/::$//}}return ($sigil,$variable_name,$package)}sub _handle_bom {my ($self,$fh,$filename)=@_;my$pos=tell$fh;return unless defined$pos;my$buf=' ' x 2;my$count=read$fh,$buf,length$buf;return unless defined$count and $count >= 2;my$encoding;if ($buf eq "\x{FE}\x{FF}"){$encoding='UTF-16BE'}elsif ($buf eq "\x{FF}\x{FE}"){$encoding='UTF-16LE'}elsif ($buf eq "\x{EF}\x{BB}"){$buf=' ';$count=read$fh,$buf,length$buf;if (defined$count and $count >= 1 and $buf eq "\x{BF}"){$encoding='UTF-8'}}if (defined$encoding){if ("$]" >= 5.008){binmode($fh,":encoding($encoding)")}}else {seek$fh,$pos,SEEK_SET or croak(sprintf "Can't reset position to the top of '$filename'")}return$encoding}sub _parse_fh {my ($self,$fh)=@_;my($in_pod,$seen_end,$need_vers)=(0,0,0);my(@packages,%vers,%pod,@pod);my$package='main';my$pod_sect='';my$pod_data='';my$in_end=0;while (defined(my$line=<$fh>)){my$line_num=$.;chomp($line);my$is_cut;if ($line =~ /^=([a-zA-Z].*)/){my$cmd=$1;$is_cut=$cmd =~ /^cut(?:[^a-zA-Z]|$)/;$in_pod=!$is_cut}if ($in_pod){if ($line =~ /^=head[1-4]\s+(.+)\s*$/){push(@pod,$1);if ($self->{collect_pod}&& length($pod_data)){$pod{$pod_sect}=$pod_data;$pod_data=''}$pod_sect=$1}elsif ($self->{collect_pod}){$pod_data .= "$line\n"}}elsif ($is_cut){if ($self->{collect_pod}&& length($pod_data)){$pod{$pod_sect}=$pod_data;$pod_data=''}$pod_sect=''}else {next if$in_end;next if$line =~ /^\s*#/;if ($line eq '__END__'){$in_end++;next}last if$line eq '__DATA__';my($version_sigil,$version_fullname,$version_package)=index($line,'VERSION')>= 1 ? $self->_parse_version_expression($line): ();if ($line =~ /$PKG_REGEXP/o){$package=$1;my$version=$2;push(@packages,$package)unless grep($package eq $_,@packages);$need_vers=defined$version ? 0 : 1;if (not exists$vers{$package}and defined$version){my$dwim_version=eval {_dwim_version($version)};croak "Version '$version' from $self->{filename} does not appear to be valid:\n$line\n\nThe fatal error was: $@\n" unless defined$dwim_version;$vers{$package}=$dwim_version}}elsif ($version_fullname && $version_package){push(@packages,$version_package)unless grep($version_package eq $_,@packages);$need_vers=0 if$version_package eq $package;unless (defined$vers{$version_package}&& length$vers{$version_package}){$vers{$version_package}=$self->_evaluate_version_line($version_sigil,$version_fullname,$line)}}elsif ($package eq 'main' && $version_fullname &&!exists($vers{main})){$need_vers=0;my$v=$self->_evaluate_version_line($version_sigil,$version_fullname,$line);$vers{$package}=$v;push(@packages,'main')}elsif ($package eq 'main' &&!exists($vers{main})&& $line =~ /\w/){$need_vers=1;$vers{main}='';push(@packages,'main')}elsif ($version_fullname && $need_vers){$need_vers=0;my$v=$self->_evaluate_version_line($version_sigil,$version_fullname,$line);unless (defined$vers{$package}&& length$vers{$package}){$vers{$package}=$v}}}}if ($self->{collect_pod}&& length($pod_data)){$pod{$pod_sect}=$pod_data}$self->{versions}=\%vers;$self->{packages}=\@packages;$self->{pod}=\%pod;$self->{pod_headings}=\@pod}{my$pn=0;sub _evaluate_version_line {my$self=shift;my($sigil,$variable_name,$line)=@_;$pn++;my$eval=qq{ my \$dummy = q# Hide from _packages_inside() + #; package Module::Metadata::_version::p${pn}; + use version; + sub { + local $sigil$variable_name; + $line; + \$$variable_name + }; + };$eval=$1 if$eval =~ m{^(.+)}s;local $^W;my$vsub=__clean_eval($eval);if ($@ =~ /Can't locate/ && -d 'lib'){local@INC=('lib',@INC);$vsub=__clean_eval($eval)}warn "Error evaling version line '$eval' in $self->{filename}: $@\n" if $@;(ref($vsub)eq 'CODE')or croak "failed to build version sub for $self->{filename}";my$result=eval {$vsub->()};croak "Could not get version from $self->{filename} by executing:\n$eval\n\nThe fatal error was: $@\n" if $@;my$version=eval {_dwim_version($result)};croak "Version '$result' from $self->{filename} does not appear to be valid:\n$eval\n\nThe fatal error was: $@\n" unless defined$version;return$version}}{my@version_prep=(sub {return shift},sub {my$v=shift;$v =~ s{([0-9])[a-z-].*$}{$1}i;return$v},sub {my$v=shift;my$num_dots=()=$v =~ m{(\.)}g;my$num_unders=()=$v =~ m{(_)}g;my$leading_v=substr($v,0,1)eq 'v';if (!$leading_v && $num_dots < 2 && $num_unders > 1){$v =~ s{_}{}g;$num_unders=()=$v =~ m{(_)}g}return$v},sub {my$v=shift;no warnings 'numeric';return 0 + $v},);sub _dwim_version {my ($result)=shift;return$result if ref($result)eq 'version';my ($version,$error);for my$f (@version_prep){$result=$f->($result);$version=eval {version->new($result)};$error ||= $@ if $@;last if defined$version}croak$error unless defined$version;return$version}}sub name {$_[0]->{module}}sub filename {$_[0]->{filename}}sub packages_inside {@{$_[0]->{packages}}}sub pod_inside {@{$_[0]->{pod_headings}}}sub contains_pod {0+@{$_[0]->{pod_headings}}}sub version {my$self=shift;my$mod=shift || $self->{module};my$vers;if (defined($mod)&& length($mod)&& exists($self->{versions}{$mod})){return$self->{versions}{$mod}}else {return undef}}sub pod {my$self=shift;my$sect=shift;if (defined($sect)&& length($sect)&& exists($self->{pod}{$sect})){return$self->{pod}{$sect}}else {return undef}}sub is_indexable {my ($self,$package)=@_;my@indexable_packages=grep {$_ ne 'main'}$self->packages_inside;return!!grep {$_ eq $package}@indexable_packages if$package;return!!@indexable_packages}1; +MODULE_METADATA + +$fatpacked{"Parse/CPAN/Meta.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'PARSE_CPAN_META'; + use 5.008001;use strict;package Parse::CPAN::Meta;our$VERSION='1.4414';use Exporter;use Carp 'croak';our@ISA=qw/Exporter/;our@EXPORT_OK=qw/Load LoadFile/;sub load_file {my ($class,$filename)=@_;my$meta=_slurp($filename);if ($filename =~ /\.ya?ml$/){return$class->load_yaml_string($meta)}elsif ($filename =~ /\.json$/){return$class->load_json_string($meta)}else {$class->load_string($meta)}}sub load_string {my ($class,$string)=@_;if ($string =~ /^---/){return$class->load_yaml_string($string)}elsif ($string =~ /^\s*\{/){return$class->load_json_string($string)}else {return$class->load_yaml_string($string)}}sub load_yaml_string {my ($class,$string)=@_;my$backend=$class->yaml_backend();my$data=eval {no strict 'refs';&{"$backend\::Load"}($string)};croak $@ if $@;return$data || {}}sub load_json_string {my ($class,$string)=@_;my$data=eval {$class->json_backend()->new->decode($string)};croak $@ if $@;return$data || {}}sub yaml_backend {if (!defined$ENV{PERL_YAML_BACKEND}){_can_load('CPAN::Meta::YAML',0.011)or croak "CPAN::Meta::YAML 0.011 is not available\n";return "CPAN::Meta::YAML"}else {my$backend=$ENV{PERL_YAML_BACKEND};_can_load($backend)or croak "Could not load PERL_YAML_BACKEND '$backend'\n";$backend->can("Load")or croak "PERL_YAML_BACKEND '$backend' does not implement Load()\n";return$backend}}sub json_backend {if (!$ENV{PERL_JSON_BACKEND}or $ENV{PERL_JSON_BACKEND}eq 'JSON::PP'){_can_load('JSON::PP'=>2.27103)or croak "JSON::PP 2.27103 is not available\n";return 'JSON::PP'}else {_can_load('JSON'=>2.5)or croak "JSON 2.5 is required for " ."\$ENV{PERL_JSON_BACKEND} = '$ENV{PERL_JSON_BACKEND}'\n";return "JSON"}}sub _slurp {require Encode;open my$fh,"<:raw","$_[0]" or die "can't open $_[0] for reading: $!";my$content=do {local $/;<$fh>};$content=Encode::decode('UTF-8',$content,Encode::PERLQQ());return$content}sub _can_load {my ($module,$version)=@_;(my$file=$module)=~ s{::}{/}g;$file .= ".pm";return 1 if$INC{$file};return 0 if exists$INC{$file};eval {require$file;1}or return 0;if (defined$version){eval {$module->VERSION($version);1}or return 0}return 1}sub LoadFile ($) {return Load(_slurp(shift))}sub Load ($) {require CPAN::Meta::YAML;my$object=eval {CPAN::Meta::YAML::Load(shift)};croak $@ if $@;return$object}1; +PARSE_CPAN_META + +$fatpacked{"Parse/PMFile.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'PARSE_PMFILE'; + package Parse::PMFile;sub __clean_eval {eval $_[0]}use strict;use warnings;use Safe;use JSON::PP ();use Dumpvalue;use version ();use File::Spec ();our$VERSION='0.36';our$VERBOSE=0;our$ALLOW_DEV_VERSION=0;our$FORK=0;our$UNSAFE=$] < 5.010000 ? 1 : 0;sub new {my ($class,$meta,$opts)=@_;bless {%{$opts || {}},META_CONTENT=>$meta},$class}sub parse {my ($self,$pmfile)=@_;$pmfile =~ s|\\|/|g;my($filemtime)=(stat$pmfile)[9];$self->{MTIME}=$filemtime;$self->{PMFILE}=$pmfile;unless ($self->_version_from_meta_ok){my$version;unless (eval {$version=$self->_parse_version;1}){$self->_verbose(1,"error with version in $pmfile: $@");return}$self->{VERSION}=$version;if ($self->{VERSION}=~ /^\{.*\}$/){}elsif ($self->{VERSION}=~ /[_\s]/ &&!$self->{ALLOW_DEV_VERSION}&&!$ALLOW_DEV_VERSION){return}}my($ppp)=$self->_packages_per_pmfile;my@keys_ppp=$self->_filter_ppps(sort keys %$ppp);$self->_verbose(1,"Will check keys_ppp[@keys_ppp]\n");my ($package,%errors);my%checked_in;DBPACK: foreach$package (@keys_ppp){if ($package !~ /^\w[\w\:\']*\w?\z/ || $package !~ /\w\z/ || $package =~ /:/ && $package !~ /::/ || $package =~ /\w:\w/ || $package =~ /:::/){$self->_verbose(1,"Package[$package] did not pass the ultimate sanity check");delete$ppp->{$package};next}if ($self->{USERID}&& $self->{PERMISSIONS}&&!$self->_perm_check($package)){delete$ppp->{$package};next}{my (undef,$module)=split m{/lib/},$self->{PMFILE},2;if ($module){$module =~ s{\.pm\z}{};$module =~ s{/}{::}g;if (lc$module eq lc$package && $module ne $package){$errors{$package}={indexing_warning=>"Capitalization of package ($package) does not match filename!",infile=>$self->{PMFILE},}}}}my$pp=$ppp->{$package};if ($pp->{version}&& $pp->{version}=~ /^\{.*\}$/){my$err=JSON::PP::decode_json($pp->{version});if ($err->{x_normalize}){$errors{$package}={normalize=>$err->{version},infile=>$pp->{infile},};$pp->{version}="undef"}elsif ($err->{openerr}){$pp->{version}="undef";$self->_verbose(1,qq{Parse::PMFile was not able to + read the file. It issued the following error: C< $err->{r} >},);$errors{$package}={open=>$err->{r},infile=>$pp->{infile},}}else {$pp->{version}="undef";$self->_verbose(1,qq{Parse::PMFile was not able to + parse the following line in that file: C< $err->{line} > + + Note: the indexer is running in a Safe compartement and cannot + provide the full functionality of perl in the VERSION line. It + is trying hard, but sometime it fails. As a workaround, please + consider writing a META.yml that contains a 'provides' + attribute or contact the CPAN admins to investigate (yet + another) workaround against "Safe" limitations.)},);$errors{$package}={parse_version=>$err->{line},infile=>$err->{file},}}}for ($package,$pp->{version},){if (!defined || /^\s*$/ || /\s/){delete$ppp->{$package};next}}$checked_in{$package}=$ppp->{$package}}return (wantarray && %errors)? (\%checked_in,\%errors): \%checked_in}sub _perm_check {my ($self,$package)=@_;my$userid=$self->{USERID};my$module=$self->{PERMISSIONS}->module_permissions($package);return 1 if!$module;return 1 if defined$module->m && $module->m eq $userid;return 1 if defined$module->f && $module->f eq $userid;return 1 if defined$module->c && grep {$_ eq $userid}@{$module->c};return}sub _parse_version {my$self=shift;use strict;my$pmfile=$self->{PMFILE};my$tmpfile=File::Spec->catfile(File::Spec->tmpdir,"ParsePMFile$$" .rand(1000));my$pmcp=$pmfile;for ($pmcp){s/([^\\](\\\\)*)@/$1\\@/g}my($v);{package main;my$pid;if ($self->{FORK}|| $FORK){$pid=fork();die "Can't fork: $!" unless defined$pid}if ($pid){waitpid($pid,0);if (open my$fh,'<',$tmpfile){$v=<$fh>}}else {my($comp)=Safe->new;my$eval=qq{ + local(\$^W) = 0; + Parse::PMFile::_parse_version_safely("$pmcp"); + };$comp->permit("entereval");$comp->share("*Parse::PMFile::_parse_version_safely");$comp->share("*version::new");$comp->share("*version::numify");$comp->share_from('main',['*version::','*charstar::','*Exporter::','*DynaLoader::']);$comp->share_from('version',['&qv']);$comp->permit(":base_math");$comp->deny(qw/enteriter iter unstack goto/);version->import('qv')if$self->{UNSAFE}|| $UNSAFE;{no strict;$v=($self->{UNSAFE}|| $UNSAFE)? eval$eval : $comp->reval($eval)}if ($@){my$err=$@;if (ref$err){if ($err->{line}=~ /([\$*])([\w\:\']*)\bVERSION\b.*?\=(.*)/){local($^W)=0;my ($sigil,$vstr)=($1,$3);$self->_restore_overloaded_stuff(1)if$err->{line}=~ /use\s+version\b|version\->|qv\(/;$v=($self->{UNSAFE}|| $UNSAFE)? eval$vstr : $comp->reval($vstr);$v=$$v if$sigil eq '*' && ref$v}if ($@ or!$v){$self->_verbose(1,sprintf("reval failed: err[%s] for eval[%s]",JSON::PP::encode_json($err),$eval,));$v=JSON::PP::encode_json($err)}}else {$v=JSON::PP::encode_json({openerr=>$err })}}if (defined$v){$v=$v->numify if ref($v)=~ /^version(::vpp)?$/}else {$v=""}if ($self->{FORK}|| $FORK){open my$fh,'>:utf8',$tmpfile;print$fh $v;exit 0}else {utf8::encode($v);$v=undef if defined$v &&!length$v;$comp->erase;$self->_restore_overloaded_stuff}}}unlink$tmpfile if ($self->{FORK}|| $FORK)&& -e $tmpfile;return$self->_normalize_version($v)}sub _restore_overloaded_stuff {my ($self,$used_version_in_safe)=@_;return if$self->{UNSAFE}|| $UNSAFE;no strict 'refs';no warnings 'redefine';my$restored;if ($INC{'version/vxs.pm'}){*{'version::(""'}=\&version::vxs::stringify;*{'version::(0+'}=\&version::vxs::numify;*{'version::(cmp'}=\&version::vxs::VCMP;*{'version::(<=>'}=\&version::vxs::VCMP;*{'version::(bool'}=\&version::vxs::boolean;$restored=1}if ($INC{'version/vpp.pm'}){{package charstar;overload->import}if (!$used_version_in_safe){package version::vpp;overload->import}unless ($restored){*{'version::(""'}=\&version::vpp::stringify;*{'version::(0+'}=\&version::vpp::numify;*{'version::(cmp'}=\&version::vpp::vcmp;*{'version::(<=>'}=\&version::vpp::vcmp;*{'version::(bool'}=\&version::vpp::vbool}*{'version::vpp::(""'}=\&version::vpp::stringify;*{'version::vpp::(0+'}=\&version::vpp::numify;*{'version::vpp::(cmp'}=\&version::vpp::vcmp;*{'version::vpp::(<=>'}=\&version::vpp::vcmp;*{'version::vpp::(bool'}=\&version::vpp::vbool;*{'charstar::(""'}=\&charstar::thischar;*{'charstar::(0+'}=\&charstar::thischar;*{'charstar::(++'}=\&charstar::increment;*{'charstar::(--'}=\&charstar::decrement;*{'charstar::(+'}=\&charstar::plus;*{'charstar::(-'}=\&charstar::minus;*{'charstar::(*'}=\&charstar::multiply;*{'charstar::(cmp'}=\&charstar::cmp;*{'charstar::(<=>'}=\&charstar::spaceship;*{'charstar::(bool'}=\&charstar::thischar;*{'charstar::(='}=\&charstar::clone;$restored=1}if (!$restored){*{'version::(""'}=\&version::stringify;*{'version::(0+'}=\&version::numify;*{'version::(cmp'}=\&version::vcmp;*{'version::(<=>'}=\&version::vcmp;*{'version::(bool'}=\&version::boolean}}sub _packages_per_pmfile {my$self=shift;my$ppp={};my$pmfile=$self->{PMFILE};my$filemtime=$self->{MTIME};my$version=$self->{VERSION};open my$fh,"<","$pmfile" or return$ppp;local $/="\n";my$inpod=0;PLINE: while (<$fh>){chomp;my($pline)=$_;$inpod=$pline =~ /^=(?!cut)/ ? 1 : $pline =~ /^=cut/ ? 0 : $inpod;next if$inpod;next if substr($pline,0,4)eq "=cut";$pline =~ s/\#.*//;next if$pline =~ /^\s*$/;if ($pline =~ /^__(?:END|DATA)__\b/ and $pmfile !~ /\.PL$/){last PLINE}my$pkg;my$strict_version;if ($pline =~ m{ + # (.*) # takes too much time if $pline is long + (? 128;$ppp->{$pkg}{parsed}++;$ppp->{$pkg}{infile}=$pmfile;if ($self->_simile($pmfile,$pkg)){$ppp->{$pkg}{simile}=$pmfile;if ($self->_version_from_meta_ok){my$provides=$self->{META_CONTENT}{provides};if (exists$provides->{$pkg}){if (defined$provides->{$pkg}{version}){my$v=$provides->{$pkg}{version};if ($v =~ /[_\s]/ &&!$self->{ALLOW_DEV_VERSION}&&!$ALLOW_DEV_VERSION){next PLINE}unless (eval {$version=$self->_normalize_version($v);1}){$self->_verbose(1,"error with version in $pmfile: $@");next}$ppp->{$pkg}{version}=$version}else {$ppp->{$pkg}{version}="undef"}}}else {if (defined$strict_version){$ppp->{$pkg}{version}=$strict_version }else {$ppp->{$pkg}{version}=defined$version ? $version : ""}no warnings;if ($version eq 'undef'){$ppp->{$pkg}{version}=$version unless defined$ppp->{$pkg}{version}}else {$ppp->{$pkg}{version}=$version if$version > $ppp->{$pkg}{version}|| $version gt $ppp->{$pkg}{version}}}}else {$ppp->{$pkg}{version}=$version unless defined$ppp->{$pkg}{version}&& length($ppp->{$pkg}{version})}$ppp->{$pkg}{filemtime}=$filemtime}else {}}close$fh;$ppp}{no strict;sub _parse_version_safely {my($parsefile)=@_;my$result;local*FH;local $/="\n";open(FH,$parsefile)or die "Could not open '$parsefile': $!";my$inpod=0;while (){$inpod=/^=(?!cut)/ ? 1 : /^=cut/ ? 0 : $inpod;next if$inpod || /^\s*#/;last if /^__(?:END|DATA)__\b/;chop;if (my ($ver)=/package \s+ \S+ \s+ (\S+) \s* [;{]/x){return$ver if version::is_lax($ver)}next unless /(?<=])\=(?![=>])/;my$current_parsed_line=$_;my$eval=qq{ + package # + ExtUtils::MakeMaker::_version; + + local $1$2; + \$$2=undef; do { + $_ + }; \$$2 + };local $^W=0;local$SIG{__WARN__}=sub {};$result=__clean_eval($eval);if ($@ or!defined$result){die +{eval=>$eval,line=>$current_parsed_line,file=>$parsefile,err=>$@,}}last}close FH;$result="undef" unless defined$result;if ((ref$result)=~ /^version(?:::vpp)?\b/){$result=$result->numify}return$result}}sub _filter_ppps {my($self,@ppps)=@_;my@res;MANI: for my$ppp (@ppps){if ($self->{META_CONTENT}){my$no_index=$self->{META_CONTENT}{no_index}|| $self->{META_CONTENT}{private};if (ref($no_index)eq 'HASH'){my%map=(package=>qr{\z},namespace=>qr{::},);for my$k (qw(package namespace)){next unless my$v=$no_index->{$k};my$rest=$map{$k};if (ref$v eq "ARRAY"){for my$ve (@$v){$ve =~ s|::$||;if ($ppp =~ /^$ve$rest/){$self->_verbose(1,"Skipping ppp[$ppp] due to ve[$ve]");next MANI}else {$self->_verbose(1,"NOT skipping ppp[$ppp] due to ve[$ve]")}}}else {$v =~ s|::$||;if ($ppp =~ /^$v$rest/){$self->_verbose(1,"Skipping ppp[$ppp] due to v[$v]");next MANI}else {$self->_verbose(1,"NOT skipping ppp[$ppp] due to v[$v]")}}}}else {$self->_verbose(1,"No keyword 'no_index' or 'private' in META_CONTENT")}}else {}push@res,$ppp}$self->_verbose(1,"Result of filter_ppps: res[@res]");@res}sub _simile {my($self,$file,$package)=@_;$file =~ s|.*/||;$file =~ s|\.pm(?:\.PL)?||;my$ret=$package =~ m/\b\Q$file\E$/;$ret ||= 0;unless ($ret){$ret=1 if lc$file eq 'version'}$self->_verbose(1,"Result of simile(): file[$file] package[$package] ret[$ret]\n");$ret}sub _normalize_version {my($self,$v)=@_;$v="undef" unless defined$v;my$dv=Dumpvalue->new;my$sdv=$dv->stringify($v,1);$self->_verbose(1,"Result of normalize_version: sdv[$sdv]\n");return$v if$v eq "undef";return$v if$v =~ /^\{.*\}$/;$v =~ s/^\s+//;$v =~ s/\s+\z//;if ($v =~ /_/){return$v }if (!version::is_lax($v)){return JSON::PP::encode_json({x_normalize=>'version::is_lax failed',version=>$v })}my$vv=eval {no warnings;version->new($v)->numify};if ($@){return JSON::PP::encode_json({x_normalize=>$@,version=>$v })}if ($vv eq $v){}else {my$forced=$self->_force_numeric($v);if ($forced eq $vv){}elsif ($forced =~ /^v(.+)/){$vv=version->new($1)->numify}else {if ($forced==$vv){$vv=$forced}}}return$vv}sub _force_numeric {my($self,$v)=@_;$v=$self->_readable($v);if ($v =~ /^(\+?)(\d*)(\.(\d*))?/ && (defined $2 && length $2 || defined $4 && length $4)){my$two=defined $2 ? $2 : "";my$three=defined $3 ? $3 : "";$v="$two$three"}$v}sub _version_from_meta_ok {my($self)=@_;return$self->{VERSION_FROM_META_OK}if exists$self->{VERSION_FROM_META_OK};my$c=$self->{META_CONTENT};return($self->{VERSION_FROM_META_OK}=0)unless$c->{provides};my ($mb_v)=(defined$c->{generated_by}? $c->{generated_by}: '')=~ /Module::Build version ([\d\.]+)/;return($self->{VERSION_FROM_META_OK}=1)unless$mb_v;return($self->{VERSION_FROM_META_OK}=1)if$mb_v eq '0.250.0';if ($mb_v >= 0.19 && $mb_v < 0.26 &&!keys %{$c->{provides}}){return($self->{VERSION_FROM_META_OK}=0)}return($self->{VERSION_FROM_META_OK}=1)}sub _verbose {my($self,$level,@what)=@_;warn@what if$level <= ((ref$self && $self->{VERBOSE})|| $VERBOSE)}sub _vcmp {my($self,$l,$r)=@_;local($^W)=0;$self->_verbose(9,"l[$l] r[$r]");return 0 if$l eq $r;for ($l,$r){s/_//g}$self->_verbose(9,"l[$l] r[$r]");for ($l,$r){next unless tr/.// > 1 || /^v/;s/^v?/v/;1 while s/\.0+(\d)/.$1/}$self->_verbose(9,"l[$l] r[$r]");if ($l=~/^v/ <=> $r=~/^v/){for ($l,$r){next if /^v/;$_=$self->_float2vv($_)}}$self->_verbose(9,"l[$l] r[$r]");my$lvstring="v0";my$rvstring="v0";if ($] >= 5.006 && $l =~ /^v/ && $r =~ /^v/){$lvstring=$self->_vstring($l);$rvstring=$self->_vstring($r);$self->_verbose(9,sprintf "lv[%vd] rv[%vd]",$lvstring,$rvstring)}return (($l ne "undef")<=> ($r ne "undef")|| $lvstring cmp $rvstring || $l <=> $r || $l cmp $r)}sub _vgt {my($self,$l,$r)=@_;$self->_vcmp($l,$r)> 0}sub _vlt {my($self,$l,$r)=@_;$self->_vcmp($l,$r)< 0}sub _vge {my($self,$l,$r)=@_;$self->_vcmp($l,$r)>= 0}sub _vle {my($self,$l,$r)=@_;$self->_vcmp($l,$r)<= 0}sub _vstring {my($self,$n)=@_;$n =~ s/^v// or die "Parse::PMFile::_vstring() called with invalid arg [$n]";pack "U*",split /\./,$n}sub _float2vv {my($self,$n)=@_;my($rev)=int($n);$rev ||= 0;my($mantissa)=$n =~ /\.(\d{1,12})/;$mantissa ||= 0;$mantissa .= "0" while length($mantissa)%3;my$ret="v" .$rev;while ($mantissa){$mantissa =~ s/(\d{1,3})// or die "Panic: length>0 but not a digit? mantissa[$mantissa]";$ret .= ".".int($1)}$ret =~ s/(\.0)+/.0/;$ret}sub _readable {my($self,$n)=@_;$n =~ /^([\w\-\+\.]+)/;return $1 if defined $1 && length($1)>0;if ($] < 5.006){$self->_verbose(9,"Suspicious version string seen [$n]\n");return$n}my$better=sprintf "v%vd",$n;$self->_verbose(9,"n[$n] better[$better]");return$better}1; +PARSE_PMFILE + +$fatpacked{"String/ShellQuote.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'STRING_SHELLQUOTE'; + package String::ShellQuote;use strict;use vars qw($VERSION @ISA @EXPORT);require Exporter;$VERSION='1.04';@ISA=qw(Exporter);@EXPORT=qw(shell_quote shell_quote_best_effort shell_comment_quote);sub croak {require Carp;goto&Carp::croak}sub _shell_quote_backend {my@in=@_;my@err=();if (0){require RS::Handy;print RS::Handy::data_dump(\@in)}return \@err,'' unless@in;my$ret='';my$saw_non_equal=0;for (@in){if (!defined $_ or $_ eq ''){$_="''";next}if (s/\x00//g){push@err,"No way to quote string containing null (\\000) bytes"}my$escape=0;if (/=/){if (!$saw_non_equal){$escape=1}}else {$saw_non_equal=1}if (m|[^\w!%+,\-./:=@^]|){$escape=1}if ($escape || (!$saw_non_equal && /=/)){s/'/'\\''/g;s|((?:'\\''){2,})|q{'"} . (q{'} x (length($1) / 4)) . q{"'}|ge;$_="'$_'";s/^''//;s/''$//}}continue {$ret .= "$_ "}chop$ret;return \@err,$ret}sub shell_quote {my ($rerr,$s)=_shell_quote_backend @_;if (@$rerr){my%seen;@$rerr=grep {!$seen{$_}++}@$rerr;my$s=join '',map {"shell_quote(): $_\n"}@$rerr;chomp$s;croak$s}return$s}sub shell_quote_best_effort {my ($rerr,$s)=_shell_quote_backend @_;return$s}sub shell_comment_quote {return '' unless @_;unless (@_==1){croak "Too many arguments to shell_comment_quote " ."(got " .@_ ." expected 1)"}local $_=shift;s/\n/\n#/g;return $_}1; +STRING_SHELLQUOTE + +$fatpacked{"lib/core/only.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'LIB_CORE_ONLY'; + package lib::core::only;use strict;use warnings FATAL=>'all';use Config;sub import {@INC=@Config{qw(privlibexp archlibexp)};return}1; +LIB_CORE_ONLY + +$fatpacked{"local/lib.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'LOCAL_LIB'; + package local::lib;use 5.006;use strict;use warnings;use Config;our$VERSION='2.000015';$VERSION=eval$VERSION;BEGIN {*_WIN32=($^O eq 'MSWin32' || $^O eq 'NetWare' || $^O eq 'symbian')? sub(){1}: sub(){0};*_USE_FSPEC=($^O eq 'MacOS' || $^O eq 'VMS' || $INC{'File/Spec.pm'})? sub(){1}: sub(){0}}our$_DIR_JOIN=_WIN32 ? '\\' : '/';our$_DIR_SPLIT=(_WIN32 || $^O eq 'cygwin')? qr{[\\/]} : qr{/};our$_ROOT=_WIN32 ? do {my$UNC=qr{[\\/]{2}[^\\/]+[\\/][^\\/]+};qr{^(?:$UNC|[A-Za-z]:|)$_DIR_SPLIT}}: qr{^/};our$_PERL;sub _cwd {my$drive=shift;if (!$_PERL){($_PERL)=$^X =~ /(.+)/;if (_is_abs($_PERL)){}elsif (-x $Config{perlpath}){$_PERL=$Config{perlpath}}else {($_PERL)=map {/(.*)/}grep {-x $_}map {join($_DIR_JOIN,$_,$_PERL)}split /\Q$Config{path_sep}\E/,$ENV{PATH}}}local@ENV{qw(PATH IFS CDPATH ENV BASH_ENV)};my$cmd=$drive ? "eval { Cwd::getdcwd(q($drive)) }" : 'getcwd';my$cwd=`"$_PERL" -MCwd -le "print $cmd"`;chomp$cwd;if (!length$cwd && $drive){$cwd=$drive}$cwd =~ s/$_DIR_SPLIT?$/$_DIR_JOIN/;$cwd}sub _catdir {if (_USE_FSPEC){require File::Spec;File::Spec->catdir(@_)}else {my$dir=join($_DIR_JOIN,@_);$dir =~ s{($_DIR_SPLIT)(?:\.?$_DIR_SPLIT)+}{$1}g;$dir}}sub _is_abs {if (_USE_FSPEC){require File::Spec;File::Spec->file_name_is_absolute($_[0])}else {$_[0]=~ $_ROOT}}sub _rel2abs {my ($dir,$base)=@_;return$dir if _is_abs($dir);$base=_WIN32 && $dir =~ s/^([A-Za-z]:)// ? _cwd("$1"): $base ? $base : _cwd;return _catdir($base,$dir)}sub import {my ($class,@args)=@_;push@args,@ARGV if $0 eq '-';my@steps;my%opts;my$shelltype;while (@args){my$arg=shift@args;if ($arg =~ /\xE2\x88\x92/ or $arg =~ /−/){die <<'DEATH'}elsif ($arg eq '--self-contained'){die <<'DEATH'}elsif($arg =~ /^--deactivate(?:=(.*))?$/){my$path=defined $1 ? $1 : shift@args;push@steps,['deactivate',$path]}elsif ($arg eq '--deactivate-all'){push@steps,['deactivate_all']}elsif ($arg =~ /^--shelltype(?:=(.*))?$/){$shelltype=defined $1 ? $1 : shift@args}elsif ($arg eq '--no-create'){$opts{no_create}=1}elsif ($arg =~ /^--/){die "Unknown import argument: $arg"}else {push@steps,['activate',$arg]}}if (!@steps){push@steps,['activate',undef]}my$self=$class->new(%opts);for (@steps){my ($method,@args)=@$_;$self=$self->$method(@args)}if ($0 eq '-'){print$self->environment_vars_string($shelltype);exit 0}else {$self->setup_local_lib}}sub new {my$class=shift;bless {@_},$class}sub clone {my$self=shift;bless {%$self,@_},ref$self}sub inc {$_[0]->{inc}||= \@INC}sub libs {$_[0]->{libs}||= [\'PERL5LIB' ]}sub bins {$_[0]->{bins}||= [\'PATH' ]}sub roots {$_[0]->{roots}||= [\'PERL_LOCAL_LIB_ROOT' ]}sub extra {$_[0]->{extra}||= {}}sub no_create {$_[0]->{no_create}}my$_archname=$Config{archname};my$_version=$Config{version};my@_inc_version_list=reverse split / /,$Config{inc_version_list};my$_path_sep=$Config{path_sep};sub _as_list {my$list=shift;grep length,map {!(ref $_ && ref $_ eq 'SCALAR')? $_ : (defined$ENV{$$_}? split(/\Q$_path_sep/,$ENV{$$_}): ())}ref$list ? @$list : $list}sub _remove_from {my ($list,@remove)=@_;return @$list if!@remove;my%remove=map {$_=>1}@remove;grep!$remove{$_},_as_list($list)}my@_lib_subdirs=([$_version,$_archname],[$_version],[$_archname],(@_inc_version_list ? \@_inc_version_list : ()),[],);sub install_base_bin_path {my ($class,$path)=@_;return _catdir($path,'bin')}sub install_base_perl_path {my ($class,$path)=@_;return _catdir($path,'lib','perl5')}sub install_base_arch_path {my ($class,$path)=@_;_catdir($class->install_base_perl_path($path),$_archname)}sub lib_paths_for {my ($class,$path)=@_;my$base=$class->install_base_perl_path($path);return map {_catdir($base,@$_)}@_lib_subdirs}sub _mm_escape_path {my$path=shift;$path =~ s/\\/\\\\/g;if ($path =~ s/ /\\ /g){$path=qq{"$path"}}return$path}sub _mb_escape_path {my$path=shift;$path =~ s/\\/\\\\/g;return qq{"$path"}}sub installer_options_for {my ($class,$path)=@_;return (PERL_MM_OPT=>defined$path ? "INSTALL_BASE="._mm_escape_path($path): undef,PERL_MB_OPT=>defined$path ? "--install_base "._mb_escape_path($path): undef,)}sub active_paths {my ($self)=@_;$self=ref$self ? $self : $self->new;return grep {my$active_ll=$self->install_base_perl_path($_);grep {$_ eq $active_ll}@{$self->inc}}_as_list($self->roots)}sub deactivate {my ($self,$path)=@_;$self=$self->new unless ref$self;$path=$self->resolve_path($path);$path=$self->normalize_path($path);my@active_lls=$self->active_paths;if (!grep {$_ eq $path}@active_lls){warn "Tried to deactivate inactive local::lib '$path'\n";return$self}my%args=(bins=>[_remove_from($self->bins,$self->install_base_bin_path($path))],libs=>[_remove_from($self->libs,$self->install_base_perl_path($path))],inc=>[_remove_from($self->inc,$self->lib_paths_for($path))],roots=>[_remove_from($self->roots,$path)],);$args{extra}={$self->installer_options_for($args{roots}[0])};$self->clone(%args)}sub deactivate_all {my ($self)=@_;$self=$self->new unless ref$self;my@active_lls=$self->active_paths;my%args;if (@active_lls){%args=(bins=>[_remove_from($self->bins,map$self->install_base_bin_path($_),@active_lls)],libs=>[_remove_from($self->libs,map$self->install_base_perl_path($_),@active_lls)],inc=>[_remove_from($self->inc,map$self->lib_paths_for($_),@active_lls)],roots=>[_remove_from($self->roots,@active_lls)],)}$args{extra}={$self->installer_options_for(undef)};$self->clone(%args)}sub activate {my ($self,$path)=@_;$self=$self->new unless ref$self;$path=$self->resolve_path($path);$self->ensure_dir_structure_for($path)unless$self->no_create;$path=$self->normalize_path($path);my@active_lls=$self->active_paths;if (grep {$_ eq $path}@active_lls[1 .. $#active_lls]){$self=$self->deactivate($path)}my%args;if (!@active_lls || $active_lls[0]ne $path){%args=(bins=>[$self->install_base_bin_path($path),@{$self->bins}],libs=>[$self->install_base_perl_path($path),@{$self->libs}],inc=>[$self->lib_paths_for($path),@{$self->inc}],roots=>[$path,@{$self->roots}],)}$args{extra}={$self->installer_options_for($path)};$self->clone(%args)}sub normalize_path {my ($self,$path)=@_;$path=(Win32::GetShortPathName($path)|| $path)if $^O eq 'MSWin32';return$path}sub build_environment_vars_for {my$self=$_[0]->new->activate($_[1]);$self->build_environment_vars}sub build_activate_environment_vars_for {my$self=$_[0]->new->activate($_[1]);$self->build_environment_vars}sub build_deactivate_environment_vars_for {my$self=$_[0]->new->deactivate($_[1]);$self->build_environment_vars}sub build_deact_all_environment_vars_for {my$self=$_[0]->new->deactivate_all;$self->build_environment_vars}sub build_environment_vars {my$self=shift;(PATH=>join($_path_sep,_as_list($self->bins)),PERL5LIB=>join($_path_sep,_as_list($self->libs)),PERL_LOCAL_LIB_ROOT=>join($_path_sep,_as_list($self->roots)),%{$self->extra},)}sub setup_local_lib_for {my$self=$_[0]->new->activate($_[1]);$self->setup_local_lib}sub setup_local_lib {my$self=shift;require Carp::Heavy if$INC{'Carp.pm'};$self->setup_env_hash;@INC=@{$self->inc}}sub setup_env_hash_for {my$self=$_[0]->new->activate($_[1]);$self->setup_env_hash}sub setup_env_hash {my$self=shift;my%env=$self->build_environment_vars;for my$key (keys%env){if (defined$env{$key}){$ENV{$key}=$env{$key}}else {delete$ENV{$key}}}}sub print_environment_vars_for {print $_[0]->environment_vars_string_for(@_[1..$#_])}sub environment_vars_string_for {my$self=$_[0]->new->activate($_[1]);$self->environment_vars_string}sub environment_vars_string {my ($self,$shelltype)=@_;$shelltype ||= $self->guess_shelltype;my$extra=$self->extra;my@envs=(PATH=>$self->bins,PERL5LIB=>$self->libs,PERL_LOCAL_LIB_ROOT=>$self->roots,map {$_=>$extra->{$_}}sort keys %$extra,);$self->_build_env_string($shelltype,\@envs)}sub _build_env_string {my ($self,$shelltype,$envs)=@_;my@envs=@$envs;my$build_method="build_${shelltype}_env_declaration";my$out='';while (@envs){my ($name,$value)=(shift(@envs),shift(@envs));if (ref$value && @$value==1 && ref$value->[0]&& ref$value->[0]eq 'SCALAR' && ${$value->[0]}eq $name){next}$out .= $self->$build_method($name,$value)}my$wrap_method="wrap_${shelltype}_output";if ($self->can($wrap_method)){return$self->$wrap_method($out)}return$out}sub build_bourne_env_declaration {my ($class,$name,$args)=@_;my$value=$class->_interpolate($args,'${%s}',qr/["\\\$!`]/,'\\%s');if (!defined$value){return qq{unset $name;\n}}$value =~ s/(^|\G|$_path_sep)\$\{$name\}$_path_sep/$1\${$name}\${$name+$_path_sep}/g;$value =~ s/$_path_sep\$\{$name\}$/\${$name+$_path_sep}\${$name}/;qq{${name}="$value"; export ${name};\n}}sub build_csh_env_declaration {my ($class,$name,$args)=@_;my ($value,@vars)=$class->_interpolate($args,'${%s}','"','"\\%s"');if (!defined$value){return qq{unsetenv $name;\n}}my$out='';for my$var (@vars){$out .= qq{if ! \$?$name setenv $name '';\n}}my$value_without=$value;if ($value_without =~ s/(?:^|$_path_sep)\$\{$name\}(?:$_path_sep|$)//g){$out .= qq{if "\${$name}" != '' setenv $name "$value";\n};$out .= qq{if "\${$name}" == '' }}$out .= qq{setenv $name "$value_without";\n};return$out}sub build_cmd_env_declaration {my ($class,$name,$args)=@_;my$value=$class->_interpolate($args,'%%%s%%',qr(%),'%s');if (!$value){return qq{\@set $name=\n}}my$out='';my$value_without=$value;if ($value_without =~ s/(?:^|$_path_sep)%$name%(?:$_path_sep|$)//g){$out .= qq{\@if not "%$name%"=="" set "$name=$value"\n};$out .= qq{\@if "%$name%"=="" }}$out .= qq{\@set "$name=$value_without"\n};return$out}sub build_powershell_env_declaration {my ($class,$name,$args)=@_;my$value=$class->_interpolate($args,'$env:%s','"','`%s');if (!$value){return qq{Remove-Item -ErrorAction 0 Env:\\$name;\n}}my$maybe_path_sep=qq{\$(if("\$env:$name"-eq""){""}else{"$_path_sep"})};$value =~ s/(^|\G|$_path_sep)\$env:$name$_path_sep/$1\$env:$name"+$maybe_path_sep+"/g;$value =~ s/$_path_sep\$env:$name$/"+$maybe_path_sep+\$env:$name+"/;qq{\$env:$name = \$("$value");\n}}sub wrap_powershell_output {my ($class,$out)=@_;return$out || " \n"}sub build_fish_env_declaration {my ($class,$name,$args)=@_;my$value=$class->_interpolate($args,'$%s',qr/[\\"' ]/,'\\%s');if (!defined$value){return qq{set -e $name;\n}}$value =~ s/$_path_sep/ /g;qq{set -x $name $value;\n}}sub _interpolate {my ($class,$args,$var_pat,$escape,$escape_pat)=@_;return unless defined$args;my@args=ref$args ? @$args : $args;return unless@args;my@vars=map {$$_}grep {ref $_ eq 'SCALAR'}@args;my$string=join$_path_sep,map {ref $_ eq 'SCALAR' ? sprintf($var_pat,$$_): do {s/($escape)/sprintf($escape_pat, $1)/ge;$_}}@args;return wantarray ? ($string,\@vars): $string}sub pipeline;sub pipeline {my@methods=@_;my$last=pop(@methods);if (@methods){\sub {my ($obj,@args)=@_;$obj->${pipeline@methods}($obj->$last(@args))}}else {\sub {shift->$last(@_)}}}sub resolve_path {my ($class,$path)=@_;$path=$class->${pipeline qw(resolve_relative_path resolve_home_path resolve_empty_path)}($path);$path}sub resolve_empty_path {my ($class,$path)=@_;if (defined$path){$path}else {'~/perl5'}}sub resolve_home_path {my ($class,$path)=@_;$path =~ /^~([^\/]*)/ or return$path;my$user=$1;my$homedir=do {if (!length($user)&& defined$ENV{HOME}){$ENV{HOME}}else {require File::Glob;File::Glob::bsd_glob("~$user",File::Glob::GLOB_TILDE())}};unless (defined$homedir){require Carp;require Carp::Heavy;Carp::croak("Couldn't resolve homedir for " .(defined$user ? $user : 'current user'))}$path =~ s/^~[^\/]*/$homedir/;$path}sub resolve_relative_path {my ($class,$path)=@_;_rel2abs($path)}sub ensure_dir_structure_for {my ($class,$path)=@_;unless (-d $path){warn "Attempting to create directory ${path}\n"}require File::Basename;my@dirs;while(!-d $path){push@dirs,$path;$path=File::Basename::dirname($path)}mkdir $_ for reverse@dirs;return}sub guess_shelltype {my$shellbin =defined$ENV{SHELL}? ($ENV{SHELL}=~ /([\w.]+)$/)[-1]: ($^O eq 'MSWin32' && exists$ENV{'!EXITCODE'})? 'bash' : ($^O eq 'MSWin32' && $ENV{PROMPT}&& $ENV{COMSPEC})? ($ENV{COMSPEC}=~ /([\w.]+)$/)[-1]: ($^O eq 'MSWin32' &&!$ENV{PROMPT})? 'powershell.exe' : 'sh';for ($shellbin){return /csh$/ ? 'csh' : /fish/ ? 'fish' : /command(?:\.com)?$/i ? 'cmd' : /cmd(?:\.exe)?$/i ? 'cmd' : /4nt(?:\.exe)?$/i ? 'cmd' : /powershell(?:\.exe)?$/i ? 'powershell' : 'bourne'}}1; + WHOA THERE! It looks like you've got some fancy dashes in your commandline! + These are *not* the traditional -- dashes that software recognizes. You + probably got these by copy-pasting from the perldoc for this module as + rendered by a UTF8-capable formatter. This most typically happens on an OS X + terminal, but can happen elsewhere too. Please try again after replacing the + dashes with normal minus signs. + DEATH + FATAL: The local::lib --self-contained flag has never worked reliably and the + original author, Mark Stosberg, was unable or unwilling to maintain it. As + such, this flag has been removed from the local::lib codebase in order to + prevent misunderstandings and potentially broken builds. The local::lib authors + recommend that you look at the lib::core::only module shipped with this + distribution in order to create a more robust environment that is equivalent to + what --self-contained provided (although quite possibly not what you originally + thought it provided due to the poor quality of the documentation, for which we + apologise). + DEATH +LOCAL_LIB + +$fatpacked{"parent.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'PARENT'; + package parent;use strict;use vars qw($VERSION);$VERSION='0.228';sub import {my$class=shift;my$inheritor=caller(0);if (@_ and $_[0]eq '-norequire'){shift @_}else {for (my@filename=@_){if ($_ eq $inheritor){warn "Class '$inheritor' tried to inherit from itself\n"};s{::|'}{/}g;require "$_.pm"}}{no strict 'refs';push @{"$inheritor\::ISA"},@_}};"All your base are belong to us" +PARENT + +$fatpacked{"version.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'VERSION'; + package version;use 5.006002;use strict;use warnings::register;if ($] >= 5.015){warnings::register_categories(qw/version/)}use vars qw(@ISA $VERSION $CLASS $STRICT $LAX *declare *qv);$VERSION=0.9912;$CLASS='version';{local$SIG{'__DIE__'};if (1){eval "use version::vpp $VERSION";die "$@" if ($@);push@ISA,"version::vpp";local $^W;*version::qv=\&version::vpp::qv;*version::declare=\&version::vpp::declare;*version::_VERSION=\&version::vpp::_VERSION;*version::vcmp=\&version::vpp::vcmp;*version::new=\&version::vpp::new;*version::numify=\&version::vpp::numify;*version::normal=\&version::vpp::normal;if ($] >= 5.009000){no strict 'refs';*version::stringify=\&version::vpp::stringify;*{'version::(""'}=\&version::vpp::stringify;*{'version::(<=>'}=\&version::vpp::vcmp;*version::parse=\&version::vpp::parse}}else {push@ISA,"version::vxs";local $^W;*version::declare=\&version::vxs::declare;*version::qv=\&version::vxs::qv;*version::_VERSION=\&version::vxs::_VERSION;*version::vcmp=\&version::vxs::VCMP;*version::new=\&version::vxs::new;*version::numify=\&version::vxs::numify;*version::normal=\&version::vxs::normal;if ($] >= 5.009000){no strict 'refs';*version::stringify=\&version::vxs::stringify;*{'version::(""'}=\&version::vxs::stringify;*{'version::(<=>'}=\&version::vxs::VCMP;*version::parse=\&version::vxs::parse}}}require version::regex;*version::is_lax=\&version::regex::is_lax;*version::is_strict=\&version::regex::is_strict;*LAX=\$version::regex::LAX;*STRICT=\$version::regex::STRICT;sub import {no strict 'refs';my ($class)=shift;unless ($class eq $CLASS){local $^W;*{$class.'::declare'}=\&{$CLASS.'::declare'};*{$class.'::qv'}=\&{$CLASS.'::qv'}}my%args;if (@_){map {$args{$_}=1}@_}else {%args=(qv=>1,'UNIVERSAL::VERSION'=>1,)}my$callpkg=caller();if (exists($args{declare})){*{$callpkg.'::declare'}=sub {return$class->declare(shift)}unless defined(&{$callpkg.'::declare'})}if (exists($args{qv})){*{$callpkg.'::qv'}=sub {return$class->qv(shift)}unless defined(&{$callpkg.'::qv'})}if (exists($args{'UNIVERSAL::VERSION'})){local $^W;*UNIVERSAL::VERSION =\&{$CLASS.'::_VERSION'}}if (exists($args{'VERSION'})){*{$callpkg.'::VERSION'}=\&{$CLASS.'::_VERSION'}}if (exists($args{'is_strict'})){*{$callpkg.'::is_strict'}=\&{$CLASS.'::is_strict'}unless defined(&{$callpkg.'::is_strict'})}if (exists($args{'is_lax'})){*{$callpkg.'::is_lax'}=\&{$CLASS.'::is_lax'}unless defined(&{$callpkg.'::is_lax'})}}1; +VERSION + +$fatpacked{"version/regex.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'VERSION_REGEX'; + package version::regex;use strict;use vars qw($VERSION $CLASS $STRICT $LAX);$VERSION=0.9912;my$FRACTION_PART=qr/\.[0-9]+/;my$STRICT_INTEGER_PART=qr/0|[1-9][0-9]*/;my$LAX_INTEGER_PART=qr/[0-9]+/;my$STRICT_DOTTED_DECIMAL_PART=qr/\.[0-9]{1,3}/;my$LAX_DOTTED_DECIMAL_PART=qr/\.[0-9]+/;my$LAX_ALPHA_PART=qr/_[0-9]+/;my$STRICT_DECIMAL_VERSION=qr/ $STRICT_INTEGER_PART $FRACTION_PART? /x;my$STRICT_DOTTED_DECIMAL_VERSION=qr/ v $STRICT_INTEGER_PART $STRICT_DOTTED_DECIMAL_PART{2,} /x;$STRICT=qr/ $STRICT_DECIMAL_VERSION | $STRICT_DOTTED_DECIMAL_VERSION /x;my$LAX_DECIMAL_VERSION=qr/ $LAX_INTEGER_PART (?: \. | $FRACTION_PART $LAX_ALPHA_PART? )? + | + $FRACTION_PART $LAX_ALPHA_PART? + /x;my$LAX_DOTTED_DECIMAL_VERSION=qr/ + v $LAX_INTEGER_PART (?: $LAX_DOTTED_DECIMAL_PART+ $LAX_ALPHA_PART? )? + | + $LAX_INTEGER_PART? $LAX_DOTTED_DECIMAL_PART{2,} $LAX_ALPHA_PART? + /x;$LAX=qr/ undef | $LAX_DECIMAL_VERSION | $LAX_DOTTED_DECIMAL_VERSION /x;sub is_strict {defined $_[0]&& $_[0]=~ qr/ \A $STRICT \z /x}sub is_lax {defined $_[0]&& $_[0]=~ qr/ \A $LAX \z /x}1; +VERSION_REGEX + +$fatpacked{"version/vpp.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'VERSION_VPP'; + package charstar;use overload ('""'=>\&thischar,'0+'=>\&thischar,'++'=>\&increment,'--'=>\&decrement,'+'=>\&plus,'-'=>\&minus,'*'=>\&multiply,'cmp'=>\&cmp,'<=>'=>\&spaceship,'bool'=>\&thischar,'='=>\&clone,);sub new {my ($self,$string)=@_;my$class=ref($self)|| $self;my$obj={string=>[split(//,$string)],current=>0,};return bless$obj,$class}sub thischar {my ($self)=@_;my$last=$#{$self->{string}};my$curr=$self->{current};if ($curr >= 0 && $curr <= $last){return$self->{string}->[$curr]}else {return ''}}sub increment {my ($self)=@_;$self->{current}++}sub decrement {my ($self)=@_;$self->{current}--}sub plus {my ($self,$offset)=@_;my$rself=$self->clone;$rself->{current}+= $offset;return$rself}sub minus {my ($self,$offset)=@_;my$rself=$self->clone;$rself->{current}-= $offset;return$rself}sub multiply {my ($left,$right,$swapped)=@_;my$char=$left->thischar();return$char * $right}sub spaceship {my ($left,$right,$swapped)=@_;unless (ref($right)){$right=$left->new($right)}return$left->{current}<=> $right->{current}}sub cmp {my ($left,$right,$swapped)=@_;unless (ref($right)){if (length($right)==1){return$left->thischar cmp $right}$right=$left->new($right)}return$left->currstr cmp $right->currstr}sub bool {my ($self)=@_;my$char=$self->thischar;return ($char ne '')}sub clone {my ($left,$right,$swapped)=@_;$right={string=>[@{$left->{string}}],current=>$left->{current},};return bless$right,ref($left)}sub currstr {my ($self,$s)=@_;my$curr=$self->{current};my$last=$#{$self->{string}};if (defined($s)&& $s->{current}< $last){$last=$s->{current}}my$string=join('',@{$self->{string}}[$curr..$last]);return$string}package version::vpp;use 5.006002;use strict;use warnings::register;use Config;use vars qw($VERSION $CLASS @ISA $LAX $STRICT $WARN_CATEGORY);$VERSION=0.9912;$CLASS='version::vpp';if ($] > 5.015){warnings::register_categories(qw/version/);$WARN_CATEGORY='version'}else {$WARN_CATEGORY='numeric'}require version::regex;*version::vpp::is_strict=\&version::regex::is_strict;*version::vpp::is_lax=\&version::regex::is_lax;*LAX=\$version::regex::LAX;*STRICT=\$version::regex::STRICT;use overload ('""'=>\&stringify,'0+'=>\&numify,'cmp'=>\&vcmp,'<=>'=>\&vcmp,'bool'=>\&vbool,'+'=>\&vnoop,'-'=>\&vnoop,'*'=>\&vnoop,'/'=>\&vnoop,'+='=>\&vnoop,'-='=>\&vnoop,'*='=>\&vnoop,'/='=>\&vnoop,'abs'=>\&vnoop,);sub import {no strict 'refs';my ($class)=shift;unless ($class eq $CLASS){local $^W;*{$class.'::declare'}=\&{$CLASS.'::declare'};*{$class.'::qv'}=\&{$CLASS.'::qv'}}my%args;if (@_){map {$args{$_}=1}@_}else {%args=(qv=>1,'UNIVERSAL::VERSION'=>1,)}my$callpkg=caller();if (exists($args{declare})){*{$callpkg.'::declare'}=sub {return$class->declare(shift)}unless defined(&{$callpkg.'::declare'})}if (exists($args{qv})){*{$callpkg.'::qv'}=sub {return$class->qv(shift)}unless defined(&{$callpkg.'::qv'})}if (exists($args{'UNIVERSAL::VERSION'})){no warnings qw/redefine/;*UNIVERSAL::VERSION =\&{$CLASS.'::_VERSION'}}if (exists($args{'VERSION'})){*{$callpkg.'::VERSION'}=\&{$CLASS.'::_VERSION'}}if (exists($args{'is_strict'})){*{$callpkg.'::is_strict'}=\&{$CLASS.'::is_strict'}unless defined(&{$callpkg.'::is_strict'})}if (exists($args{'is_lax'})){*{$callpkg.'::is_lax'}=\&{$CLASS.'::is_lax'}unless defined(&{$callpkg.'::is_lax'})}}my$VERSION_MAX=0x7FFFFFFF;use constant TRUE=>1;use constant FALSE=>0;sub isDIGIT {my ($char)=shift->thischar();return ($char =~ /\d/)}sub isALPHA {my ($char)=shift->thischar();return ($char =~ /[a-zA-Z]/)}sub isSPACE {my ($char)=shift->thischar();return ($char =~ /\s/)}sub BADVERSION {my ($s,$errstr,$error)=@_;if ($errstr){$$errstr=$error}return$s}sub prescan_version {my ($s,$strict,$errstr,$sqv,$ssaw_decimal,$swidth,$salpha)=@_;my$qv=defined$sqv ? $$sqv : FALSE;my$saw_decimal=defined$ssaw_decimal ? $$ssaw_decimal : 0;my$width=defined$swidth ? $$swidth : 3;my$alpha=defined$salpha ? $$salpha : FALSE;my$d=$s;if ($qv && isDIGIT($d)){goto dotted_decimal_version}if ($d eq 'v'){$d++;if (isDIGIT($d)){$qv=TRUE}else {return BADVERSION($s,$errstr,"Invalid version format (dotted-decimal versions require at least three parts)")}dotted_decimal_version: if ($strict && $d eq '0' && isDIGIT($d+1)){return BADVERSION($s,$errstr,"Invalid version format (no leading zeros)")}while (isDIGIT($d)){$d++}if ($d eq '.'){$saw_decimal++;$d++}else {if ($strict){return BADVERSION($s,$errstr,"Invalid version format (dotted-decimal versions require at least three parts)")}else {goto version_prescan_finish}}{my$i=0;my$j=0;while (isDIGIT($d)){$i++;while (isDIGIT($d)){$d++;$j++;if ($strict && $j > 3){return BADVERSION($s,$errstr,"Invalid version format (maximum 3 digits between decimals)")}}if ($d eq '_'){if ($strict){return BADVERSION($s,$errstr,"Invalid version format (no underscores)")}if ($alpha){return BADVERSION($s,$errstr,"Invalid version format (multiple underscores)")}$d++;$alpha=TRUE}elsif ($d eq '.'){if ($alpha){return BADVERSION($s,$errstr,"Invalid version format (underscores before decimal)")}$saw_decimal++;$d++}elsif (!isDIGIT($d)){last}$j=0}if ($strict && $i < 2){return BADVERSION($s,$errstr,"Invalid version format (dotted-decimal versions require at least three parts)")}}}else {my$j=0;if ($strict){if ($d eq '.'){return BADVERSION($s,$errstr,"Invalid version format (0 before decimal required)")}if ($d eq '0' && isDIGIT($d+1)){return BADVERSION($s,$errstr,"Invalid version format (no leading zeros)")}}if ($d eq '-'){return BADVERSION($s,$errstr,"Invalid version format (negative version number)")}while (isDIGIT($d)){$d++}if ($d eq '.'){$saw_decimal++;$d++}elsif (!$d || $d eq ';' || isSPACE($d)|| $d eq '}'){if ($d==$s){return BADVERSION($s,$errstr,"Invalid version format (version required)")}goto version_prescan_finish}elsif ($d==$s){return BADVERSION($s,$errstr,"Invalid version format (non-numeric data)")}elsif ($d eq '_'){if ($strict){return BADVERSION($s,$errstr,"Invalid version format (no underscores)")}elsif (isDIGIT($d+1)){return BADVERSION($s,$errstr,"Invalid version format (alpha without decimal)")}else {return BADVERSION($s,$errstr,"Invalid version format (misplaced underscore)")}}elsif ($d){return BADVERSION($s,$errstr,"Invalid version format (non-numeric data)")}if ($d &&!isDIGIT($d)&& ($strict ||!($d eq ';' || isSPACE($d)|| $d eq '}'))){return BADVERSION($s,$errstr,"Invalid version format (fractional part required)")}while (isDIGIT($d)){$d++;$j++;if ($d eq '.' && isDIGIT($d-1)){if ($alpha){return BADVERSION($s,$errstr,"Invalid version format (underscores before decimal)")}if ($strict){return BADVERSION($s,$errstr,"Invalid version format (dotted-decimal versions must begin with 'v')")}$d=$s;$qv=TRUE;goto dotted_decimal_version}if ($d eq '_'){if ($strict){return BADVERSION($s,$errstr,"Invalid version format (no underscores)")}if ($alpha){return BADVERSION($s,$errstr,"Invalid version format (multiple underscores)")}if (!isDIGIT($d+1)){return BADVERSION($s,$errstr,"Invalid version format (misplaced underscore)")}$width=$j;$d++;$alpha=TRUE}}}version_prescan_finish: while (isSPACE($d)){$d++}if ($d &&!isDIGIT($d)&& (!($d eq ';' || $d eq '}'))){return BADVERSION($s,$errstr,"Invalid version format (non-numeric data)")}if ($saw_decimal > 1 && ($d-1)eq '.'){return BADVERSION($s,$errstr,"Invalid version format (trailing decimal)")}if (defined$sqv){$$sqv=$qv}if (defined$swidth){$$swidth=$width}if (defined$ssaw_decimal){$$ssaw_decimal=$saw_decimal}if (defined$salpha){$$salpha=$alpha}return$d}sub scan_version {my ($s,$rv,$qv)=@_;my$start;my$pos;my$last;my$errstr;my$saw_decimal=0;my$width=3;my$alpha=FALSE;my$vinf=FALSE;my@av;$s=new charstar$s;while (isSPACE($s)){$s++}$last=prescan_version($s,FALSE,\$errstr,\$qv,\$saw_decimal,\$width,\$alpha);if ($errstr){if ($s ne 'undef'){require Carp;Carp::croak($errstr)}}$start=$s;if ($s eq 'v'){$s++}$pos=$s;if ($qv){$$rv->{qv}=$qv}if ($alpha){$$rv->{alpha}=$alpha}if (!$qv && $width < 3){$$rv->{width}=$width}while (isDIGIT($pos)){$pos++}if (!isALPHA($pos)){my$rev;for (;;){$rev=0;{my$end=$pos;my$mult=1;my$orev;if (!$qv && $s > $start && $saw_decimal==1){$mult *= 100;while ($s < $end){$orev=$rev;$rev += $s * $mult;$mult /= 10;if ((abs($orev)> abs($rev))|| (abs($rev)> $VERSION_MAX)){warn("Integer overflow in version %d",$VERSION_MAX);$s=$end - 1;$rev=$VERSION_MAX;$vinf=1}$s++;if ($s eq '_'){$s++}}}else {while (--$end >= $s){$orev=$rev;$rev += $end * $mult;$mult *= 10;if ((abs($orev)> abs($rev))|| (abs($rev)> $VERSION_MAX)){warn("Integer overflow in version");$end=$s - 1;$rev=$VERSION_MAX;$vinf=1}}}}push@av,$rev;if ($vinf){$s=$last;last}elsif ($pos eq '.'){$pos++;if ($qv){while ($pos eq '0'){$pos++}}$s=$pos}elsif ($pos eq '_' && isDIGIT($pos+1)){$s=++$pos}elsif ($pos eq ',' && isDIGIT($pos+1)){$s=++$pos}elsif (isDIGIT($pos)){$s=$pos}else {$s=$pos;last}if ($qv){while (isDIGIT($pos)){$pos++}}else {my$digits=0;while ((isDIGIT($pos)|| $pos eq '_')&& $digits < 3){if ($pos ne '_'){$digits++}$pos++}}}}if ($qv){my$len=$#av;$len=2 - $len;while ($len-- > 0){push@av,0}}if ($vinf){$$rv->{original}="v.Inf";$$rv->{vinf}=1}elsif ($s > $start){$$rv->{original}=$start->currstr($s);if ($qv && $saw_decimal==1 && $start ne 'v'){$$rv->{original}='v' .$$rv->{original}}}else {$$rv->{original}='0';push(@av,0)}$$rv->{version}=\@av;if ($s eq 'undef'){$s += 5}return$s}sub new {my$class=shift;unless (defined$class or $#_ > 1){require Carp;Carp::croak('Usage: version::new(class, version)')}my$self=bless ({},ref ($class)|| $class);my$qv=FALSE;if ($#_==1){$qv=TRUE}my$value=pop;if (ref($value)&& eval('$value->isa("version")')){$self->{version}=[@{$value->{version}}];$self->{qv}=1 if$value->{qv};$self->{alpha}=1 if$value->{alpha};$self->{original}=''.$value->{original};return$self}if (not defined$value or $value =~ /^undef$/){push @{$self->{version}},0;$self->{original}="0";return ($self)}if (ref($value)=~ m/ARRAY|HASH/){require Carp;Carp::croak("Invalid version format (non-numeric data)")}$value=_un_vstring($value);if ($Config{d_setlocale}){use POSIX qw/locale_h/;use if$Config{d_setlocale},'locale';my$currlocale=setlocale(LC_ALL);if (localeconv()->{decimal_point}eq ','){$value =~ tr/,/./}}if ($value =~ /\d+.?\d*e[-+]?\d+/){$value=sprintf("%.9f",$value);$value =~ s/(0+)$//}my$s=scan_version($value,\$self,$qv);if ($s){warn("Version string '%s' contains invalid data; " ."ignoring: '%s'",$value,$s)}return ($self)}*parse=\&new;sub numify {my ($self)=@_;unless (_verify($self)){require Carp;Carp::croak("Invalid version object")}my$width=$self->{width}|| 3;my$alpha=$self->{alpha}|| "";my$len=$#{$self->{version}};my$digit=$self->{version}[0];my$string=sprintf("%d.",$digit);if ($alpha and warnings::enabled()){warnings::warn($WARN_CATEGORY,'alpha->numify() is lossy')}for (my$i=1 ;$i < $len ;$i++ ){$digit=$self->{version}[$i];if ($width < 3){my$denom=10**(3-$width);my$quot=int($digit/$denom);my$rem=$digit - ($quot * $denom);$string .= sprintf("%0".$width."d_%d",$quot,$rem)}else {$string .= sprintf("%03d",$digit)}}if ($len > 0){$digit=$self->{version}[$len];if ($alpha && $width==3){$string .= "_"}$string .= sprintf("%0".$width."d",$digit)}else {$string .= sprintf("000")}return$string}sub normal {my ($self)=@_;unless (_verify($self)){require Carp;Carp::croak("Invalid version object")}my$alpha=$self->{alpha}|| "";my$qv=$self->{qv}|| "";my$len=$#{$self->{version}};my$digit=$self->{version}[0];my$string=sprintf("v%d",$digit);for (my$i=1 ;$i < $len ;$i++ ){$digit=$self->{version}[$i];$string .= sprintf(".%d",$digit)}if ($len > 0){$digit=$self->{version}[$len];if ($alpha){$string .= sprintf("_%0d",$digit)}else {$string .= sprintf(".%0d",$digit)}}if ($len <= 2){for ($len=2 - $len;$len!=0;$len-- ){$string .= sprintf(".%0d",0)}}return$string}sub stringify {my ($self)=@_;unless (_verify($self)){require Carp;Carp::croak("Invalid version object")}return exists$self->{original}? $self->{original}: exists$self->{qv}? $self->normal : $self->numify}sub vcmp {require UNIVERSAL;my ($left,$right,$swap)=@_;my$class=ref($left);unless (UNIVERSAL::isa($right,$class)){$right=$class->new($right)}if ($swap){($left,$right)=($right,$left)}unless (_verify($left)){require Carp;Carp::croak("Invalid version object")}unless (_verify($right)){require Carp;Carp::croak("Invalid version format")}my$l=$#{$left->{version}};my$r=$#{$right->{version}};my$m=$l < $r ? $l : $r;my$lalpha=$left->is_alpha;my$ralpha=$right->is_alpha;my$retval=0;my$i=0;while ($i <= $m && $retval==0){$retval=$left->{version}[$i]<=> $right->{version}[$i];$i++}if ($retval==0 && $l==$r && $left->{version}[$m]==$right->{version}[$m]&& ($lalpha || $ralpha)){if ($lalpha &&!$ralpha){$retval=-1}elsif ($ralpha &&!$lalpha){$retval=+1}}if ($retval==0 && $l!=$r){if ($l < $r){while ($i <= $r && $retval==0){if ($right->{version}[$i]!=0){$retval=-1}$i++}}else {while ($i <= $l && $retval==0){if ($left->{version}[$i]!=0){$retval=+1}$i++}}}return$retval}sub vbool {my ($self)=@_;return vcmp($self,$self->new("0"),1)}sub vnoop {require Carp;Carp::croak("operation not supported with version object")}sub is_alpha {my ($self)=@_;return (exists$self->{alpha})}sub qv {my$value=shift;my$class=$CLASS;if (@_){$class=ref($value)|| $value;$value=shift}$value=_un_vstring($value);$value='v'.$value unless$value =~ /(^v|\d+\.\d+\.\d)/;my$obj=$CLASS->new($value);return bless$obj,$class}*declare=\&qv;sub is_qv {my ($self)=@_;return (exists$self->{qv})}sub _verify {my ($self)=@_;if (ref($self)&& eval {exists$self->{version}}&& ref($self->{version})eq 'ARRAY'){return 1}else {return 0}}sub _is_non_alphanumeric {my$s=shift;$s=new charstar$s;while ($s){return 0 if isSPACE($s);return 1 unless (isALPHA($s)|| isDIGIT($s)|| $s =~ /[.-]/);$s++}return 0}sub _un_vstring {my$value=shift;if (length($value)>= 1 && $value !~ /[,._]/ && _is_non_alphanumeric($value)){my$tvalue;if ($] >= 5.008_001){$tvalue=_find_magic_vstring($value);$value=$tvalue if length$tvalue}elsif ($] >= 5.006_000){$tvalue=sprintf("v%vd",$value);if ($tvalue =~ /^v\d+(\.\d+)*$/){$value=$tvalue}}}return$value}sub _find_magic_vstring {my$value=shift;my$tvalue='';require B;my$sv=B::svref_2object(\$value);my$magic=ref($sv)eq 'B::PVMG' ? $sv->MAGIC : undef;while ($magic){if ($magic->TYPE eq 'V'){$tvalue=$magic->PTR;$tvalue =~ s/^v?(.+)$/v$1/;last}else {$magic=$magic->MOREMAGIC}}return$tvalue}sub _VERSION {my ($obj,$req)=@_;my$class=ref($obj)|| $obj;no strict 'refs';if (exists$INC{"$class.pm"}and not %{"$class\::"}and $] >= 5.008){require Carp;Carp::croak("$class defines neither package nor VERSION" ."--version check failed")}my$version=eval "\$$class\::VERSION";if (defined$version){local $^W if $] <= 5.008;$version=version::vpp->new($version)}if (defined$req){unless (defined$version){require Carp;my$msg=$] < 5.006 ? "$class version $req required--this is only version " : "$class does not define \$$class\::VERSION" ."--version check failed";if ($ENV{VERSION_DEBUG}){Carp::confess($msg)}else {Carp::croak($msg)}}$req=version::vpp->new($req);if ($req > $version){require Carp;if ($req->is_qv){Carp::croak(sprintf ("%s version %s required--"."this is only version %s",$class,$req->normal,$version->normal))}else {Carp::croak(sprintf ("%s version %s required--"."this is only version %s",$class,$req->stringify,$version->stringify))}}}return defined$version ? $version->stringify : undef}1; +VERSION_VPP + +s/^ //mg for values %fatpacked; + +my $class = 'FatPacked::'.(0+\%fatpacked); +no strict 'refs'; +*{"${class}::files"} = sub { keys %{$_[0]} }; + +if ($] < 5.008) { + *{"${class}::INC"} = sub { + if (my $fat = $_[0]{$_[1]}) { + my $pos = 0; + my $last = length $fat; + return (sub { + return 0 if $pos == $last; + my $next = (1 + index $fat, "\n", $pos) || $last; + $_ .= substr $fat, $pos, $next - $pos; + $pos = $next; + return 1; + }); + } + }; +} + +else { + *{"${class}::INC"} = sub { + if (my $fat = $_[0]{$_[1]}) { + open my $fh, '<', \$fat + or die "FatPacker error loading $_[1] (could be a perl installation issue?)"; + return $fh; + } + return; + }; +} + +unshift @INC, bless \%fatpacked, $class; + } # END OF FATPACK CODE + + + +use strict; +use App::cpanminus::script; + + +unless (caller) { + my $app = App::cpanminus::script->new; + $app->parse_options(@ARGV); + exit $app->doit; +} + +__END__ + +=head1 NAME + +cpanm - get, unpack build and install modules from CPAN + +=head1 SYNOPSIS + + cpanm Test::More # install Test::More + cpanm MIYAGAWA/Plack-0.99_05.tar.gz # full distribution path + cpanm http://example.org/LDS/CGI.pm-3.20.tar.gz # install from URL + cpanm ~/dists/MyCompany-Enterprise-1.00.tar.gz # install from a local file + cpanm --interactive Task::Kensho # Configure interactively + cpanm . # install from local directory + cpanm --installdeps . # install all the deps for the current directory + cpanm -L extlib Plack # install Plack and all non-core deps into extlib + cpanm --mirror http://cpan.cpantesters.org/ DBI # use the fast-syncing mirror + cpanm --from https://cpan.metacpan.org/ Plack # use only the HTTPS mirror + +=head1 COMMANDS + +=over 4 + +=item (arguments) + +Command line arguments can be either a module name, distribution file, +local file path, HTTP URL or git repository URL. Following commands +will all work as you expect. + + cpanm Plack + cpanm Plack/Request.pm + cpanm MIYAGAWA/Plack-1.0000.tar.gz + cpanm /path/to/Plack-1.0000.tar.gz + cpanm http://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA/Plack-0.9990.tar.gz + cpanm git://github.com/plack/Plack.git + +Additionally, you can use the notation using C<~> and C<@> to specify +version for a given module. C<~> specifies the version requirement in +the L format, while C<@> pins the exact version, and +is a shortcut for C<~"== VERSION">. + + cpanm Plack~1.0000 # 1.0000 or later + cpanm Plack~">= 1.0000, < 2.0000" # latest of 1.xxxx + cpanm Plack@0.9990 # specific version. same as Plack~"== 0.9990" + +The version query including specific version or range will be sent to +L to search for previous releases. The query will search for +BackPAN archives by default, unless you specify C<--dev> option, in +which case, archived versions will be filtered out. + +For a git repository, you can specify a branch, tag, or commit SHA to +build. The default is C + + cpanm git://github.com/plack/Plack.git@1.0000 # tag + cpanm git://github.com/plack/Plack.git@devel # branch + +=item -i, --install + +Installs the modules. This is a default behavior and this is just a +compatibility option to make it work like L or L. + +=item --self-upgrade + +Upgrades itself. It's just an alias for: + + cpanm App::cpanminus + +=item --info + +Displays the distribution information in +C format in the standard out. + +=item --installdeps + +Installs the dependencies of the target distribution but won't build +itself. Handy if you want to try the application from a version +controlled repository such as git. + + cpanm --installdeps . + +=item --look + +Download and unpack the distribution and then open the directory with +your shell. Handy to poke around the source code or do manual +testing. + +=item -h, --help + +Displays the help message. + +=item -V, --version + +Displays the version number. + +=back + +=head1 OPTIONS + +You can specify the default options in C environment variable. + +=over 4 + +=item -f, --force + +Force install modules even when testing failed. + +=item -n, --notest + +Skip the testing of modules. Use this only when you just want to save +time for installing hundreds of distributions to the same perl and +architecture you've already tested to make sure it builds fine. + +Defaults to false, and you can say C<--no-notest> to override when it +is set in the default options in C. + +=item --test-only + +Run the tests only, and do not install the specified module or +distributions. Handy if you want to verify the new (or even old) +releases pass its unit tests without installing the module. + +Note that if you specify this option with a module or distribution +that has dependencies, these dependencies will be installed if you +don't currently have them. + +=item -S, --sudo + +Switch to the root user with C when installing modules. Use this +if you want to install modules to the system perl include path. + +Defaults to false, and you can say C<--no-sudo> to override when it is +set in the default options in C. + +=item -v, --verbose + +Makes the output verbose. It also enables the interactive +configuration. (See --interactive) + +=item -q, --quiet + +Makes the output even more quiet than the default. It only shows the +successful/failed dependencies to the output. + +=item -l, --local-lib + +Sets the L compatible path to install modules to. You +don't need to set this if you already configure the shell environment +variables using L, but this can be used to override that +as well. + +=item -L, --local-lib-contained + +Same with C<--local-lib> but with L<--self-contained> set. All +non-core dependencies will be installed even if they're already +installed. + +For instance, + + cpanm -L extlib Plack + +would install Plack and all of its non-core dependencies into the +directory C, which can be loaded from your application with: + + use local::lib '/path/to/extlib'; + +Note that this option does B reliably work with perl installations +supplied by operating system vendors that strips standard modules from perl, +such as RHEL, Fedora and CentOS, B you also install packages supplying +all the modules that have been stripped. For these systems you will probably +want to install the C meta-package which does just that. + +=item --self-contained + +When examining the dependencies, assume no non-core modules are +installed on the system. Handy if you want to bundle application +dependencies in one directory so you can distribute to other machines. + +=item --exclude-vendor + +Don't include modules installed under the 'vendor' paths when searching for +core modules when the C<--self-contained> flag is in effect. This restores +the behaviour from before version 1.7023 + +=item --mirror + +Specifies the base URL for the CPAN mirror to use, such as +C (you can omit the trailing slash). You +can specify multiple mirror URLs by repeating the command line option. + +You can use a local directory that has a CPAN mirror structure +(created by tools such as L or L) by using a special +URL scheme C. If the given URL begins with `/` (without any +scheme), it is considered as a file scheme as well. + + cpanm --mirror file:///path/to/mirror + cpanm --mirror ~/minicpan # Because shell expands ~ to /home/user + +Defaults to C. + +=item --mirror-only + +Download the mirror's 02packages.details.txt.gz index file instead of +querying the CPAN Meta DB. This will also effectively opt out sending +your local perl versions to backend database servers such as CPAN Meta +DB and MetaCPAN. + +Select this option if you are using a local mirror of CPAN, such as +minicpan when you're offline, or your own CPAN index (a.k.a darkpan). + +=item --from, -M + + cpanm -M https://cpan.metacpan.org/ + cpanm --from https://cpan.metacpan.org/ + +Use the given mirror URL and its index as the I source to search +and download modules from. + +It works similar to C<--mirror> and C<--mirror-only> combined, with a +small difference: unlike C<--mirror> which I the URL to the +list of mirrors, C<--from> (or C<-M> for short) uses the specified URL +as its I source to download index and modules from. This makes +the option always override the default mirror, which might have been +set via global options such as the one set by C +environment variable. + +B It might be useful if you name these options with your shell +aliases, like: + + alias minicpanm='cpanm --from ~/minicpan' + alias darkpan='cpanm --from http://mycompany.example.com/DPAN' + +=item --mirror-index + +B: Specifies the file path to C<02packages.details.txt> +for module search index. + +=item --cpanmetadb + +B: Specifies an alternate URI for CPAN MetaDB index lookups. + +=item --metacpan + +Prefers MetaCPAN API over CPAN MetaDB. + +=item --cpanfile + +B: Specified an alternate path for cpanfile to search for, +when C<--installdeps> command is in use. Defaults to C. + +=item --prompt + +Prompts when a test fails so that you can skip, force install, retry +or look in the shell to see what's going wrong. It also prompts when +one of the dependency failed if you want to proceed the installation. + +Defaults to false, and you can say C<--no-prompt> to override if it's +set in the default options in C. + +=item --dev + +B: search for a newer developer release as well. Defaults to false. + +=item --reinstall + +cpanm, when given a module name in the command line (i.e. C), checks the locally installed version first and skips if it is +already installed. This option makes it skip the check, so: + + cpanm --reinstall Plack + +would reinstall L even if your locally installed version is +latest, or even newer (which would happen if you install a developer +release from version control repositories). + +Defaults to false. + +=item --interactive + +Makes the configuration (such as C and C) +interactive, so you can answer questions in the distribution that +requires custom configuration or Task:: distributions. + +Defaults to false, and you can say C<--no-interactive> to override +when it's set in the default options in C. + +=item --pp, --pureperl + +Prefer Pure perl build of modules by setting C for +MakeMaker and C<--pureperl-only> for Build.PL based +distributions. Note that not all of the CPAN modules support this +convention yet. + +=item --with-recommends, --with-suggests + +B: Installs dependencies declared as C and +C respectively, per META spec. When these dependencies fail +to install, cpanm continues the installation, since they're just +recommendation/suggestion. + +Enabling this could potentially make a circular dependency for a few +modules on CPAN, when C adds a module that C +back the module in return. + +There's also C<--without-recommend> and C<--without-suggests> to +override the default decision made earlier in C. + +Defaults to false for both. + +=item --with-develop + +B: Installs develop phase dependencies in META files or +C when used with C<--installdeps>. Defaults to false. + +=item --with-configure + +B: Installs configure phase dependencies in C +when used with C<--installdeps>. Defaults to false. + +=item --with-feature, --without-feature, --with-all-features + +B: Specifies the feature to enable, if a module supports +optional features per META spec 2.0. + + cpanm --with-feature=opt_csv Spreadsheet::Read + +the features can also be interactively chosen when C<--interactive> +option is enabled. + +C<--with-all-features> enables all the optional features, and +C<--without-feature> can select a feature to disable. + +=item --configure-timeout, --build-timeout, --test-timeout + +Specify the timeout length (in seconds) to wait for the configure, +build and test process. Current default values are: 60 for configure, +3600 for build and 1800 for test. + +=item --configure-args, --build-args, --test-args, --install-args + +B: Pass arguments for configure/build/test/install +commands respectively, for a given module to install. + + cpanm DBD::mysql --configure-args="--cflags=... --libs=..." + +The argument is only enabled for the module passed as a command line +argument, not dependencies. + +=item --scandeps + +B: Scans the depencencies of given modules and output the +tree in a text format. (See C<--format> below for more options) + +Because this command doesn't actually install any distributions, it +will be useful that by typing: + + cpanm --scandeps Catalyst::Runtime + +you can make sure what modules will be installed. + +This command takes into account which modules you already have +installed in your system. If you want to see what modules will be +installed against a vanilla perl installation, you might want to +combine it with C<-L> option. + +=item --format + +B: Determines what format to display the scanned +dependency tree. Available options are C, C, C and +C. + +=over 8 + +=item tree + +Displays the tree in a plain text format. This is the default value. + +=item json, yaml + +Outputs the tree in a JSON or YAML format. L and L modules +need to be installed respectively. The output tree is represented as a +recursive tuple of: + + [ distribution, dependencies ] + +and the container is an array containing the root elements. Note that +there may be multiple root nodes, since you can give multiple modules +to the C<--scandeps> command. + +=item dists + +C is a special output format, where it prints the distribution +filename in the I after the dependency resolution, +like: + + GAAS/MIME-Base64-3.13.tar.gz + GAAS/URI-1.58.tar.gz + PETDANCE/HTML-Tagset-3.20.tar.gz + GAAS/HTML-Parser-3.68.tar.gz + GAAS/libwww-perl-5.837.tar.gz + +which means you can install these distributions in this order without +extra dependencies. When combined with C<-L> option, it will be useful +to replay installations on other machines. + +=back + +=item --save-dists + +Specifies the optional directory path to copy downloaded tarballs in +the CPAN mirror compatible directory structure +i.e. I + +If the distro tarball did not come from CPAN, for example from a local +file or from GitHub, then it will be saved under +I. + +=item --uninst-shadows + +Uninstalls the shadow files of the distribution that you're +installing. This eliminates the confusion if you're trying to install +core (dual-life) modules from CPAN against perl 5.10 or older, or +modules that used to be XS-based but switched to pure perl at some +version. + +If you run cpanm as root and use C or equivalent to +specify custom installation path, you SHOULD disable this option so +you won't accidentally uninstall dual-life modules from the core +include path. + +Defaults to true if your perl version is smaller than 5.12, and you +can disable that with C<--no-uninst-shadows>. + +B: Since version 1.3000 this flag is turned off by default for +perl newer than 5.12, since with 5.12 @INC contains site_perl directory +I the perl core library path, and uninstalling shadows is not +necessary anymore and does more harm by deleting files from the core +library path. + +=item --uninstall, -U + +Uninstalls a module from the library path. It finds a packlist for +given modules, and removes all the files included in the same +distribution. + +If you enable local::lib, it only removes files from the local::lib +directory. + +If you try to uninstall a module in C directory (i.e. core +module), an error will be thrown. + +A dialog will be prompted to confirm the files to be deleted. If you pass +C<-f> option as well, the dialog will be skipped and uninstallation +will be forced. + +=item --cascade-search + +B: Specifies whether to cascade search when you specify +multiple mirrors and a mirror doesn't have a module or has a lower +version of the module than requested. Defaults to false. + +=item --skip-installed + +Specifies whether a module given in the command line is skipped if its latest +version is already installed. Defaults to true. + +B: The C environment variable have to be correctly set +for this to work with modules installed using L, unless +you always use the C<-l> option. + +=item --skip-satisfied + +B: Specifies whether a module (and version) given in the +command line is skipped if it's already installed. + +If you run: + + cpanm --skip-satisfied CGI DBI~1.2 + +cpanm won't install them if you already have CGI (for whatever +versions) or have DBI with version higher than 1.2. It is similar to +C<--skip-installed> but while C<--skip-installed> checks if the +I version of CPAN is installed, C<--skip-satisfied> checks if +a requested version (or not, which means any version) is installed. + +Defaults to false. + +=item --verify + +Verify the integrity of distribution files retrieved from CPAN using CHECKSUMS +file, and SIGNATURES file (if found in the distribution). Defaults to false. + +Using this option does not verify the integrity of the CHECKSUMS file, and it's +unsafe to rely on this option if you're using a CPAN mirror that you do not trust. + +=item --report-perl-version + +Whether it reports the locally installed perl version to the various +web server as part of User-Agent. Defaults to true unless CI related +environment variables such as C, C or C +is enabled. You can disable it by using C<--no-report-perl-version>. + +=item --auto-cleanup + +Specifies the number of days in which cpanm's work directories +expire. Defaults to 7, which means old work directories will be +cleaned up in one week. + +You can set the value to C<0> to make cpan never cleanup those +directories. + +=item --man-pages + +Generates man pages for executables (man1) and libraries (man3). + +Defaults to true (man pages generated) unless C<-L|--local-lib-contained> +option is supplied in which case it's set to false. You can disable +it with C<--no-man-pages>. + +=item --lwp + +Uses L module to download stuff over HTTP. Defaults to true, and +you can say C<--no-lwp> to disable using LWP, when you want to upgrade +LWP from CPAN on some broken perl systems. + +=item --wget + +Uses GNU Wget (if available) to download stuff. Defaults to true, and +you can say C<--no-wget> to disable using Wget (versions of Wget older +than 1.9 don't support the C<--retry-connrefused> option used by cpanm). + +=item --curl + +Uses cURL (if available) to download stuff. Defaults to true, and +you can say C<--no-curl> to disable using cURL. + +Normally with C<--lwp>, C<--wget> and C<--curl> options set to true +(which is the default) cpanm tries L, Wget, cURL and L +(in that order) and uses the first one available. + +=back + +=head1 ENVIRONMENT VARIABLES + +=over 4 + +=item PERL_CPANM_HOME + +The directory cpanm should use to store downloads and build and test +modules. Defaults to the C<.cpanm> directory in your user's home +directory. + +=item PERL_CPANM_OPT + +If set, adds a set of default options to every cpanm command. These +options come first, and so are overridden by command-line options. + +=back + +=head1 SEE ALSO + +L + +=head1 COPYRIGHT + +Copyright 2010- Tatsuhiko Miyagawa. + +=head1 AUTHOR + +Tatsuhiko Miyagawa + +=cut diff --git a/misc/gnuplot.Makefile b/misc/gnuplot.Makefile new file mode 100644 index 0000000..70f7d51 --- /dev/null +++ b/misc/gnuplot.Makefile @@ -0,0 +1,1256 @@ +# Makefile.in generated by automake 1.13.1 from Makefile.am. +# src/Makefile. Generated from Makefile.in by configure. + +# Copyright (C) 1994-2012 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + + +# makefile.all generated automatically by GNU make + + + +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/gnuplot +pkgincludedir = $(includedir)/gnuplot +pkglibdir = $(libdir)/gnuplot +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +bin_PROGRAMS = gnuplot$(EXEEXT) +noinst_PROGRAMS = bf_test$(EXEEXT) +pkglibexec_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) +am__append_1 = gnuplot_x11 +#am__append_2 = wxterminal/wxt_gui.cpp +#am__append_3 = wxterminal/gp_cairo.c wxterminal/gp_cairo_helpers.c +#am__append_4 = bitmap.c +#am__append_5 = -DQTGNUPLOT_DATA_DIR=\"$(qtgnuplotdir)\" + +# Qt terminal sources +#am__append_6 = qtterminal/qt_term.cpp +##am__append_7 = qtterminal/qt_term_mac.m +#am__append_8 = gnuplot_qt +DIST_COMMON = $(srcdir)/makefile.all $(srcdir)/Makefile.in \ + $(srcdir)/Makefile.am $(top_srcdir)/mkinstalldirs \ + $(top_srcdir)/depcomp README +subdir = src +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/alpha.m4 \ + $(top_srcdir)/m4/apple.m4 $(top_srcdir)/m4/beos.m4 \ + $(top_srcdir)/m4/msdos.m4 $(top_srcdir)/m4/next.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkglibexecdir)" \ + "$(DESTDIR)$(qtgnuplotdir)" +am__EXEEXT_1 = gnuplot_x11$(EXEEXT) +#am__EXEEXT_2 = gnuplot_qt$(EXEEXT) +PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) $(pkglibexec_PROGRAMS) +am_bf_test_OBJECTS = bf_test.$(OBJEXT) binary.$(OBJEXT) \ + alloc.$(OBJEXT) +bf_test_OBJECTS = $(am_bf_test_OBJECTS) +bf_test_LDADD = $(LDADD) +am__gnuplot_SOURCES_DIST = alloc.c alloc.h ansichek.h axis.c axis.h \ + binary.c breaders.c breaders.h bitmap.h color.c color.h \ + command.c command.h contour.c contour.h datafile.c datafile.h \ + dynarray.c dynarray.h eval.c eval.h fit.c fit.h gadgets.c \ + gadgets.h getcolor.c getcolor.h gp_hist.h gp_time.h gp_types.h \ + gplt_x11.h graph3d.c graph3d.h graphics.c graphics.h help.c \ + help.h hidden3d.c hidden3d.h history.c internal.c internal.h \ + interpol.c interpol.h matrix.c matrix.h misc.c misc.h mouse.c \ + mouse.h mousecmn.h national.h parse.c parse.h plot.c plot.h \ + plot2d.c plot2d.h plot3d.c plot3d.h pm3d.c pm3d.h readline.c \ + readline.h save.c save.h scanner.c scanner.h set.c setshow.h \ + show.c specfun.c specfun.h standard.c standard.h stats.h \ + stats.c stdfn.c stdfn.h syscfg.h tables.c tables.h tabulate.c \ + tabulate.h template.h term_api.h term.c term.h time.c unset.c \ + util.c util.h util3d.c util3d.h variable.c variable.h \ + version.c version.h wxterminal/wxt_gui.cpp \ + wxterminal/gp_cairo.c wxterminal/gp_cairo_helpers.c bitmap.c \ + qtterminal/qt_term.cpp qtterminal/qt_term_mac.m +am__dirstamp = $(am__leading_dot)dirstamp +#am__objects_1 = wxterminal/wxt_gui.$(OBJEXT) +#am__objects_2 = wxterminal/gp_cairo.$(OBJEXT) \ +# wxterminal/gp_cairo_helpers.$(OBJEXT) +#am__objects_3 = bitmap.$(OBJEXT) +#am__objects_4 = qtterminal/qt_term.$(OBJEXT) +##am__objects_5 = qtterminal/qt_term_mac.$(OBJEXT) +am_gnuplot_OBJECTS = alloc.$(OBJEXT) axis.$(OBJEXT) binary.$(OBJEXT) \ + breaders.$(OBJEXT) color.$(OBJEXT) command.$(OBJEXT) \ + contour.$(OBJEXT) datafile.$(OBJEXT) dynarray.$(OBJEXT) \ + eval.$(OBJEXT) fit.$(OBJEXT) gadgets.$(OBJEXT) \ + getcolor.$(OBJEXT) graph3d.$(OBJEXT) graphics.$(OBJEXT) \ + help.$(OBJEXT) hidden3d.$(OBJEXT) history.$(OBJEXT) \ + internal.$(OBJEXT) interpol.$(OBJEXT) matrix.$(OBJEXT) \ + misc.$(OBJEXT) mouse.$(OBJEXT) parse.$(OBJEXT) plot.$(OBJEXT) \ + plot2d.$(OBJEXT) plot3d.$(OBJEXT) pm3d.$(OBJEXT) \ + readline.$(OBJEXT) save.$(OBJEXT) scanner.$(OBJEXT) \ + set.$(OBJEXT) show.$(OBJEXT) specfun.$(OBJEXT) \ + standard.$(OBJEXT) stats.$(OBJEXT) stdfn.$(OBJEXT) \ + tables.$(OBJEXT) tabulate.$(OBJEXT) term.$(OBJEXT) \ + time.$(OBJEXT) unset.$(OBJEXT) util.$(OBJEXT) util3d.$(OBJEXT) \ + variable.$(OBJEXT) version.$(OBJEXT) $(am__objects_1) \ + $(am__objects_2) $(am__objects_3) $(am__objects_4) \ + $(am__objects_5) +gnuplot_OBJECTS = $(am_gnuplot_OBJECTS) +am__DEPENDENCIES_1 = +gnuplot_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +am__gnuplot_qt_SOURCES_DIST = qtterminal/gnuplot_qt.cpp \ + qtterminal/QtGnuplotWindow.cpp \ + qtterminal/QtGnuplotApplication.cpp \ + qtterminal/QtGnuplotWidget.cpp qtterminal/QtGnuplotScene.cpp \ + qtterminal/QtGnuplotItems.cpp qtterminal/QtGnuplotEvent.cpp +#am_gnuplot_qt_OBJECTS = \ +# qtterminal/gnuplot_qt.$(OBJEXT) \ +# qtterminal/QtGnuplotWindow.$(OBJEXT) \ +# qtterminal/QtGnuplotApplication.$(OBJEXT) \ +# qtterminal/QtGnuplotWidget.$(OBJEXT) \ +# qtterminal/QtGnuplotScene.$(OBJEXT) \ +# qtterminal/QtGnuplotItems.$(OBJEXT) \ +# qtterminal/QtGnuplotEvent.$(OBJEXT) +#nodist_gnuplot_qt_OBJECTS = \ +# moc_QtGnuplotWindow.$(OBJEXT) \ +# moc_QtGnuplotApplication.$(OBJEXT) \ +# moc_QtGnuplotWidget.$(OBJEXT) \ +# moc_QtGnuplotScene.$(OBJEXT) \ +# moc_QtGnuplotEvent.$(OBJEXT) \ +# qrc_QtGnuplotResource.$(OBJEXT) +gnuplot_qt_OBJECTS = $(am_gnuplot_qt_OBJECTS) \ + $(nodist_gnuplot_qt_OBJECTS) +#gnuplot_qt_DEPENDENCIES = $(am__DEPENDENCIES_1) +am__gnuplot_x11_SOURCES_DIST = gplt_x11.c gplt_x11.h gpexecute.c \ + gpexecute.h mousecmn.h version.c version.h +am_gnuplot_x11_OBJECTS = gplt_x11.$(OBJEXT) \ + gpexecute.$(OBJEXT) version.$(OBJEXT) +gnuplot_x11_OBJECTS = $(am_gnuplot_x11_OBJECTS) +gnuplot_x11_DEPENDENCIES = getcolor_x11.o \ + $(am__DEPENDENCIES_1) +AM_V_P = $(am__v_P_$(V)) +am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY)) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I. -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_$(V)) +am__v_CXX_ = $(am__v_CXX_$(AM_DEFAULT_VERBOSITY)) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = +CXXLD = $(CXX) +CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ + -o $@ +AM_V_CXXLD = $(am__v_CXXLD_$(V)) +am__v_CXXLD_ = $(am__v_CXXLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = +OBJCCOMPILE = $(OBJC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_OBJCFLAGS) $(OBJCFLAGS) +AM_V_OBJC = $(am__v_OBJC_$(V)) +am__v_OBJC_ = $(am__v_OBJC_$(AM_DEFAULT_VERBOSITY)) +am__v_OBJC_0 = @echo " OBJC " $@; +am__v_OBJC_1 = +OBJCLD = $(OBJC) +OBJCLINK = $(OBJCLD) $(AM_OBJCFLAGS) $(OBJCFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +AM_V_OBJCLD = $(am__v_OBJCLD_$(V)) +am__v_OBJCLD_ = $(am__v_OBJCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_OBJCLD_0 = @echo " OBJCLD " $@; +am__v_OBJCLD_1 = +SOURCES = $(bf_test_SOURCES) $(gnuplot_SOURCES) \ + $(EXTRA_gnuplot_SOURCES) $(gnuplot_qt_SOURCES) \ + $(nodist_gnuplot_qt_SOURCES) $(gnuplot_x11_SOURCES) +DIST_SOURCES = $(bf_test_SOURCES) $(am__gnuplot_SOURCES_DIST) \ + $(EXTRA_gnuplot_SOURCES) $(am__gnuplot_qt_SOURCES_DIST) \ + $(am__gnuplot_x11_SOURCES_DIST) +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +DATA = $(qtgnuplot_DATA) +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = beos wxterminal qtterminal +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" + +# in the spirit of automake ... +pkglibexecdir = $(libexecdir)/gnuplot/4.6 +transform = s,x,x, +ACLOCAL = ${SHELL} /public/jxyue/Projects/LRSDAY_dev/build/gnuplot-4.6.6/missing aclocal-1.13 +AMTAR = $${TAR-tar} +AM_DEFAULT_VERBOSITY = 1 +AUTOCONF = ${SHELL} /public/jxyue/Projects/LRSDAY_dev/build/gnuplot-4.6.6/missing autoconf +AUTOHEADER = ${SHELL} /public/jxyue/Projects/LRSDAY_dev/build/gnuplot-4.6.6/missing autoheader +AUTOMAKE = ${SHELL} /public/jxyue/Projects/LRSDAY_dev/build/gnuplot-4.6.6/missing automake-1.13 +AWK = gawk +CAIROEPS_CFLAGS = +CAIROEPS_LIBS = +CAIROPANGO_CFLAGS = +CAIROPANGO_LIBS = +CAIROPDF_CFLAGS = +CAIROPDF_LIBS = +CC = gcc +CCDEPMODE = depmode=gcc3 +CC_FOR_BUILD = gcc +CFLAGS = -g -O2 +CPP = gcc -E +CPPFLAGS = +CXX = c++ +CXXCPP = c++ -E +CXXDEPMODE = depmode=gcc3 +CXXFLAGS = -g -O2 +CYGPATH_W = echo +DEFS = -DHAVE_CONFIG_H +DEPDIR = .deps +DIST_CONTACT = +DVIPS = no +ECHO_C = +ECHO_N = -n +ECHO_T = +EGREP = /usr/bin/grep -E +EMACS = emacs +EMACSLOADPATH = +EXEEXT = +GDLIB_CONFIG = +GIHDIR = ${datarootdir}/gnuplot/4.6 +GREP = /usr/bin/grep +GTK28_CFLAGS = +GTK28_LIBS = +GTK_CFLAGS = +GTK_LIBS = +INSTALL = /usr/bin/install -c +INSTALL_DATA = ${INSTALL} -m 644 +INSTALL_PROGRAM = ${INSTALL} +INSTALL_SCRIPT = ${INSTALL} +INSTALL_STRIP_PROGRAM = $(install_sh) -c -s +KPSEXPAND = kpsexpand +LASERGNU = lasergnu-noinstall +LATEX = no +LDFLAGS = +LIBOBJS = +LIBRARIES_FOR_X = -lX11 +#LIBS = -lm +LIBS = -lm -liconv +LINUXSUID = +LISPDIR = lisp +LN_S = ln -s +LRELEASE = +LTLIBOBJS = +LUA_CFLAGS = +LUA_LIBS = +MAINT = # +MAKEINFO = ${SHELL} /public/jxyue/Projects/LRSDAY_dev/build/gnuplot-4.6.6/missing makeinfo +MKDIR_P = /usr/bin/mkdir -p +MOC = +OBJC = gcc +OBJCDEPMODE = depmode=gcc3 +OBJCFLAGS = +OBJEXT = o +PACKAGE = gnuplot +PACKAGE_BUGREPORT = +PACKAGE_NAME = gnuplot +PACKAGE_STRING = gnuplot 4.6.6 +PACKAGE_TARNAME = gnuplot +PACKAGE_URL = +PACKAGE_VERSION = 4.6.6 +PANGO_1_10_2_CFLAGS = +PANGO_1_10_2_LIBS = +PATH_SEPARATOR = : +PDFLATEX = no +PDFLIB_CONFIG = +PKG_CONFIG = /usr/bin/pkg-config +PLAINTEX = no +QT_CFLAGS = +QT_LIBS = +RCC = +SET_MAKE = +SHELL = /bin/sh +STRIP = +TERMLIBS = -lreadline -lncurses -lz +TERMXLIBS = +TEXDIR = no +TEXHASH = texhash +TROFF = troff +TUTORIAL = notutorial +UIC = +VERSION = 4.6.6 +VERSION_MAJOR = 4.6 +WX_CONFIG = +WX_LIBS = +X11_APPDEFAULTS_DIR = /etc/X11/app-defaults/ +XMKMF = +X_CFLAGS = +X_EXTRA_LIBS = +X_LIBS = +X_PRE_LIBS = -lSM -lICE +abs_builddir = /public/jxyue/Projects/LRSDAY_dev/build/gnuplot-4.6.6/src +abs_srcdir = /public/jxyue/Projects/LRSDAY_dev/build/gnuplot-4.6.6/src +abs_top_builddir = /public/jxyue/Projects/LRSDAY_dev/build/gnuplot-4.6.6 +abs_top_srcdir = /public/jxyue/Projects/LRSDAY_dev/build/gnuplot-4.6.6 +ac_ct_CC = gcc +ac_ct_CXX = +ac_ct_OBJC = gcc +am__include = include +am__leading_dot = . +am__quote = +am__tar = $${TAR-tar} chof - "$$tardir" +am__untar = $${TAR-tar} xf - +bindir = ${exec_prefix}/bin +build_alias = +builddir = . +datadir = ${datarootdir} +datarootdir = ${prefix}/share +docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} +dvidir = ${docdir} +exec_prefix = /public/jxyue/Projects/LRSDAY_dev/build/gnuplot-4.6.6 +host_alias = +htmldir = ${docdir} +includedir = ${prefix}/include +infodir = ${datarootdir}/info +install_sh = ${SHELL} /public/jxyue/Projects/LRSDAY_dev/build/gnuplot-4.6.6/install-sh +libdir = ${exec_prefix}/lib +libexecdir = ${exec_prefix}/libexec +lispdir = ${datarootdir}/emacs/site-lisp +localedir = ${datarootdir}/locale +localstatedir = ${prefix}/var +mandir = ${datarootdir}/man +mkdir_p = $(MKDIR_P) +oldincludedir = /usr/include +pdfdir = ${docdir} +prefix = /public/jxyue/Projects/LRSDAY_dev/build/gnuplot-4.6.6 +program_transform_name = s,x,x, +psdir = ${docdir} +sbindir = ${exec_prefix}/sbin +sharedstatedir = ${prefix}/com +srcdir = . +subdirs = lisp +sysconfdir = ${prefix}/etc +target_alias = +top_build_prefix = ../ +top_builddir = .. +top_srcdir = .. +AUTOMAKE_OPTIONS = foreign subdir-objects + +# Where to send email about bugs and comments (locally) +EMAIL = gnuplot-bugs@lists.sourceforge.net + +# Default help file location +HELPFILE = ${datarootdir}/gnuplot/4.6/gnuplot.gih + +# Location of X11 app defaults +XAPPLRESDIR = /etc/X11/app-defaults/ + +# Default X11 driver location +X11_DRIVER_DIR = $(pkglibexecdir) + +# Default Qt driver location +QT_DRIVER_DIR = $(pkglibexecdir) + +# Default lua driver location +GNUPLOT_LUA_DIR = $(pkgdatadir)/$(VERSION_MAJOR)/lua + +# Default javascript location +GNUPLOT_JS_DIR = $(pkgdatadir)/$(VERSION_MAJOR)/js + +# Default Postscript prologues location +GNUPLOT_PS_DIR = $(pkgdatadir)/$(VERSION_MAJOR)/PostScript + +# System-wide initialization file +GNUPLOT_SHARE_DIR = $(pkgdatadir)/$(VERSION_MAJOR) +GNUPLOT_X11 = `echo gnuplot_x11 | sed '$(transform)'`$(EXEEXT) +AM_CPPFLAGS = -I../term -I$(top_srcdir)/term -DBINDIR=\"$(bindir)\" \ + -DX11_DRIVER_DIR=\"$(X11_DRIVER_DIR)\" \ + -DQT_DRIVER_DIR=\"$(QT_DRIVER_DIR)\" \ + -DGNUPLOT_SHARE_DIR=\"$(GNUPLOT_SHARE_DIR)\" \ + -DGNUPLOT_PS_DIR=\"$(GNUPLOT_PS_DIR)\" \ + -DGNUPLOT_JS_DIR=\"$(GNUPLOT_JS_DIR)\" \ + -DGNUPLOT_LUA_DIR=\"$(GNUPLOT_LUA_DIR)\" \ + -DCONTACT=\"$(EMAIL)\" -DHELPFILE=\"$(HELPFILE)\" \ + -DGNUPLOT_X11=\"$(GNUPLOT_X11)\" \ + -DXAPPLRESDIR=\"$(XAPPLRESDIR)\" $(am__append_5) +gnuplot_SOURCES = alloc.c alloc.h ansichek.h axis.c axis.h binary.c \ + breaders.c breaders.h bitmap.h color.c color.h command.c \ + command.h contour.c contour.h datafile.c datafile.h dynarray.c \ + dynarray.h eval.c eval.h fit.c fit.h gadgets.c gadgets.h \ + getcolor.c getcolor.h gp_hist.h gp_time.h gp_types.h \ + gplt_x11.h graph3d.c graph3d.h graphics.c graphics.h help.c \ + help.h hidden3d.c hidden3d.h history.c internal.c internal.h \ + interpol.c interpol.h matrix.c matrix.h misc.c misc.h mouse.c \ + mouse.h mousecmn.h national.h parse.c parse.h plot.c plot.h \ + plot2d.c plot2d.h plot3d.c plot3d.h pm3d.c pm3d.h readline.c \ + readline.h save.c save.h scanner.c scanner.h set.c setshow.h \ + show.c specfun.c specfun.h standard.c standard.h stats.h \ + stats.c stdfn.c stdfn.h syscfg.h tables.c tables.h tabulate.c \ + tabulate.h template.h term_api.h term.c term.h time.c unset.c \ + util.c util.h util3d.c util3d.h variable.c variable.h \ + version.c version.h $(am__append_2) $(am__append_3) \ + $(am__append_4) $(am__append_6) $(am__append_7) +gnuplot_LDADD = $(TERMLIBS) $(TERMXLIBS) $(WX_LIBS) $(QT_LIBS) +gnuplot_x11_SOURCES = gplt_x11.c gplt_x11.h gpexecute.c gpexecute.h mousecmn.h version.c version.h +XLIBS = -lX11 +gnuplot_x11_LDADD = getcolor_x11.o $(XLIBS) +bf_test_SOURCES = bf_test.c binary.c binary.h alloc.c +#d_beos = beos +SUBDIRS = $(d_beos) wxterminal qtterminal +EXTRA_gnuplot_SOURCES = corplot.c os9.c strftime.c vms.c +EXTRA_DIST = GNUmakefile Makefile.maint NeXT OpenStep README \ +corgraph.asm genopt.com gnuplot.opt header.mac \ +hrcgraph.asm intergra.x11 lasergnu lineproc.mac linkopt.vms \ +makefile.all makefile.awc os2 pcgraph.asm win x11.opt \ +$(EXTRA_gnuplot_SOURCES) + + +# List of compiles translation files +#TRANSLATIONS = qtgnuplot_fr.qm qtgnuplot_ja.qm + +# Install translation files +#qtgnuplotdir = $(pkgdatadir)/$(VERSION_MAJOR)/qt +#qtgnuplot_DATA = $(TRANSLATIONS) +#nodist_gnuplot_qt_SOURCES = moc_QtGnuplotWindow.cpp moc_QtGnuplotApplication.cpp \ +# moc_QtGnuplotWidget.cpp moc_QtGnuplotScene.cpp \ +# moc_QtGnuplotEvent.cpp qrc_QtGnuplotResource.cpp + +#gnuplot_qt_SOURCES = qtterminal/gnuplot_qt.cpp qtterminal/QtGnuplotWindow.cpp \ +#qtterminal/QtGnuplotApplication.cpp qtterminal/QtGnuplotWidget.cpp \ +#qtterminal/QtGnuplotScene.cpp qtterminal/QtGnuplotItems.cpp \ +#qtterminal/QtGnuplotEvent.cpp + +#gnuplot_qt_LDADD = $(QT_LIBS) + +# embed example (uncomment to build it) + +# bin_PROGRAMS += embed_example +# +# nodist_embed_example_SOURCES = moc_embed_example.cpp moc_QtGnuplotInstance.cpp \ +# moc_QtGnuplotWidget.cpp moc_QtGnuplotScene.cpp \ +# moc_QtGnuplotEvent.cpp qrc_QtGnuplotResource.cpp +# +# embed_example_SOURCES = qtterminal/embed_example.cpp \ +# qtterminal/QtGnuplotWidget.cpp qtterminal/QtGnuplotEvent.cpp \ +# qtterminal/QtGnuplotScene.cpp qtterminal/QtGnuplotItems.cpp \ +# qtterminal/QtGnuplotInstance.cpp +# +# embed_example_LDADD = $(QT_LIBS) +O = o +T = $(top_srcdir)/term/ + +# List of core object files except version.$(O) +COREOBJS = alloc.$(O) axis.$(O) binary.$(O) bitmap.$(O) breaders.$(O) \ +color.$(O) command.$(O) contour.$(O) datafile.$(O) dynarray.$(O) eval.$(O) \ +fit.$(O) gadgets.$(O) getcolor.$(O) graph3d.$(O) graphics.$(O) help.$(O) \ +hidden3d.$(O) history.$(O) internal.$(O) interpol.$(O) matrix.$(O) \ +misc.$(O) mouse.$(O) parse.$(O) plot.$(O) plot2d.$(O) plot3d.$(O) \ +pm3d.$(O) readline.$(O) save.$(O) scanner.$(O) set.$(O) show.$(O) \ +specfun.$(O) standard.$(O) stats.$(O) stdfn.$(O) tables.$(O) tabulate.$(O) \ +term.$(O) time.$(O) unset.$(O) util.$(O) util3d.$(O) variable.$(O) + + +# List of terminal driver sources +CORETERM = $(T)aed.trm $(T)ai.trm $(T)aquaterm.trm $(T)be.trm \ +$(T)cairo.trm $(T)canvas.trm $(T)cgi.trm $(T)cgm.trm $(T)context.trm \ +$(T)corel.trm $(T)debug.trm $(T)djsvga.trm $(T)dumb.trm $(T)dxf.trm \ +$(T)dxy.trm $(T)eepic.trm $(T)emf.trm $(T)emxvga.trm $(T)epson.trm \ +$(T)estimate.trm $(T)excl.trm $(T)fig.trm $(T)gd.trm $(T)ggi.trm \ +$(T)gpic.trm $(T)grass.trm $(T)hp2648.trm $(T)hp26.trm $(T)hp500c.trm \ +$(T)hpgl.trm $(T)hpljii.trm $(T)hppj.trm $(T)imagen.trm $(T)kyo.trm \ +$(T)latex.trm $(T)linux.trm $(T)lua.trm $(T)mac.trm $(T)metafont.trm \ +$(T)metapost.trm $(T)mif.trm $(T)next.trm $(T)openstep.trm $(T)pbm.trm \ +$(T)pc.trm $(T)pdf.trm $(T)pm.trm $(T)post.trm $(T)pslatex.trm \ +$(T)pstricks.trm $(T)qms.trm $(T)qt.trm $(T)regis.trm $(T)sun.trm \ +$(T)svg.trm $(T)t410x.trm $(T)tek.trm $(T)texdraw.trm $(T)tgif.trm \ +$(T)tkcanvas.trm $(T)tpic.trm $(T)unixpc.trm $(T)v384.trm $(T)vgagl.trm \ +$(T)vws.trm $(T)win.trm $(T)wxt.trm $(T)x11.trm $(T)xlib.trm + +all: all-recursive + +.SUFFIXES: +.SUFFIXES: .c .cpp .m .o .obj +$(srcdir)/Makefile.in: # $(srcdir)/Makefile.am $(srcdir)/makefile.all $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign src/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; +$(srcdir)/makefile.all: + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: # $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): # $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ + fi; \ + for p in $$list; do echo "$$p $$p"; done | \ + sed 's/$(EXEEXT)$$//' | \ + while read p p1; do if test -f $$p \ + ; then echo "$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n;h' \ + -e 's|.*|.|' \ + -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ + sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) files[d] = files[d] " " $$1; \ + else { print "f", $$3 "/" $$4, $$1; } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ + $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ + } \ + ; done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ + -e 's/$$/$(EXEEXT)/' \ + `; \ + test -n "$$list" || exit 0; \ + echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(bindir)" && rm -f $$files + +clean-binPROGRAMS: + -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) + +clean-noinstPROGRAMS: + -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS) +install-pkglibexecPROGRAMS: $(pkglibexec_PROGRAMS) + @$(NORMAL_INSTALL) + @list='$(pkglibexec_PROGRAMS)'; test -n "$(pkglibexecdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkglibexecdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkglibexecdir)" || exit 1; \ + fi; \ + for p in $$list; do echo "$$p $$p"; done | \ + sed 's/$(EXEEXT)$$//' | \ + while read p p1; do if test -f $$p \ + ; then echo "$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n;h' \ + -e 's|.*|.|' \ + -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ + sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) files[d] = files[d] " " $$1; \ + else { print "f", $$3 "/" $$4, $$1; } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(pkglibexecdir)$$dir'"; \ + $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(pkglibexecdir)$$dir" || exit $$?; \ + } \ + ; done + +uninstall-pkglibexecPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(pkglibexec_PROGRAMS)'; test -n "$(pkglibexecdir)" || list=; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ + -e 's/$$/$(EXEEXT)/' \ + `; \ + test -n "$$list" || exit 0; \ + echo " ( cd '$(DESTDIR)$(pkglibexecdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(pkglibexecdir)" && rm -f $$files + +clean-pkglibexecPROGRAMS: + -test -z "$(pkglibexec_PROGRAMS)" || rm -f $(pkglibexec_PROGRAMS) +bf_test$(EXEEXT): $(bf_test_OBJECTS) $(bf_test_DEPENDENCIES) $(EXTRA_bf_test_DEPENDENCIES) + @rm -f bf_test$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(bf_test_OBJECTS) $(bf_test_LDADD) $(LIBS) +wxterminal/$(am__dirstamp): + @$(MKDIR_P) wxterminal + @: > wxterminal/$(am__dirstamp) +wxterminal/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) wxterminal/$(DEPDIR) + @: > wxterminal/$(DEPDIR)/$(am__dirstamp) +wxterminal/wxt_gui.$(OBJEXT): wxterminal/$(am__dirstamp) \ + wxterminal/$(DEPDIR)/$(am__dirstamp) +wxterminal/gp_cairo.$(OBJEXT): wxterminal/$(am__dirstamp) \ + wxterminal/$(DEPDIR)/$(am__dirstamp) +wxterminal/gp_cairo_helpers.$(OBJEXT): wxterminal/$(am__dirstamp) \ + wxterminal/$(DEPDIR)/$(am__dirstamp) +qtterminal/$(am__dirstamp): + @$(MKDIR_P) qtterminal + @: > qtterminal/$(am__dirstamp) +qtterminal/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) qtterminal/$(DEPDIR) + @: > qtterminal/$(DEPDIR)/$(am__dirstamp) +qtterminal/qt_term.$(OBJEXT): qtterminal/$(am__dirstamp) \ + qtterminal/$(DEPDIR)/$(am__dirstamp) +qtterminal/qt_term_mac.$(OBJEXT): qtterminal/$(am__dirstamp) \ + qtterminal/$(DEPDIR)/$(am__dirstamp) +gnuplot$(EXEEXT): $(gnuplot_OBJECTS) $(gnuplot_DEPENDENCIES) $(EXTRA_gnuplot_DEPENDENCIES) + @rm -f gnuplot$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(gnuplot_OBJECTS) $(gnuplot_LDADD) $(LIBS) +qtterminal/gnuplot_qt.$(OBJEXT): qtterminal/$(am__dirstamp) \ + qtterminal/$(DEPDIR)/$(am__dirstamp) +qtterminal/QtGnuplotWindow.$(OBJEXT): qtterminal/$(am__dirstamp) \ + qtterminal/$(DEPDIR)/$(am__dirstamp) +qtterminal/QtGnuplotApplication.$(OBJEXT): qtterminal/$(am__dirstamp) \ + qtterminal/$(DEPDIR)/$(am__dirstamp) +qtterminal/QtGnuplotWidget.$(OBJEXT): qtterminal/$(am__dirstamp) \ + qtterminal/$(DEPDIR)/$(am__dirstamp) +qtterminal/QtGnuplotScene.$(OBJEXT): qtterminal/$(am__dirstamp) \ + qtterminal/$(DEPDIR)/$(am__dirstamp) +qtterminal/QtGnuplotItems.$(OBJEXT): qtterminal/$(am__dirstamp) \ + qtterminal/$(DEPDIR)/$(am__dirstamp) +qtterminal/QtGnuplotEvent.$(OBJEXT): qtterminal/$(am__dirstamp) \ + qtterminal/$(DEPDIR)/$(am__dirstamp) +gnuplot_qt$(EXEEXT): $(gnuplot_qt_OBJECTS) $(gnuplot_qt_DEPENDENCIES) $(EXTRA_gnuplot_qt_DEPENDENCIES) + @rm -f gnuplot_qt$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(gnuplot_qt_OBJECTS) $(gnuplot_qt_LDADD) $(LIBS) +gnuplot_x11$(EXEEXT): $(gnuplot_x11_OBJECTS) $(gnuplot_x11_DEPENDENCIES) $(EXTRA_gnuplot_x11_DEPENDENCIES) + @rm -f gnuplot_x11$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(gnuplot_x11_OBJECTS) $(gnuplot_x11_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + -rm -f qtterminal/*.$(OBJEXT) + -rm -f wxterminal/*.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +include ./$(DEPDIR)/alloc.Po +include ./$(DEPDIR)/axis.Po +include ./$(DEPDIR)/bf_test.Po +include ./$(DEPDIR)/binary.Po +include ./$(DEPDIR)/bitmap.Po +include ./$(DEPDIR)/breaders.Po +include ./$(DEPDIR)/color.Po +include ./$(DEPDIR)/command.Po +include ./$(DEPDIR)/contour.Po +include ./$(DEPDIR)/corplot.Po +include ./$(DEPDIR)/datafile.Po +include ./$(DEPDIR)/dynarray.Po +include ./$(DEPDIR)/eval.Po +include ./$(DEPDIR)/fit.Po +include ./$(DEPDIR)/gadgets.Po +include ./$(DEPDIR)/getcolor.Po +include ./$(DEPDIR)/gpexecute.Po +include ./$(DEPDIR)/gplt_x11.Po +include ./$(DEPDIR)/graph3d.Po +include ./$(DEPDIR)/graphics.Po +include ./$(DEPDIR)/help.Po +include ./$(DEPDIR)/hidden3d.Po +include ./$(DEPDIR)/history.Po +include ./$(DEPDIR)/internal.Po +include ./$(DEPDIR)/interpol.Po +include ./$(DEPDIR)/matrix.Po +include ./$(DEPDIR)/misc.Po +include ./$(DEPDIR)/moc_QtGnuplotApplication.Po +include ./$(DEPDIR)/moc_QtGnuplotEvent.Po +include ./$(DEPDIR)/moc_QtGnuplotScene.Po +include ./$(DEPDIR)/moc_QtGnuplotWidget.Po +include ./$(DEPDIR)/moc_QtGnuplotWindow.Po +include ./$(DEPDIR)/mouse.Po +include ./$(DEPDIR)/os9.Po +include ./$(DEPDIR)/parse.Po +include ./$(DEPDIR)/plot.Po +include ./$(DEPDIR)/plot2d.Po +include ./$(DEPDIR)/plot3d.Po +include ./$(DEPDIR)/pm3d.Po +include ./$(DEPDIR)/qrc_QtGnuplotResource.Po +include ./$(DEPDIR)/readline.Po +include ./$(DEPDIR)/save.Po +include ./$(DEPDIR)/scanner.Po +include ./$(DEPDIR)/set.Po +include ./$(DEPDIR)/show.Po +include ./$(DEPDIR)/specfun.Po +include ./$(DEPDIR)/standard.Po +include ./$(DEPDIR)/stats.Po +include ./$(DEPDIR)/stdfn.Po +include ./$(DEPDIR)/strftime.Po +include ./$(DEPDIR)/tables.Po +include ./$(DEPDIR)/tabulate.Po +include ./$(DEPDIR)/term.Po +include ./$(DEPDIR)/time.Po +include ./$(DEPDIR)/unset.Po +include ./$(DEPDIR)/util.Po +include ./$(DEPDIR)/util3d.Po +include ./$(DEPDIR)/variable.Po +include ./$(DEPDIR)/version.Po +include ./$(DEPDIR)/vms.Po +include qtterminal/$(DEPDIR)/QtGnuplotApplication.Po +include qtterminal/$(DEPDIR)/QtGnuplotEvent.Po +include qtterminal/$(DEPDIR)/QtGnuplotItems.Po +include qtterminal/$(DEPDIR)/QtGnuplotScene.Po +include qtterminal/$(DEPDIR)/QtGnuplotWidget.Po +include qtterminal/$(DEPDIR)/QtGnuplotWindow.Po +include qtterminal/$(DEPDIR)/gnuplot_qt.Po +include qtterminal/$(DEPDIR)/qt_term.Po +include qtterminal/$(DEPDIR)/qt_term_mac.Po +include wxterminal/$(DEPDIR)/gp_cairo.Po +include wxterminal/$(DEPDIR)/gp_cairo_helpers.Po +include wxterminal/$(DEPDIR)/wxt_gui.Po + +.c.o: + $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ + $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ + $(am__mv) $$depbase.Tpo $$depbase.Po +# $(AM_V_CC)source='$<' object='$@' libtool=no \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(COMPILE) -c -o $@ $< + +.c.obj: + $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ + $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ + $(am__mv) $$depbase.Tpo $$depbase.Po +# $(AM_V_CC)source='$<' object='$@' libtool=no \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.cpp.o: + $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ + $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ + $(am__mv) $$depbase.Tpo $$depbase.Po +# $(AM_V_CXX)source='$<' object='$@' libtool=no \ +# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \ +# $(AM_V_CXX_no)$(CXXCOMPILE) -c -o $@ $< + +.cpp.obj: + $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ + $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ + $(am__mv) $$depbase.Tpo $$depbase.Po +# $(AM_V_CXX)source='$<' object='$@' libtool=no \ +# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \ +# $(AM_V_CXX_no)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.m.o: + $(AM_V_OBJC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ + $(OBJCCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ + $(am__mv) $$depbase.Tpo $$depbase.Po +# $(AM_V_OBJC)source='$<' object='$@' libtool=no \ +# DEPDIR=$(DEPDIR) $(OBJCDEPMODE) $(depcomp) \ +# $(AM_V_OBJC_no)$(OBJCCOMPILE) -c -o $@ $< + +.m.obj: + $(AM_V_OBJC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ + $(OBJCCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ + $(am__mv) $$depbase.Tpo $$depbase.Po +# $(AM_V_OBJC)source='$<' object='$@' libtool=no \ +# DEPDIR=$(DEPDIR) $(OBJCDEPMODE) $(depcomp) \ +# $(AM_V_OBJC_no)$(OBJCCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +install-qtgnuplotDATA: $(qtgnuplot_DATA) + @$(NORMAL_INSTALL) + @list='$(qtgnuplot_DATA)'; test -n "$(qtgnuplotdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(qtgnuplotdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(qtgnuplotdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(qtgnuplotdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(qtgnuplotdir)" || exit $$?; \ + done + +uninstall-qtgnuplotDATA: + @$(NORMAL_UNINSTALL) + @list='$(qtgnuplot_DATA)'; test -n "$(qtgnuplotdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(qtgnuplotdir)'; $(am__uninstall_files_from_dir) + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile $(PROGRAMS) $(DATA) +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkglibexecdir)" "$(DESTDIR)$(qtgnuplotdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -rm -f qtterminal/$(DEPDIR)/$(am__dirstamp) + -rm -f qtterminal/$(am__dirstamp) + -rm -f wxterminal/$(DEPDIR)/$(am__dirstamp) + -rm -f wxterminal/$(am__dirstamp) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean-local: +clean: clean-recursive + +clean-am: clean-binPROGRAMS clean-generic clean-local \ + clean-noinstPROGRAMS clean-pkglibexecPROGRAMS mostlyclean-am + +distclean: distclean-recursive + -rm -rf ./$(DEPDIR) qtterminal/$(DEPDIR) wxterminal/$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: install-qtgnuplotDATA + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: install-binPROGRAMS install-pkglibexecPROGRAMS + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -rf ./$(DEPDIR) qtterminal/$(DEPDIR) wxterminal/$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-compile mostlyclean-generic + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-binPROGRAMS uninstall-pkglibexecPROGRAMS \ + uninstall-qtgnuplotDATA + +.MAKE: $(am__recursive_targets) install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-binPROGRAMS clean-generic clean-local \ + clean-noinstPROGRAMS clean-pkglibexecPROGRAMS cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-binPROGRAMS install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pkglibexecPROGRAMS install-ps install-ps-am \ + install-qtgnuplotDATA install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-binPROGRAMS \ + uninstall-pkglibexecPROGRAMS uninstall-qtgnuplotDATA + +binonly: $(bin_PROGRAMS) + +getcolor_x11.o: getcolor.c + $(COMPILE) -c -DGPLT_X11_MODE -o getcolor_x11.o $(srcdir)/getcolor.c + +# Call the moc preprocessor +#moc_%.cpp : qtterminal/%.h +# $(MOC) -o $@ $< + +# Call the Qt resource compiler +#qrc_%.cpp: qtterminal/%.qrc +# $(RCC) -name QtGnuplotResource -o $@ $< + +# Call the Qt ui compiler +#ui_%.h: qtterminal/%.ui +# $(UIC) -o $@ $< + +# Generate translation files +#%.qm: qtterminal/po/%.ts +# $(LRELEASE) $< -qm $@ + +# Clean moc & qrc files +#clean-qt-extra: +# rm -vf moc_*.cpp qrc_*.cpp qrc_*.o ui_*.h qtgnuplot*.qm + +# Clean transform gnuplot_x11 for demo +#clean-demo: +# rm -f $(GNUPLOT_X11) + +#clean-local: clean-qt-extra clean-demo + +#$(gnuplot_qt_OBJECTS) : ui_QtGnuplotSettings.h +# begin makefile.all +# end makefile.all +term$U.o: $(CORETERM) + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/misc/maker-3.00.0-beta.tar.gz b/misc/maker-3.00.0-beta.tar.gz new file mode 100644 index 0000000..556f8d9 Binary files /dev/null and b/misc/maker-3.00.0-beta.tar.gz differ diff --git a/misc/proteinortho5_better_robustness.pl b/misc/proteinortho5_better_robustness.pl deleted file mode 100755 index dec173a..0000000 --- a/misc/proteinortho5_better_robustness.pl +++ /dev/null @@ -1,1154 +0,0 @@ -#!/usr/bin/perl - -########################################################################################## -# This file is part of Proteinortho. -# (C) 2009/2010 Marcus Lechner -# -# Proteinortho is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published -# by the Free Software Foundation; either version 2, or (at your -# option) any later version. -# -# Proteinortho is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Proteinortho; see the file COPYING. If not, write to the -# Free Software Foundation, Inc., 59 Temple Place - Suite 330, -# Boston, MA 02111-1307, USA. -########################################################################################## - -########################################################################################## -# About -########################################################################################## -# Proteinortho -# input fasta files with proteins -# output matrix with orthologous proteins -# -# @authors Marcus Lechner, Clemens Elias Thoelken -# @email lechner@staff.uni-marburg.de -# @company University of Maruburg -# @date 2017-04-18 -# -########################################################################################## - -########################################################################################## -# Imports -########################################################################################## -use strict; -use warnings "all"; -use File::Basename; -use threads; -use threads::shared; -use Thread::Queue; - -########################################################################################## -# Variables -########################################################################################## -our $version = "5.16b"; -our $step = 0; # 0/1/2/3 -> do all / only apply step 1 / only apply step 2 / only apply step 3 -our $verbose = 1; # 0/1 -> don't / be verbose -our $debug = 0; # 0/1 -> don't / show debug data -#our $reflexiv = 0; # 0/1 -> check sets against themselves -our $synteny = 0; # 0/1 -> Apply synteny algorithm -our $neighbourjoin = 0; # 0/1 -> Merge neighbours -our $duplication = 2; # 0-9 not 1 -> Repeats for duplication extension -our $cs = 3; # int -> cs-value -our $alpha = 0.5; # Alpha value for ffadj_mcs.py -our $connectivity = 0.1;# Algebr. connectivity threshold -our $cpus = 0; # 0 = autodetect -our $evalue = "1e-05"; -our $purity = 0.75; -our $coverage = 50; # Percent coverage threshold for two proteins -our $identity = 25; # Percent identity threshold for two proteins -our $blastmode = "blastp+"; -#our $tmpdir = "./"; # Dir for tmp-files -our $sim = 0.95; -our $report = 3; -our $startat = undef; # removed 5.16 -our $stopat = undef; # removed 5.16 -our $keep = 0; -our $force = 0; -our $selfblast = 0; -our $twilight = 0; -our $singles = 0; -our $clean = 0; -our $blastOptions = ""; -our $nograph = 0; -our $desc = 0; -our $tmp_path = ""; - -# Internal -our $blastversion = "unknown"; # Auto-detected blast version -our $blastpath = ""; -our $makedb = ""; # makedb command -our $blast = ""; # blast command -our $jobque = Thread::Queue->new(); # Jobs todo -our $jobs_done:shared = 0; # Counter -our $jobs_todo = 0; # Sum of jobs -our $project = "myproject"; # Project name -our $graph_lock :shared; -our $syn_lock :shared; -our $all_jobs_submitted :shared = 0; -our $po_path = &get_po_path(); # Determine local path -our $last_i = -1; -our $last_j = -1; -our $run_id = ""; -our %gene_counter; # Holds the number of genes for each data file (for sorting) -our $threads_per_process :shared = 1; # Number of subthreads for blast - -# Split work -our $split_to_X_jobs = -1; -our $jobnumber = -1; -our $part = -1; - - -########################################################################################## -# Parameters -########################################################################################## -our @files = (); -foreach my $option (@ARGV) { - if ($option =~ m/^--?step=(0|1|2|3)$/) { $step = $1; } - elsif ($option =~ m/^--?verbose$/) { $verbose = 1; } - elsif ($option =~ m/^--?verbose=(0|1)$/) { $verbose = $1; } - elsif ($option =~ m/^--?te?mp=(.+)$/) { $tmp_path = $1; - # make sure it ends with / - unless ($tmp_path =~ /\/$/) {$tmp_path .= "/";} - } - elsif ($option =~ m/^--?debug$/) { $debug = 1; } - elsif ($option =~ m/^--?debug=(0|1)$/) { $debug = $1; } - elsif ($option =~ m/^--?p=(.*)$/) { $blastmode = $1; } - elsif ($option =~ m/^--?e=(.*)$/) { $evalue = $1; } - elsif ($option =~ m/^--?cpus=(\d*)$/) { $cpus = $1; } - elsif ($option =~ m/^--?cpus=auto$/) { $cpus = 0; } - elsif ($option =~ m/^--?alpha=([0-9\.]+)$/) { $alpha = $1; } - elsif ($option =~ m/^--?purity=([0-9\.]+)$/) { $purity = $1; } - elsif ($option =~ m/^--?report=([0-9]+)$/) { $report = $1; } - elsif ($option =~ m/^--?conn=([0-9\.]+)$/) { $connectivity = $1; } - elsif ($option =~ m/^--?cov=([0-9]+)$/) { $coverage = $1; } - elsif ($option =~ m/^--?blastpath=(.+)$/) { $blastpath = $1."/"; } - elsif ($option =~ m/^--?identity=([0-9]+)$/) { $identity = $1; } - elsif ($option =~ m/^--?identity=twilight$/) { $twilight = 1; } - elsif ($option =~ m/^--?sim=([0-9\.]+)$/) { $sim = $1; } - elsif ($option =~ m/^--?startat=([0-9]+)$/) { $startat = $1; } - elsif ($option =~ m/^--?stopat=([0-9]+)$/) { $stopat = $1; } - elsif ($option =~ m/^--?jobs?=([\d]+)\/([\d]+)$/) { $jobnumber = $1; $split_to_X_jobs = $2; } - elsif ($option =~ m/^--?selfblast$/) { $selfblast = 1; } - elsif ($option =~ m/^--?selfblast=(0|1)$/) { $selfblast = $1; } - elsif ($option =~ m/^--?singles$/) { $singles = 1; } - elsif ($option =~ m/^--?singles=(0|1)$/) { $singles = $1; } - elsif ($option =~ m/^--?poff$/) { $synteny = 1; } - elsif ($option =~ m/^--?synteny$/) { $synteny = 1; } - elsif ($option =~ m/^--?synteny=(0|1)$/) { $synteny = $1; } - elsif ($option =~ m/^--?dups=0$/) { $duplication = 0; } - elsif ($option =~ m/^--?dups=([1-8])$/) { $duplication = $1+1;} - elsif ($option =~ m/^--?neighbourjoin$/) { $neighbourjoin = 1; } - elsif ($option =~ m/^--?neighbourjoin=(0|1)$/) { $neighbourjoin = $1; } - elsif ($option =~ m/^--?cs=([0-9]+)$/) { $cs = $1; } - elsif ($option =~ m/^--?keep/) { $keep = 1; } - elsif ($option =~ m/^--?force/) { $force = 1; } - elsif ($option =~ m/^--?clean/) { $clean = 1; } - elsif ($option =~ m/^--?nograph/) { $nograph = 1; } - elsif ($option =~ m/^--?graph/) { $nograph = 0; } - elsif ($option =~ m/^--?desc/) { $desc = 1; } - elsif ($option =~ m/^--?project=(.*)$/) { $project = $1; } - elsif ($option =~ m/^--?subpara=(.*)$/i) { $blastOptions = $1;} - elsif ($option !~ /^-/) { push(@files,$option); } - else {&print_usage(); die "Invalid command line option: \'$option\'!\n"; } -} - -########################################################################################## -# Check parameters -########################################################################################## -if (defined($startat) || defined($stopat)) { - &Error("Sorry, -startat and -stopat were removed. Please use -jobs=M/N for more flexible job splitting."); -} - -if ($split_to_X_jobs == 0) { - &Error("Job parameter use incorrectly. Number of jobs cannot be 0. Valid format: M/N"); -} - -if ($jobnumber != -1 && ($jobnumber == 0 || $jobnumber > $split_to_X_jobs)) { - &Error("Job parameter use incorrectly. Job number cannot be 0 or greater than number of jobs. Valid format: M/N"); -} -if ($jobnumber != -1) { - if ($step != 2) {&Error("Parameter -jobs only works for step 2!");} - $run_id = "_$jobnumber"."_".$split_to_X_jobs; -} - - -our $simgraph = "$project.blast-graph$run_id"; # Output file graph -our $syngraph = "$project.ffadj-graph$run_id"; # Output file synteny - -our $rm_simgraph = "$tmp_path$project.removed_blast-graph"; # Output remove graph -our $rm_syngraph = "$tmp_path$project.removed_ffadj-graph"; # Output remove graph - -our $csimgraph = "$project.proteinortho-graph"; # Output file graph -our $csyngraph = "$project.poff-graph"; # Output file synteny -our $simtable = "$project.proteinortho"; # Output file graph -our $syntable = "$project.poff"; # Output file synteny -our $desctable = "$project.descriptions"; # Output file seq descriptions - - -if (-e "$project.proteinortho") { - print STDERR "!!!\nWarning: Data files for project '$project' already exists. Previous output files might be overwritten.\n"; - print STDERR "Press CTRL + C to prevent me from proceeding\nWaiting for 10 seconds...\n!!!\n"; - sleep(10); - print STDERR "\nWell then, proceeding...\n\n"; -} - -########################################################################################## -# Run -########################################################################################## -&print_header; # Show Proteinortho Header -&auto_cpus; # Set number of CPUs -&check_blast; # Check blast version - -# Always do -&check_files; # Check files, count sequences -@files = (); -foreach my $file (sort { if ($gene_counter{$a} == $gene_counter{$b}) {$a cmp $b;} else {$gene_counter{$b} <=> $gene_counter{$a};} } keys %gene_counter) {push(@files,$file);} # Biggest first # Alphabet otherwise 5.16 - - -# Step 1, check files and make indices -if ($step == 0 || $step == 1) { - print STDERR "\n**Step 1**\n"; - &generate_indices; # Generate index files for blast - if ($desc) { - &write_descriptions; # Write sequence description file - } -} - -# Step 2, run blast and synteny algorithm -if ($step == 0 || $step == 2) { - print STDERR "\n**Step 2**\n"; - &init_graph_output; # Initiate Output file(s) - &run_blast; # Run blasts -} - -# Step 3, spacial clustering -if ($step == 0 || $step == 3) { - print STDERR "\n**Step 3**\n"; - &cluster; # form clusters and write outputs - if ($clean) {&clean;} # remove blast indices - print STDERR "\nAll finished.\n"; -} - - -########################################################################################## -# Functions -########################################################################################## -sub clean { - print STDERR "Removing temporary files...\n"; - if ($blastmode =~ /blastp/) { - foreach my $file (@files) { - unlink("$file.phr"); - unlink("$file.pin"); - unlink("$file.psq"); - } - } - else { - foreach my $file (@files) { - unlink("$file.nhr"); - unlink("$file.nin"); - unlink("$file.nsq"); - } - } - - if ($nograph) { - unlink($simgraph); - if ($synteny) {unlink($syngraph);} - } -} - -sub cluster { - print STDERR "Clustering by similarity (Proteinortho mode)\n"; - system("$po_path/proteinortho5_clustering -verbose $verbose -conn $connectivity -purity $purity -rmgraph '$rm_simgraph' $simgraph* >'$simtable'"); - if ($singles) { - print STDERR "Adding singles...\n"; - my $fastas = "'".join("' '",@files)."'"; - system("$po_path/proteinortho5_singletons.pl $fastas <'$simtable' >>'$simtable'"); - } - print STDERR "[OUTPUT] -> written to $simtable\n"; - unless ($nograph) { - print STDERR "Writing graph...\n"; -# system("$po_path/proteinortho5_clean_edges -e '$rm_simgraph' $simgraph* >'$csimgraph'"); - system("$po_path/proteinortho5_clean_edges2.pl '$rm_simgraph' $simgraph* >'$csimgraph'"); - unless ($keep) {unlink($rm_simgraph);} - print STDERR "[OUTPUT] -> written to $csimgraph\n"; - } - - if ($synteny) { - print STDERR "\nClustering by gene-order (POFF mode)\n"; - system("$po_path/proteinortho5_clustering -verbose $verbose -conn $connectivity -purity $purity -rmgraph '$rm_syngraph' $syngraph* >'$syntable'"); - if ($singles) { - print STDERR "Adding singles...\n"; - my $fastas = "'".join("' '",@files)."'"; - system("$po_path/proteinortho5_singletons.pl $fastas <'$syntable' >>'$syntable'"); - } - print STDERR "[OUTPUT] -> written to $syntable\n"; - unless ($nograph) { - print STDERR "Writing graph...\n"; -# system("$po_path/proteinortho5_clean_edges -e '$rm_syngraph' $syngraph* >'$csyngraph'"); - system("$po_path/proteinortho5_clean_edges2.pl '$rm_syngraph' $syngraph* >'$csyngraph'"); - unless ($keep) {unlink($rm_syngraph);} - print STDERR "[OUTPUT] -> written to $csyngraph\n"; - } - } -} - -sub print_header { - print STDERR "*****************************************************************\n", - "Proteinortho with PoFF version $version - An orthology detection tool\n", - "*****************************************************************\n"; -} - -sub print_usage { -print STDERR << "JUS"; - -Usage: proteinortho5.pl [OPTIONS] FASTA1 FASTA2 [FASTA...] -Options: - [General options] - -project= prefix for all result file names [default: myproject] - -cpus= number of processors to use [default: auto] - -verbose keeps you informed about the progress - -temp= path for temporary files [default: working directory] - -keep stores temporary blast results for reuse - -force forces recalculation of blast results in any case - -clean remove all unnecessary files after processing - -step= 1 -> generate indices - 2 -> run blast (and ff-adj, if -synteny is set) - 3 -> clustering - 0 -> all (default) - - [Search options] - -p= blast program [default: blastp+] - -e= E-value for blast [default: 1e-05] - {blastn|blastp|tblastx|blastn+|blastp+|tblastx+} - -selfblast apply selfblast, detects paralogs without orthologs - -sim= min. similarity for additional hits (0..1) [default: 0.95] - -identity= min. percent identity of best blast hits [default: 25] - -cov= min. coverage of best blast alignments in % [default: 50] - -subpara= additional parameters for the search tool - example -subpara='-seg no' - - [Synteny options] - -synteny activate PoFF extension to separate similar sequences - by contextual adjacencies (requires .gff for each .fasta) - -dups= PoFF: number of reiterations for adjacencies heuristic, - to determine duplicated regions (default: 0) - -cs= PoFF: Size of a maximum common substring (MCS) for - adjacency matches (default: 3) - -alpha= PoFF: weight of adjacencies vs. sequence similarity - (default: 0.5) - - [Clustering options] - -singles report singleton genes without any hit - -purity= avoid spurious graph assignments [0.01-1, default 0.75] - -conn= min. algebraic connectivity [default: 0.1] - -nograph do not generate .graph file (pairwise orthology relations) - - [Misc options] - -desc write description files (for NCBI FASTA input only) - -blastpath= path to your local blast (if not installed globally) - -debug gives detailed information for bug tracking - - [Large compute jobs] - In case jobs should be distributed onto several machines, use - -jobs=M/N N defines the number of defined job groups (e.g. PCs) - M defines the set of jobs to run in this process - - Example: run with - -step=1 - to prepare data then to split a run on two machines use - -jobs=1/2 -step=2 on PC one and - -jobs=2/2 -step=2 on PC two - finally run with - -step=3 to finalize -JUS -} - -sub init_graph_output { -# if (-e $graph) { -# &Error("Graph output file '$graph' already exists."); -# } - open(GRAPH,">$simgraph") || die("Could not open graph '$simgraph': $!"); - print GRAPH "# file_a\tfile_b\n# a\tb\tevalue_ab\tbitscore_ab\tevalue_ba\tbitscore_ba\n"; - close(GRAPH); - - unless ($synteny) {return;} -# if (-e $syn) { -# &Error("Synteny Graph output file '$syn' already exists."); -# } - open(SYN,">$syngraph") || die("Could not open graph '$syngraph': $!"); - print SYN "# file_a\tfile_b\n# a\tb\tevalue_ab\tbitscore_ab\tevalue_ba\tbitscore_ba\tsame_strand\tsimscore\n"; - close(SYN); -} - -sub set_threads_per_process { - lock($jobs_done); - my $willdo = ($jobs_todo-$jobs_done+$_[0]); - - if ($debug) { - print STDERR "\nTODO: $jobs_todo DONE: $jobs_done Running: $_[0] -> $willdo\n"; - } - - if ($willdo < 1) {return;} - - my $optimal = int($cpus/$willdo); - lock($threads_per_process); - if ($optimal > $threads_per_process) { - $threads_per_process = $optimal; - if ($debug) { - print STDERR "\nBlast subthreads was set to $threads_per_process\n"; - } - } -} - -sub run_blast { - # Jobs todo - $jobs_todo = 0; - for (my $i = 0; $i < scalar(@files)-1+$selfblast; $i++) {$jobs_todo += scalar(@files)-$i-1+$selfblast;} - - # Divide 5.16 - $part = int($jobs_todo/$split_to_X_jobs); # Round up to not miss anything -# print STDERR "$jobs_todo/$split_to_X_jobs = $part\n"; - my $from = ($jobnumber-1)*($part)+1; - if ($jobnumber == 1) {$from = 1;} - my $to = ($jobnumber-1)*($part)+$part; - if ($jobnumber == $split_to_X_jobs) {$to = $jobs_todo;} - - $part = 1+$to-$from; # real part - - if ($split_to_X_jobs != -1 && $part < 1) {&Error("I have problems coordinating $split_to_X_jobs groups for $jobs_todo jobs.");} - if ($split_to_X_jobs <= 1) {$from = -1; $to = -1; $split_to_X_jobs = -1; $part = -1;} - -# print STDERR "$from - $to (TODO: $jobs_todo)\n"; - - &set_threads_per_process(0); # Check if we can apply more threads, nothing is running so far - &print_blast_stats(); - - # Spawn worker threads - for (my $i = 0; $i < $cpus; $i++) {threads->create('workerthread');} - - # For each file against each other file - my $job_number = 0; - SPEC: for (my $i = 0; $i < scalar(@files)-1+$selfblast; $i++) { - for (my $j = $i+1-$selfblast; $j < scalar(@files); $j++) { - $job_number++; - if ($from != -1 && $job_number < $from) {next;} - # Wait for queque to get empty (with some buffer) - while ($jobque->pending() > 32 + 2*$cpus) {sleep(1);} - # Syncronize with other processes - $jobque->enqueue("$i $j"); -# print STDERR "EN: $job_number -> $i $j\n"; - if ($to != -1 && $job_number >= $to) {last SPEC;} - } - } - # Tell all threads they can stop - {lock($all_jobs_submitted); $all_jobs_submitted = 1;} - - # Wait until all jobs are done - foreach (threads->list()) {$_->join();} - &print_blast_stats(); print STDERR "\n"; - print STDERR "[OUTPUT] -> written to $simgraph\n"; -} - -sub workerthread { - my $thread_id = threads->tid(); - my $temp_file = "$tmp_path$project-$run_id-$thread_id"; - - # Clean up, just to be safe - unlink("$temp_file.tmp"); - unlink("$temp_file.log"); - unlink("$temp_file.matching"); - - while (1) { - my ($i, $j); - while (1) { - # Fetch new jobs - my $job = $jobque->dequeue_nb(); - # If there is nothing - unless (defined($job)) { - # Check if more jobs need to be done - - { - lock($jobs_done); # Productive - if ($jobs_done >= $jobs_todo || ($part != -1 && $jobs_done >= $part)) { # Productive -# lock($all_jobs_submitted); # DEBUGGING -# if ($all_jobs_submitted) { # DEBUGGING - if ($debug) {print STDERR "Thread $thread_id\tis leaving\n";} - return; - }} - # If so, wait - if ($debug) {print STDERR "Thread $thread_id\tis seeking work ($jobs_done / $jobs_todo)\n";} - sleep(1); - } - else { - # Parse job - ($i, $j) = split(" ",$job); - # Break the fetch loop - last; - } - } - - my $file_i = $files[$i]; - my $file_j = $files[$j]; - my $short_file_i = $file_i; $short_file_i =~ s/^.*\///; - my $short_file_j = $file_j; $short_file_j =~ s/^.*\///; - - # Work - &set_threads_per_process(scalar(threads->list())); - my $result_ij = &blast($file_i,$file_j); - - my $result_ji; - if ($file_i eq $file_j) { - # One run is enough (selfblast) - $result_ji = $result_ij; - } - else { - $result_ji = &blast($file_j,$file_i); - } - - if ($file_i eq $file_j && !$selfblast) {die("Selfblast is disabled but I want to check $file_i vs $file_j");} - - my %lengths; - if ($file_i eq $file_j) { - # Get lengths once is enough (selfblast) - %lengths = %{&get_gene_lengths($file_i)}; - } - else { - %lengths = %{&get_gene_lengths($file_i,$file_j)}; - } - my %reciprocal_matches = %{&match(\%lengths,$result_ij,$result_ji)}; - - # Remove secondary hits if better exist (test here instead of later) - %reciprocal_matches = %{&adaptive_best_blast_matches(\%reciprocal_matches)}; - - if ($synteny) { - my ($ordered_matches, $track_pointer, $close_copies_pointer) = &synteny_matches(\%reciprocal_matches,$file_i,$file_j); - open(PREGRAPH,">>$temp_file.tmp") || die("Could not open temp file '$temp_file.tmp': $!"); - print PREGRAPH $ordered_matches; - close(PREGRAPH); - my $cmd = "python2 $po_path/ffadj_mcs.py '$temp_file.tmp' $alpha"; - if ($duplication) { - $cmd .= " --repeat-matching $duplication --min-cs-size $cs"; - } - if ($debug) {print STDERR "$cmd\n";} - my $synt_stats = qx($cmd); - chomp $synt_stats; - $synt_stats =~ s/#.+\n//; - - # Reverse mapping of full gene ids, two seperate maps in case of overlapps in short ids - my %full_id_map_i; - my %full_id_map_j; - foreach (sort keys %reciprocal_matches) { - my ($a, $b) = split(/\s/,$_); - my $aa = &convertNCBI($a); - my $bb = &convertNCBI($b); - if ($aa ne $a) { - if ($debug) {print STDERR "j_map: $aa -> $a\n";} - $full_id_map_j{$aa} = $a;} - if ($bb ne $b) { - if ($debug) {print STDERR "i_map: $bb -> $b\n";} - $full_id_map_i{$bb} = $b;} - } - - # Reverse mapping of gene position to short id - my %track = %{$track_pointer}; - my %close = %{$close_copies_pointer}; - # Generate hash for synteny hits - my %synteny; - unless (-s "$temp_file.matching") { - print STDERR "Error: Failed to run $po_path/ffadj_mcs.py for\n$file_i vs $file_j\nMoving source to $temp_file.err for debugging\nI will continue, but results may be insufficient.\n"; - system("mv $temp_file.tmp $temp_file.err"); - next; - } - open(OSYNGRAPH,"<$temp_file.matching") || die("Could not open temp file $temp_file.matching: $!'"); - while() { - chomp; - my ($i, $j, $score) = split(/\s+/,$_,3); - if (!defined($score) || $i =~ /[^0-9]/ || $i == 0 || length($i) > 10) {next;} - unless (defined($track{$file_i.$i})) { - print STDERR "Could not find i: ".$file_i.$i."\n"; next; - } - unless (defined($track{$file_j.$j})) { - print STDERR "Could not find j: ".$file_j.$j."\n"; next; - } - # Remap to full ID - my $a = $track{$file_i.$i}; - if (defined($full_id_map_i{$a})) {$a = $full_id_map_i{$a};} - my $b = $track{$file_j.$j}; - if (defined($full_id_map_j{$b})) {$b = $full_id_map_j{$b};} - # Store - $synteny{"$b $a"} = $score; - - # Close copies - if ($neighbourjoin && defined($close{$i})) { - my @partners = split(',',$close{$i}); - foreach (@partners) { - my $c = $track{$file_i.$_}; - if (defined($full_id_map_i{$c})) {$c = $full_id_map_i{$c};} - # Store - $synteny{"$b $c"} = $score; - if ($debug) {print STDERR "Storing addional proximity edge $a & $b -> $c\n";} - } - } - } - close(OSYNGRAPH); - unlink("$temp_file.tmp"); - unlink("$temp_file.log"); - unlink("$temp_file.matching"); - - { - lock($syn_lock); - - open(SYN,">>$syngraph") || die("Could not open file '$syngraph': $!"); - print SYN "# $short_file_j\t$short_file_i\n"; - print SYN "# Scores: $synt_stats\n"; - foreach (sort keys %reciprocal_matches) { - if (!defined($synteny{$_})) {if ($debug) {print STDERR "FAIL: $_\n";} next;} # Not reported by gene-order algo - my $line = "$_ ".$reciprocal_matches{$_}." $synteny{$_}"; - $line =~ s/ /\t/g; - print SYN "$line\n"; - } - close(SYN); - } - - } - - { - lock($graph_lock); - open(GRAPH,">>$simgraph") || die("Could not open file '$simgraph': $!"); - print GRAPH "# $short_file_j\t$short_file_i\n"; - foreach (sort keys %reciprocal_matches) { - my $line = "$_ ".$reciprocal_matches{$_}; - $line =~ s/ /\t/g; - print GRAPH "$line\n"; - } - close(GRAPH); - } - # Count - { - lock($jobs_done); - $jobs_done++; - } - &print_blast_stats(); # Needs jobs_done to be free - } -} - -sub identitybylength { - # Accoding to the formula of Rost, 1999 (Twilight-zone) - if($_[0] <= 11) {return 100;} - if($_[0] <= 450) {return 480*$_[0]**(-0.32*(1+exp(-$_[0]/1000)));} - return 19.5; -} - -sub adaptive_best_blast_matches { - my %reciprocal_matches = %{(shift)}; - - if ($debug) { - print STDERR "\nStart with "; - print STDERR scalar(keys %reciprocal_matches); - print STDERR " edges\n"; - } - - my %best; - my %best_gen; - # Gather best - foreach (keys %reciprocal_matches) { - my ($a,$b) = split(" ",$_); - my ($evalue_ab,$bitscore_ab,$evalue_ba,$bitscore_ba) = split(" ",$reciprocal_matches{$_}); - if (!defined($best{$a}) || $best{$a} < $bitscore_ab) { - $best{$a} = $bitscore_ab; - $best_gen{$a} = $b; - } - if (!defined($best{$b}) || $best{$b} < $bitscore_ba) { - $best{$b} = $bitscore_ba; - $best_gen{$b} = $a; - } - } - - if ($debug) { - my %gene_num; - # Count gene number - foreach (keys %reciprocal_matches) { - my ($a,$b) = split(" ",$_); - $gene_num{$a}++; - $gene_num{$b}++; - } - print STDERR "Number of genes: ".scalar(keys %gene_num)."\n"; - - # foreach (keys %best) { - # print STDERR "Best score for $_ is $best{$_} ($best_gen{$_})\n"; - # } - } - - # Remove worse - foreach (keys %reciprocal_matches) { - my ($a,$b) = split(" ",$_); - my ($evalue_ab,$bitscore_ab,$evalue_ba,$bitscore_ba) = split(" ",$reciprocal_matches{$_}); - if ($best{$a}*$sim > $bitscore_ab) {delete $reciprocal_matches{$_}; if ($debug) {my $v = $bitscore_ab/$best{$a}; print STDERR "Removed $_ because:\t$best{$a} vs $bitscore_ab ($v)\n";}} - elsif ($best{$b}*$sim > $bitscore_ba) {delete $reciprocal_matches{$_}; if ($debug) {my $v = $bitscore_ba/$best{$b}; print STDERR "Removed $_ because:\t$best{$b} vs $bitscore_ba ($v)\n";}} - } - - if ($debug) { - print STDERR "\nEnd with "; - print STDERR scalar(keys %reciprocal_matches); - print STDERR " edges\n"; - - my %gene_num; - # Count gene number - foreach (keys %reciprocal_matches) { - my ($a,$b) = split(" ",$_); - $gene_num{$a}++; - $gene_num{$b}++; - } - print STDERR "Number of genes: ".scalar(keys %gene_num)."\n";} - - return \%reciprocal_matches; -} - -sub synteny_matches { - my %reciprocal_matches = %{(shift)}; - my $file_i = shift; - my $file_j = shift; - - # Get order for both species (same hash as ids are non overlapping) - my %order; - my %track; - for my $file ($file_i, $file_j) { - # Get Coordinates for all genes - my %coords = %{&read_details($file)}; - my $counter = 0; - # Number them according to their order - foreach my $id (sort - { - my @a = split("\t",$coords{$a}); - my @b = split("\t",$coords{$b}); - -# #chr strand pos -# if ($a[0] ne $b[0]) {return $a[0] cmp $b[0];} -# if ($a[1] ne $b[1]) {return $a[1] cmp $b[1];} -# return $a[2] <=> $b[2]; - - #chr pos - if ($a[0] ne $b[0]) {return $a[0] cmp $b[0];} - return $a[2] <=> $b[2]; - } (keys(%coords))) { - my @v = split("\t",$coords{$id}); - $order{$id} = ++$counter."\t".$v[1]; # Store strand info - $track{$file.$counter} = $id; # Reverse Mapping - } - } - - my $output = ""; - - my @multis; # array that contains all multi-edges - # Convert reciprocal matches to ffadj input - foreach (keys %reciprocal_matches) { - my @values = split(/\s/,$reciprocal_matches{$_}); - my ($a, $b) = split(/\s/,$_); - unless (defined($order{$a})) {$a = &convertNCBI($a);} - unless (defined($order{$b})) {$b = &convertNCBI($b);} - my @a = split(/\s/,$order{$a}); - my @b = split(/\s/,$order{$b}); - unless (defined($a[0])) {die("Failed parsing gene IDs from blast output/gff input\n");} - - unless (defined($multis[$a[0]])) {$multis[$a[0]] = $b[0];} - else {$multis[$a[0]] .= ','.$b[0];} - - $output .= "$b[0]\t$a[0]\t"; # Positions - if ($a[1] eq $b[1]) {$output .= "1\t";} # Same strand? - else {$output .= "-1\t";} - my $score = (&edgeweight($values[0])+&edgeweight($values[2]))/2; # Score made from e-values - $output .= $score."\n"; - } - - # Check multis - my %close_copies; - if ($neighbourjoin) { - for (my $i = 1; $i < scalar(@multis); $i++) { - unless (defined($multis[$i])) {next;} - my @partners = sort { $a <=> $b } split(',',$multis[$i]); - if (scalar(@partners) <= 1) {next;} - my $dist_limit = 2; # How far can tandem copies be away from each other? (0/1 = off, 2 = immediate, ... - my $last = 999999999999999; - foreach my $new (@partners) { - if (abs($last-$new) < $dist_limit) { - if (!defined($close_copies{$last})) {$close_copies{$last} = $new;} - else {$close_copies{$last} .= ','.$new;} - $close_copies{$new} = $last; # The list is sortet, so we are here for the frist time - } - $last = $new; - } - } - } - - return ($output, \%track, \%close_copies); -} - -# Read the length of all genes in a given set of fasta files -sub get_gene_lengths { - my %lengths; - while (my $file = shift @_) { - my $last_gene = ""; - open(FASTA,"<$file") || &Error("Could not open '$file': $!"); - while () { - chomp; - if ($_ =~ />/) { - $_ =~ s/^>//; $_ =~ s/\s.*//; - $lengths{$_} = 0; - $last_gene = $_; - } - else { - $lengths{$last_gene} += length($_); - } - } - close(FASTA); - } - - return \%lengths; -} - -sub print_blast_stats { - if (!$verbose) {return;} - { - if ($jobs_todo == 0) {die("Nothing to do. This should not happen!");} - lock($jobs_done); - my $percent = int($jobs_done/$jobs_todo*10000)/100; - print STDERR "\r "; - - if ($split_to_X_jobs == -1) { - print STDERR "\rRunning blast analysis: $percent% ($jobs_done/$jobs_todo)"; - } - else { # 5.16 - $percent = int($jobs_done/$part*10000)/100; - print STDERR "\rRunning blast analysis: $percent% ($jobs_done/$part, $jobs_todo in total)"; - } - } -} - -sub match { - my %length = %{(shift)}; - my @i = @{(shift)}; - my @j = @{(shift)}; - - my %legal_i = &get_legal_matches(\%length,@i); - my %legal_j = &get_legal_matches(\%length,@j); - - return &get_reciprocal_matches(\%legal_i,\%legal_j); -} - -sub get_reciprocal_matches { - my %i = %{(shift)}; - my %j = %{(shift)}; - my %reciprocal; - - foreach (keys %i) { - my ($i, $j) = split(" ",$_); - - # Reciprocal hit? - if (!defined($j{"$j $i"})) {next;} - - # Merge both - $reciprocal{$_} = $i{$_}." ".$j{"$j $i"}; # evalue_ij, bitscore_ij, evalue_ji, bitscore_ji - } - - return \%reciprocal; -} - -sub get_legal_matches { - my %length = %{(shift)}; - - my %result; - foreach (@_) { - my ($query_id,$subject_id,$local_identity,$alignment_length,$mismatches,$openings,$query_start,$query_end,$subject_start,$subject_end,$local_evalue,$local_bitscore) = split(/\s+/); - - if ($debug) {print STDERR "?$query_id -> $subject_id ($local_evalue,$local_bitscore)\n";} - - - # Bug tracking - unless (defined($length{$query_id})) {print STDERR "ERROR: Query gene ID '$query_id' is present in blast output but was not present in FASTA input! Skipping line.\n"; next;} - unless (defined($length{$subject_id})) {print STDERR "ERROR: Subject gene ID '$subject_id' is present in blast output but was not present in FASTA input! Skipping line.\n"; next;} - - ## Check for criteria - # Well formatted - if (!defined($local_bitscore)) {next;} - - # Percent identity - if (!$twilight && $local_identity < $identity) {next;} - if ( $twilight && $local_identity < &identitybylength($alignment_length)) {next;} - # Min. length - if ($blastmode eq "tblastx+" || $blastmode eq "tblastx") {$alignment_length *= 3;} - if ($alignment_length < $length{$query_id}*($coverage/100)+0.5) {next;} - if ($alignment_length < $length{$subject_id}*($coverage/100)+0.5) {next;} - - # It hit itself (only during selfblast) - # if ($selfblast && $query_id eq $subject_id) {next;} # 5.16 reuse IDs - ## Listing them in the graph is okay, clustering will ignore them - - # Similar hits? Take the better one - if (defined($result{"$query_id $subject_id"})) { - my ($remote_evalue, $remote_bitscore) = split(" ",$result{"$query_id $subject_id"}); - if ($local_evalue > $remote_evalue) {next;} - if ($local_bitscore < $remote_bitscore) {next;} - } - - # Store data - if ($debug) {print STDERR "!$query_id -> $subject_id ($local_evalue,$local_bitscore)\n";} - $result{"$query_id $subject_id"} = "$local_evalue $local_bitscore"; - } - - return %result; -} - -# Auto set the number of CPUs -sub auto_cpus { - if ($cpus == 0) { - my $cpu_x = qx(getconf _NPROCESSORS_ONLN); $cpu_x =~ s/[^0-9]//g; - # Fallback - if (length($cpu_x) == 0 || $cpu_x == 0) { - # Linux - if (-e "/proc/cpuinfo") { - $cpu_x = qx(grep processor /proc/cpuinfo | wc -l); - } - # Try Mac - else { - $cpu_x = qx(system_profiler | grep CPUs:); - } - $cpu_x =~ s/[^0-9]//g; - } - if (length($cpu_x) == 0 || $cpu_x == 0) { - print STDERR "failed! Use 1 core only\n";$cpu_x = 1; - } - print STDERR "Detected $cpu_x available CPU threads, "; - $cpus = $cpu_x; - } - else { - print STDERR "Using $cpus CPU threads, "; - } -} - -sub generate_indices { - print STDERR "Generating indices\n"; - foreach my $file (@files) { - if ($file =~ /\s/) {die("File name '$file' contains whitespaces. This might lead to undesired effects. Please change file name!\n");} - if ($verbose) {print STDERR "Building database for '$file'\t(".$gene_counter{$file}." sequences)\n";} - system("$makedb '$file' >/dev/null"); - } - unlink('formatdb.log'); -} - -sub blast { - my $command = ""; - if ($blastmode eq "blastp" || $blastmode eq "blastn" || $blastmode eq "tblastx") { - lock($threads_per_process); - $command = $blastpath."blastall -a $threads_per_process -d '$_[0]' -i '$_[1]' -p $blastmode -m8 -e $evalue $blastOptions"; - } - elsif ($blastmode eq "blastp+") {lock($threads_per_process); $command = $blastpath."blastp -num_threads $threads_per_process -db '$_[0]' -query '$_[1]' -evalue $evalue -outfmt 6 $blastOptions";} - elsif ($blastmode eq "blastn+") {lock($threads_per_process); $command = $blastpath."blastn -num_threads $threads_per_process -db '$_[0]' -query '$_[1]' -evalue $evalue -outfmt 6 $blastOptions";} - elsif ($blastmode eq "tblastx+") {lock($threads_per_process); $command = $blastpath."tblastx -num_threads $threads_per_process -db '$_[0]' -query '$_[1]' -evalue $evalue -outfmt 6 $blastOptions";} - else {die("This should not happen!");} - - my $a = $_[0]; - my $b = $_[1]; - $a =~ s/^.*\///; - $b =~ s/^.*\///; - my $bla = "$tmp_path$a.vs.$b.bla"; - - # File does not exists yet or I am forced to rewrite it - if (!(-s $bla) || $force) { - if ($debug) {print STDERR "$command >$bla.tmp\n";} # 5.16 - system("$command | sort -k11,11g >'$bla.tmp'"); # run blast and presort (speeds up best alignment search but is NOT mandatory) # 5.16 - system("mv '$bla.tmp' '$bla'"); # move when done, aids when job fails (no half bla files) # 5.16 - my @data = &readFile($bla); - unless ($keep) {unlink($bla);} # delete tmp file - return \@data; - } - # Otherwise, use existing data - if ($verbose) {print STDERR "\nNote: '$bla' exists, using pre-calculated data\n";} - my @data = &readFile($bla); - return \@data; -} - -sub readFile { - open(FILE,"<$_[0]") || die("Error, could not open file $_[0]: $!"); - my @data = ; - close(FILE); - chomp @data; - return @data; -} - -sub check_blast { - if ($blastmode eq "blastp+" || $blastmode eq "blastn+" || $blastmode eq "tblastx+") { - my $tmp = $blastmode; - $tmp =~ s/\+//g; - my $cmd = $blastpath."$tmp -h"; - my $out = qx($cmd); - if ($out =~ /DESCRIPTION.*?\n\s*(.+)\n/) { - my @version = split(/\s+/,$1); - $blastversion = pop @version; - - # Commands - if ($blastmode eq "blastp+") {$makedb = $blastpath."makeblastdb -dbtype prot -in";} - elsif ($blastmode eq "blastn+" || $blastmode eq "tblastx+") {$makedb = $blastpath."makeblastdb -dbtype nucl -in";} - else {die("This should not happen!");} - - print STDERR "Detected NCBI BLAST version $blastversion\n"; - return; - } - &Error("Failed to detect '$blastmode'! Tried to call '$tmp'."); - } - elsif ($blastmode eq "blastp" || $blastmode eq "blastn" || $blastmode eq "tblastx") { - my $cmd = $blastpath."blastall"; - my @blastv = qx($cmd); - foreach (@blastv) { - chomp; - if ($_ =~ /blastall.+?([^\s]+)/) { - $blastversion = $1; - if ($blastmode eq "blastp") {$makedb = $blastpath."formatdb -p T -o F -i";} - elsif ($blastmode eq "blastn") {$makedb = $blastpath."formatdb -p F -o F -i";} - elsif ($blastmode eq "tblastx") {$makedb = $blastpath."formatdb -p F -o F -i";} - else {die("This should not happen!");} - - print STDERR "Detected NCBI BLAST version $blastversion\n"; - return; - } - } - &Error("Failed to detect '$blastmode'! Tried to call 'blastall'."); - } - - &Error("Blast mode '$blastmode' is not supported. Feel free to ask the author to add it."); -} - -# Check plausibility of files -sub check_files { - if (scalar(@files) < 2 && $step != 3) {&print_usage; &Error("I need at least two files to compare something!");} - print STDERR "Checking input files\n"; - foreach my $file (@files) { - if ($verbose) {print STDERR "Checking $file... ";} - &read_details($file,1); - if ($verbose) {print STDERR "ok\n";} - } -} - -sub convertNCBI { - my $long_id = shift; - $long_id =~ s/\|$//g; - my @tmp = split(/\|/,$long_id); # take the last column for NCBI format like patterns (e.g. gi|158333234|ref|YP_001514406.1|) - return pop(@tmp); -} - -sub read_details { - my %ids; # local test for duplicated IDs - my %genes; - my $file = shift; - my $test = 0; - if (defined($_[0])) {$test = 1;} # if no ID Hash is give, we do not want to test but to fetch the gff data - -# print STDERR "TEST: $test\n"; - if (!-e $file) {&Error("File '$file' not found!");} - open(FASTA,"<$file") || &Error("Could not open '$file': $!"); - while () { - if ($_ =~ />/) { - $gene_counter{$file}++; - chomp; - $_ =~ s/^>//; - $_ =~ s/\s.*//; - if ($test) { -# print STDERR "ID: $_\n"; - if (defined($ids{$_})) {&Error("Gene ID '$_' is defined at least twice in $file");} - $ids{$_} = $file; - } - if ($synteny) { - my $short_id = &convertNCBI($_); - $genes{$short_id} = 1; - } - } - } - close(FASTA); - - unless ($synteny) {return;} - - my %coordinates; - if ($verbose && $test) {print STDERR "$file\t".scalar(keys %genes)." genes\t";} - my $gff = &gff4fasta($file); - open(GFF,"<$gff") || &Error("Could not open '$gff': $!"); - while () { - if ($_ =~ /^##FASTA/) {last;} # deal with prokka gffs, thx 2 Ben Woodcroft - if ($_ =~ /^#/) {next;} - # e.g. NC_009925.1 RefSeq CDS 9275 10096 . - 0 ID=cds8;Name=YP_001514414.1;Parent=gene9;Dbxref=Genbank:YP_001514414.1,GeneID:5678848;gbkey=CDS;product=signal peptide peptidase SppA;protein_id=YP_001514414.1;transl_table=11 - my @col = split(/\t+/,$_); - if ($col[2] ne "CDS") {next;} - if ($col[8] =~ /Name=([^;]+)/i && defined($genes{$1})) { - delete $genes{$1}; -# if (!$test) {$coordinates{$1} = "$col[0]\t$col[6]\t$col[3]";} # store - if (!$test && $col[6] eq "+") {$coordinates{$1} = "$col[0]\t$col[6]\t$col[3]";} # store - if (!$test && $col[6] eq "-") {$coordinates{$1} = "$col[0]\t$col[6]\t$col[4]";} # store - } - elsif ($col[8] =~ /ID=([^;]+)/i && defined($genes{$1})) { - delete $genes{$1}; -# if (!$test) {$coordinates{$1} = "$col[0]\t$col[6]\t$col[3]";} # store - if (!$test && $col[6] eq "+") {$coordinates{$1} = "$col[0]\t$col[6]\t$col[3]";} # store - if (!$test && $col[6] eq "-") {$coordinates{$1} = "$col[0]\t$col[6]\t$col[4]";} # store - } - } - close(GFF); - - if (scalar(keys %genes)) { - my @tmp = keys %genes; - &Error("No coordinate found for these gene(s): ".join(",",@tmp)."\nusing '$gff' and '$file'"); - } - - if (!$test) {return \%coordinates;} # store -} - -sub Error { - print STDERR "\n[ERROR] ".$_[0]."\n"; - exit 0; -} - -# Remove .fasta/.faa etc. and change it to .gff -sub gff4fasta { - my $gff = shift; - $gff =~ s/\.[^.]+$/.gff/; - return $gff; -} - -sub get_po_path { - my @tmppath = fileparse($0); # path to the C++-part of this program - return $tmppath[1]; -} - -sub edgeweight { - # 1e-10 = 0.15, 1e-20 = 0.3, 1e-40 = 0.6, 1e-66+ = 1.0 - if ($_[0] == 0) {return 1;} - my $x = -1*&log10($_[0])/100*1.5; - if ($x > 1) {return 1;} - if ($x <= 0) {return 0.0001;} - return $x; -} - -sub log10 { - return log($_[0])/log(10); -} - -sub write_descriptions { - print STDERR "Writing sequence descriptions\n"; - open DESC, '>', $desctable; - foreach my $file (@files) { - if ($verbose) {print STDERR "Extracting descriptions from '$file'\t(".$gene_counter{$file}." entries)\n";} - open FASTA, '<', $file; - while () { - chomp; - if (m/^>(\S+)(\s+(.*))?$/) { - print DESC $1, "\t", ($3 || "unannotated sequence"), "\n"; - } - } - } - print STDERR "[OUTPUT] -> written to $desctable\n"; - -} diff --git a/pipelines/LRSDAY.00.Long_Reads_Preprocessing.sh b/pipelines/LRSDAY.00.Long_Reads_Preprocessing.sh index 926db3f..c0347d6 100755 --- a/pipelines/LRSDAY.00.Long_Reads_Preprocessing.sh +++ b/pipelines/LRSDAY.00.Long_Reads_Preprocessing.sh @@ -1,19 +1,19 @@ #!/bin/bash set -e -o pipefail ####################################### -# load environment variables for LRSDAY +# load environment variables source ./../../env.sh ####################################### # set project-specific variables -prefix="SK1" # The file name prefix for the processing sample. Default = "SK1" for the testing example. -reads="./../00.Long_Reads/$prefix.filtered_subreads.fastq.gz" # The file path of the long reads file (in fastq or fastq.gz format). -reads_type="pacbio-raw" # The long reads data type: "pacbio-raw" or "pacbio-corrected" or "nanopore-raw" or "nanopore-corrected". +prefix="CPG_1a" # The file name prefix (only allowing strings of alphabetical letters, numbers, and underscores) for the processing sample. Default = "CPG_1a" for the testing example. +reads="./../00.Long_Reads/nanopore_basecalled_fastq_files/$prefix/$prefix.basecalled_reads.Q5.pass.fastq.gz" # The file path of the long reads file (in fastq or fastq.gz format). +reads_type="nanopore-raw" # The long reads data type: "pacbio-raw" or "pacbio-corrected" or "nanopore-raw" or "nanopore-corrected". run_filtering="yes" # Whether to filter and downsample the reads: "yes" or "no". Default = "yes". genome_size="12500000" # The haploid genome size (in bp) of sequenced organism. Default = "12500000" (i.e. 12.5 Mb for the budding yeast S. cereviaie genome). This is used to calculate targeted sequencing coverage after read filtering (see below). post_filtering_coverage="60" # Targeted sequencing coverage after read filtering and downsampling. Default = "60" (i.e. 60x coverage). -threads=4 # The number of threads to use. Default = "1". +threads=24 # The number of threads to use. Default = "4". ####################################### # process the pipeline @@ -27,7 +27,7 @@ then echo "" echo "genome_size=$genome_size, post_filtering_coverage=$post_filtering_coverage, filtlong_target_bases=$filtlong_target_bases" echo "" - $filtlong_dir/filtlong --min_length 1000 --mean_q_weight 10 --target_bases $filtlong_target_bases $prefix.porechop.fastq.gz | gzip > $prefix.filtlong.fastq.gz + $filtlong_dir/filtlong --min_length 1000 --mean_q_weight 10 --window_q_weight 5 --target_bases $filtlong_target_bases $prefix.porechop.fastq.gz | gzip > $prefix.filtlong.fastq.gz fi else if [[ "$run_filtering" == "yes" ]] @@ -36,7 +36,7 @@ else echo "" echo "genome_size=$genome_size, post_filtering_coverage=$post_filtering_coverage, filtlong_target_bases=$filtlong_target_bases" echo "" - $filtlong_dir/filtlong --min_length 1000 --mean_q_weight 10 --target_bases $filtlong_target_bases $reads | gzip > $prefix.filtlong.fastq.gz + $filtlong_dir/filtlong --min_length 1000 --mean_q_weight 10 --window_q_weight 5 --target_bases $filtlong_target_bases $reads | gzip > $prefix.filtlong.fastq.gz fi fi diff --git a/pipelines/LRSDAY.00.Nanopore_Reads_Basecalling.sh b/pipelines/LRSDAY.00.Nanopore_Reads_Basecalling.sh new file mode 100755 index 0000000..4ce407f --- /dev/null +++ b/pipelines/LRSDAY.00.Nanopore_Reads_Basecalling.sh @@ -0,0 +1,222 @@ +#!/bin/bash +set -e -o pipefail +####################################### +# load environment variables +source ./../../env.sh + +######################## +guppy_run_mode="cpu" # The running mode of Guppy basecalling: "gpu" or "cpu". Default = "cpu". +if [[ $guppy_run_mode == "gpu" ]] +then + # set CUDA environment for GPU + gpu_bin_path="/public/software/cuda-11.4/bin" # The path of CUDA's bin directory. Default = "/public/software/cuda-11.4/bin". + gpu_lib_path="/public/software/cuda-11.4/lib64" # The path of CUDA's lib directory. Default = "/public/software/cuda-11.4/lib64". + gpu_include_path="/public/software/cuda-11.4/include" # The path of CUDA's include directory. Default = "/public/software/cuda-11.4/include". +fi +##########################3 +export PATH=$gpu_bin_path:$PATH +export LD_LIBRARY_PATH=$gpu_lib_path:$LD_LIBRARY_PATH +export C_INCLUDE_PATH=$gpu_include_path:$C_INCLUDE_PATH +export CPLUS_INCLUDE_PATH=$C_INCLUDE_PATH + +##k##################################### +# set project-specific variables + +sample_id="CPG_1a" # The file name prefix (only allowing strings of alphabetical letters, numbers, and underscores) for the processing sample. Default = "CPG_1a" for the testing example. +raw_fast5_dir="./nanopore_raw_fast5_files/$sample_id" # The directory containing the raw nanopore reads before basecalling. Default = "./raw_fast5/$sample_id". +flowcell_version="FLO-MIN106" # The flowcell version of the nanopore run. Default = "FLO-MIN106". +sequencing_kit_version="SQK-LSK108" # The sequencing kit version of the nanopore run. Default = "SQK-LSK109". +barcode_kit_version="EXP-NBD104" # The barcode kit version of the nanopore run if barcoding has been introduced during library preparation. Default = "EXP-NBD104". For the testing example, we have not applied barcoding. So this information will not be used when we set run_demultiplexing="no" below. + +run_basecalling="yes" # Whether to perform basecalling: "yes" or "no". Default = "yes". +run_demultiplexing="no" # Whether to perform demultiplexing: "yes" or "no". Default = "no". For the testing example, we have not applied barcoding. So no need to run this step. +run_nanoplotting="yes" # Whether to perform nanoplotting: "yes" or "no". Default = "yes". + +threads=16 # The number of CPU threads to use. Default = 16. +debug="no" # Whether to keep intermediate files for debugging: "yes" or "no". Default = "no". + +############################# +# Normally no need to change the following parameter settings. +basecalled_fast5_dir="./nanopore_basecalled_fast5_files/$sample_id" # The directory containing the basecalled fast5 reads. This directory will be automatically generated when running basecalling. +basecalled_fastq_dir="./nanopore_basecalled_fastq_files/$sample_id" # The directory containing the basecalled fastq reads. This directory will be automatically generated when running basecalling. +basecalled_qc_dir="./nanopore_basecalled_qc_files/$sample_id" # The directory containing nanoplot QC outputs. This directory will be automatically generated when running nanoplot. +trim_strategy="dna" # Trimming strategy to apply: 'dna' or 'rna' or 'none' (to disable trimming). Default = "rna". +gpu_device="auto" # Which GPU device to use. Default = "auto". +qual=5 # read quality filter for guppy basecalling. Default = 5. +num_callers_in_cpu_mode=$threads # The number of callers for guppy basecalling in the CPU mode. Default = "$threads". +num_callers_in_gpu_mode=$threads # The number of callers for guppy basecalling in the GPU mode. Default = "1". +gpu_runners_per_device=1 # The number of GPU runners per device for guppy basecalling in the GPU mode. Default = "1". +threads_per_caller=1 # The number of threads per caller for guppy basecalling. Default = "1". +demultiplexing_threads=$threads # The number of threads to use for guppy demultiplexing. Default = "$threads". +demultiplexed_fastq_dir="$basecalled_fastq_dir/demultiplexed_fastq" # The directory containing the demultiplexed basecalled nanopore reads. This directory will be automatically generated when running demultiplexing. + +############################## + +wkdir=$(pwd) +if [[ "$run_demultiplexing" == "yes" && "barcode_kit_version" == "" ]] +then + echo "The variable run_demultiplexing has been set to \"yes\" but the barcode_kit_version variable has not been specified!" + echo "Please specified barcode_kit_version if you want to run demultiplexing." + exit; +fi + + +if [[ "$run_basecalling" == "yes" ]] +then + echo "Check if $basecalled_fast5_dir is empty for running basecalling." + if [[ -d $basecalled_fast5_dir && "$(ls $basecalled_fast5_dir)" ]] + then + echo "Warning! The basecalled fast5 directory $basecalled_fast5_dir exists and it is not empty! Please empty its content if you want to run basecalling." + echo "Exit!!!" + exit + elif [[ -d $basecalled_fastq_dir && "$(ls $basecalled_fastq_dir)" ]] + then + echo "Warning! The basecalled fastq directory $basecalled_fastq_dir exists and it is not empty! Please empty its content if you want to run basecalling." + echo "Exit!!!" + exit + else + echo "Check passed!" + echo "Running basecalling .." + if [[ ! -d $basecalled_fast5_dir ]] + then + mkdir -p $basecalled_fast5_dir + fi + if [[ ! -d $basecalled_fastq_dir ]] + then + mkdir -p $basecalled_fastq_dir + fi + + if [[ "$guppy_run_mode" == "gpu" ]] + then + $guppy_gpu_dir/guppy_basecaller \ + --flowcell $flowcell_version \ + --kit $sequencing_kit_version \ + --recursive \ + --trim_strategy $trim_strategy \ + --input_path $raw_fast5_dir \ + --save_path $basecalled_fast5_dir \ + --fast5_out \ + --min_qscore $qual \ + --device $gpu_device \ + --num_callers $num_callers_in_gpu_mode \ + --gpu_runners_per_device $gpu_runners_per_device \ + --compress_fastq + else + $guppy_cpu_dir/guppy_basecaller \ + --flowcell $flowcell_version \ + --kit $sequencing_kit_version \ + --recursive \ + --trim_strategy $trim_strategy \ + --input_path $raw_fast5_dir \ + --save_path $basecalled_fast5_dir \ + --fast5_out \ + --min_qscore $qual \ + --num_callers $num_callers_in_cpu_mode \ + --cpu_threads_per_caller $threads_per_caller \ + --compress_fastq + fi + cat $basecalled_fast5_dir/pass/*.fastq.gz > $basecalled_fastq_dir/$sample_id.basecalled_reads.Q${qual}.pass.fastq.gz + # cat $basecalled_fast5_dir/fail/*.fastq.gz > $basecalled_fastq_dir/$sample_id.basecalled_reads.Q${qual}.fail.fastq.gz + if [[ $debug != "yes" ]] + then + rm -r $basecalled_fast5_dir/pass + rm -r $basecalled_fast5_dir/fail + fi + fi +fi + +cd $wkdir +if [[ "$run_demultiplexing" == "yes" ]] +then + echo "Check if $basecalled_fastq_dir has basecalled reads for running demultiplexing." + if [[ "$(ls $basecalled_fastq_dir)" ]] + then + echo "Running demultiplexing." + if [[ "$guppy_run_mode" == "gpu" ]] + then + $guppy_gpu_dir/guppy_barcoder \ + --barcode_kits $barcode_kit_version \ + --recursive \ + --input_path $basecalled_fastq_dir \ + --save_path $demultiplexed_fastq_dir \ + --worker_threads $demultiplexing_threads + else + $guppy_cpu_dir/guppy_barcoder \ + --barcode_kits $barcode_kit_version \ + --recursive \ + --input_path $basecalled_fastq_dir \ + --save_path $demultiplexed_fastq_dir \ + --worker_threads $demultiplexing_threads + fi + + cd $demultiplexed_fastq_dir + for b in barcode* + do + echo "for demultiplexing: barcode=$b" + cat ./$b/*.fastq |gzip -c > $sample_id.basecalled_reads.Q${qual}.pass.$b.fastq.gz + done + cat ./unclassified/*.fastq |gzip -c > $sample_id.basecalled_reads.Q${qual}.pass.unclassified.fastq.gz + else + echo "There is no reads in $basecalled_fastq_dir!" + echo "Please put the basecalled reads in $basecalled_fastq_dir for demultiplexing!" + echo "Exit!!!" + exit + fi +fi + +set +oe pipefail + +cd $wkdir +if [[ "$run_nanoplotting" == "yes" ]] +then + echo "Check if $basecalled_fastq_dir has basecalled reads for running nanoplotting." + if [[ "$(ls $basecalled_fastq_dir)" ]] + then + echo "Running nanoplotting." + mkdir -p $basecalled_qc_dir + fastq_input="$basecalled_fastq_dir/$sample_id.basecalled_reads.Q${qual}.pass.fastq.gz" + $nanoplot_dir/NanoPlot \ + --threads $threads \ + --fastq $fastq_input \ + --N50 \ + -o "$basecalled_qc_dir/${sample_id}_basecalled_reads_Q${qual}_pass_NanoPlot_out" + fi + if [[ "$run_demultiplexing" == "yes" ]] + then + cd $demultiplexed_fastq_dir + for b in barcode* + do + echo "for nanoplotting: barcode=$b" + fastq_input="./$sample_id.basecalled_reads.Q${qual}.pass.$b.fastq.gz" + $nanoplot_dir/NanoPlot \ + --threads $threads \ + --fastq $fastq_input \ + --N50 \ + -o "./../../../$basecalled_qc_dir/${sample_id}_basecalled_reads_Q${qual}_pass_${b}_NanoPlot_out" + done + echo "for nanoplotting: unclassified" + fastq_input="./$sample_id.basecalled_reads.Q${qual}.pass.unclassified.fastq.gz" + $nanoplot_dir/NanoPlot \ + --threads $threads \ + --fastq $fastq_input \ + --N50 \ + -o "./../../../$basecalled_qc_dir/${sample_id}_basecalled_reads_Q${qual}_pass_unclassified_NanoPlot_out" + fi +fi + + + +############################ +# checking bash exit status +if [[ $? -eq 0 ]] +then + echo "" + echo "##########################################################################" + echo "" + echo "LRSDAY message: This bash script has been successfully processed! :)" + echo "" + echo "##########################################################################" + echo "" + exit 0 +fi +############################ diff --git a/pipelines/LRSDAY.00.Nanopore_Reads_Basecalling_and_Demultiplexing.sh b/pipelines/LRSDAY.00.Nanopore_Reads_Basecalling_and_Demultiplexing.sh deleted file mode 100755 index 6c1c640..0000000 --- a/pipelines/LRSDAY.00.Nanopore_Reads_Basecalling_and_Demultiplexing.sh +++ /dev/null @@ -1,139 +0,0 @@ -#!/bin/bash -set -e -o pipefail -####################################### -# load environment variables for LRSDAY -source ./../../env.sh - -####################################### -# set project-specific variables -project_name="Project_Example" # LRSDAY Project name. Default = "Project_Example". -run_basecalling="yes" # Whether to perform basecalling: "yes" or "no". Default = "yes". -run_demultiplexing="yes" # Whether to perform demultiplexing: "yes" or "no". Default = "yes". -run_nanoplotting="yes" # Whether to perform nanoplotting: "yes" or "no". Default = "yes". - -flowcell_id="FAKXXXXX" # The flowcell ID of the nanopore run. Default = "FAKXXXXX". -flowcell_version="FLO-MIN106" # The flowcell version of the nanopore run. Default = "FLO-MIN106". -sequencing_kit_version="SQK-LSK108" # The sequencing kit version of the nanopore run. Default = "SQK-LSK108". -barcode_kit_version="EXP-NBD103" # The barcode kit version of the nanopore run. Default = "EXP-NBD103". - -raw_reads_directory="$LRSDAY_HOME/$project_name/00.Long_Reads/nanopore_raw_fast5_files" # The directory containing the raw nanopore reads before basecalling -basecalling_output_directory="$LRSDAY_HOME/$project_name/00.Long_Reads/nanopore_basecalled_fast5_files" # The directory containing the basecalled nanopore reads. This directory will be automatically generated when running basecalling. -threads=8 # The number of threads to use. Default = 8. - -############################# -# normally no need to change the following -qual=5 # read quality filter for guppy basecalling -num_callers=$threads # num_callers for guppy -threads_per_caller=1 # threads_per_caller for guppy -demultiplexing_threads=$threads # threads to use for demultiplexing -demultiplexing_output_directory="$LRSDAY_HOME/$project_name/00.Long_Reads/nanopore_demultiplexed_fastq_files" # The directory containing the demultiplexed basecalled nanopore reads. This directory will be automatically generated when running demultiplexing. - -if [[ "$run_basecalling" == "yes" ]] -then - echo "Check if $basecalling_output_directory is empty for running basecalling." - if [[ "$(ls $basecalling_output_directory)" ]] - then - echo "Warning! The basecalling directory is not empty! Please empty its content if you want to run basecalling." - echo "Exit!!!" - exit - else - echo "Running basecalling." - $guppy_dir/guppy_basecaller \ - --flowcell $flowcell_version \ - --kit $sequencing_kit_version \ - --recursive \ - --input_path $raw_reads_directory \ - --save_path $basecalling_output_directory \ - --fast5_out \ - --qscore_filtering \ - --min_qscore $qual \ - --num_callers $num_callers \ - --cpu_threads_per_caller $threads_per_caller - cd $basecalling_output_directory - cat ./pass/*.fastq |gzip -c > $project_name.basecalled_reads.Q${qual}.pass.fastq.gz - cat ./fail/*.fastq |gzip -c > $project_name.basecalled_reads.Q${qual}.fail.fastq.gz - fi -fi - -if [[ "$run_demultiplexing" == "yes" ]] -then - echo "Check if $basecalling_output_directory/pass has basecalled reads for running demultiplexing." - if [[ "$(ls $basecalling_output_directory/pass)" ]] - then - echo "Running demultiplexing." - $guppy_dir/guppy_barcoder \ - --barcode_kit $barcode_kit_version \ - --recursive \ - --input_path $basecalling_output_directory/pass \ - --save_path $demultiplexing_output_directory \ - --worker_threads $demultiplexing_threads - - cd $demultiplexing_output_directory - for b in barcode* - do - echo "for demultiplexing: barcode=$b" - cat ./$b/*.fastq |gzip -c > $project_name.basecalled_reads.Q${qual}.pass.$b.fastq.gz - done - cat ./unclassified/*.fastq |gzip -c > $project_name.basecalled_reads.Q${qual}.pass.unclassified.fastq.gz - else - echo "There is no reads in $basecalling_output_directory/pass!" - echo "Please put the basecalled reads in $basecalling_output_directory/pass for demultiplexing!" - echo "Exit!!!" - exit - fi -fi - -set +oe pipefail - -if [[ "$run_nanoplotting" == "yes" ]] -then - echo "Check if $basecalling_output_directory/pass has basecalled reads for running nanoplotting." - if [[ "$(ls $basecalling_output_directory/pass)" ]] - then - echo "Running nanoplotting." - cd $basecalling_output_directory - fastq_input="$project_name.basecalled_reads.Q${qual}.pass.fastq.gz" - source $nanoplot_dir/activate - $nanoplot_dir/NanoPlot \ - --threads $threads \ - --fastq $fastq_input \ - --N50 \ - -o "${project_name}_Q${qual}_pass_NanoPlot_out" - fi - if [[ "$run_demultiplexing" == "yes" ]] - then - cd $demultiplexing_output_directory - for b in barcode* - do - echo "for nanoplotting: barcode=$b" - fastq_input="$project_name.basecalled_reads.Q${qual}.pass.$b.fastq.gz" - source $nanoplot_dir/activate - $nanoplot_dir/NanoPlot \ - --threads $threads \ - --fastq $fastq_input \ - --N50 \ - -o "${project_name}_Q${qual}_pass_${b}_NanoPlot_out" - done - echo "for nanoplotting: unclassified" - fastq_input="$project_name.basecalled_reads.Q${qual}.pass.unclassified.fastq.gz" - $nanoplot_dir/NanoPlot \ - --threads $threads \ - --fastq $fastq_input \ - --N50 \ - -o "${project_name}_Q${qual}_pass_unclassified_NanoPlot_out" - fi -fi - - - -############################ -# checking bash exit status -if [[ $? -eq 0 ]] -then - echo "" - echo "LRSDAY message: This bash script has been successfully processed! :)" - echo "" - echo "" - exit 0 -fi -############################ diff --git a/pipelines/LRSDAY.00.Retrieve_Sample_Illumina_Reads.sh b/pipelines/LRSDAY.00.Retrieve_Sample_Illumina_Reads.sh deleted file mode 100755 index fe91af9..0000000 --- a/pipelines/LRSDAY.00.Retrieve_Sample_Illumina_Reads.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash -set -e -o pipefail - -####################################### -# load environment variables for LRSDAY -source ./../../env.sh - -####################################### -# set project-specific variables -sra_id="SRR4074258" # the SRA Run ID for the reads that you want to retrieve, e.g. "SRR4074258 for S. cerevisiae strain SK1 generated by Yue et al. (2017) Nature Genetics" - -####################################### -# process the pipeline -echo "retrieve reads by the SRR_id: $sra_id ..." -$sra_dir/fastq-dump --defline-seq '@$sn[_$rn]/$ri' --defline-qual '+$sn[_$rn]/$ri' \ - --gzip --split-files -skip-technical --dumpbase --read-filter pass --clip $sra_id - -# if the fastq-dump doesn't work due to connection problems, please run the following two wget commands to directly download the reads. -# wget ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR407/008/SRR4074258/SRR4074258_1.fastq.gz -# ln -s SRR4074258_1.fastq.gz SRR4074258_pass_1.fastq.gz -# wget ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR407/008/SRR4074258/SRR4074258_2.fastq.gz -# ln -s SRR4074258_2.fastq.gz SRR4074258_pass_2.fastq.gz - -############################ -# checking bash exit status -if [[ $? -eq 0 ]] -then - echo "" - echo "LRSDAY message: This bash script has been successfully processed! :)" - echo "" - echo "" - exit 0 -fi -############################ diff --git a/pipelines/LRSDAY.01.Long-read-based_Genome_Assembly.sh b/pipelines/LRSDAY.01.Long-read-based_Genome_Assembly.sh index e471900..3dbdf41 100755 --- a/pipelines/LRSDAY.01.Long-read-based_Genome_Assembly.sh +++ b/pipelines/LRSDAY.01.Long-read-based_Genome_Assembly.sh @@ -1,19 +1,20 @@ #!/bin/bash set -e -o pipefail ########################################## -# load environment variables for LRSDAY +# load environment variables source ./../../env.sh PATH=$gnuplot_dir:$PATH ########################################### # set project-specific variables -prefix="SK1" # The file name prefix for the processing sample. Default = "SK1" for the testing example. +prefix="CPG_1a" # The file name prefix (only allowing strings of alphabetical letters, numbers, and underscores) for the processing sample. Default = "CPG_1a" for the testing example. + long_reads="./../00.Long_Reads/$prefix.filtlong.fastq.gz" # The file path of the long reads file (in fastq or fastq.gz format). -long_reads_type="pacbio-raw" # The long reads data type. Use "pacbio-raw" or "pacbio-corrected" or "nanopore-raw" or "nanopore-corrected". Default = "pacbio-raw" for the testing example +long_reads_type="nanopore-raw" # The long reads data type. Use "pacbio-raw" or "pacbio-corrected" or "pacbio-hifi" or "nanopore-raw" or "nanopore-corrected" or "nanopore-hq" (QV20 reads). Default = "nanopore-raw" for the testing example. genome_size="12.5m" # The estimated genome size with the format of [g|m|k], e.g. 12.5m for 12.5 Mb. Default = "12.5m". -assembler="canu" # The long-read assembler to use. Use "canu" or "flye" or "wtdbg2" or "smartdenovo" or "ra" or "shasta" or "canu-flye" or "canu-wtdbg2" or "canu-smartdenovo" or "canu-ra" or "canu-shasta". For "canu-flye", "canu-wtdbg2", "canu-smartdenovo", "canu-ra", or "canu-shasta", the assembler canu is used first to generate error-corrected reads from the raw reads and then the assembler flye/wtdbg2/smartdenovo/ra/shasta is used to assemble the genome. Default = "canu". -customized_canu_parameters="" # When assembler="canu" or "canu-flye", "canu-wtdbg2", "canu-smartdenovo", "canu-ra", or "canu-shasta", users can set customized Canu assembly parameters here when needed. If users want to keep Canu's default parameters or when other assembler is used, simply leave it empty like customized_canu_parameters="". For example users could set customized_canu_parameters="correctedErrorRate=0.04" for high coverage (>60X) PacBio data and customized_canu_parameters="overlapper=mhap;utgReAlign=true" for high coverage (>60X) Nanopore data to improve the assembly speed. When assembling genomes with high heterozygosity, you can could set customized_canu_parameters="corOutCoverage=200;batOptions=-dg 3 -db 3 -dr 1 -ca 500 -cp 50" to avoid collasping haplotypes. As shown in these examples, more than one customized parameters can be set here as long as they are separeted by a semicolon and contained in a pair of double quotes (e.g. customized_canu_parameters="option1=XXX;option2=YYY;option3=ZZZ"). Please consult Canu's manual "http://canu.readthedocs.io/en/latest/faq.html#what-parameters-can-i-tweak" for advanced customization settings. Default = "" for the testing example. -threads=4 # The number of threads to use. Default = 4. +assembler="canu" # The long-read assembler to use. Use "canu" or "flye" or "wtdbg2" or "smartdenovo" or "shasta" or "canu-flye" or "canu-wtdbg2" or "canu-smartdenovo" or "canu-shasta". For "canu-flye", "canu-wtdbg2", "canu-smartdenovo", or "canu-shasta", the assembler canu is used first to generate error-corrected reads from the raw reads and then the assembler flye/wtdbg2/smartdenovo/shasta is used to assemble the genome. Default = "canu". +customized_canu_parameters="" # When assembler="canu" or "canu-flye", "canu-wtdbg2", "canu-smartdenovo", or "canu-shasta", users can set customized Canu assembly parameters here when needed. If users want to keep Canu's default parameters or when other assembler is used, simply leave it empty like customized_canu_parameters="". For example users could set customized_canu_parameters="correctedErrorRate=0.04" for high coverage (>60X) PacBio data and customized_canu_parameters="overlapper=mhap;utgReAlign=true" for high coverage (>60X) Nanopore data to improve the assembly speed. When assembling genomes with high heterozygosity, you can could set customized_canu_parameters="corOutCoverage=200;batOptions=-dg 3 -db 3 -dr 1 -ca 500 -cp 50" to avoid collasping haplotypes. As shown in these examples, more than one customized parameters can be set here as long as they are separeted by a semicolon and contained in a pair of double quotes (e.g. customized_canu_parameters="option1=XXX;option2=YYY;option3=ZZZ"). Please consult Canu's manual "http://canu.readthedocs.io/en/latest/faq.html#what-parameters-can-i-tweak" for advanced customization settings. Default = "" for the testing example. +threads=8 # The number of threads to use. Default = 8. vcf="yes" # Use "yes" if prefer to have vcf file generated to show SNP and INDEL differences between the assembled genome and the reference genome for their uniquely alignable regions. Otherwise use "no". Default = "yes". dotplot="yes" # Use "yes" if prefer to plot genome-wide dotplot based on the comparison with the reference genome below. Otherwise use "no". Default = "yes". @@ -23,11 +24,11 @@ then ref_genome_raw="./../00.Reference_Genome/S288C.ASM205763v1.fa" # The file path of the raw reference genome. This is only needed when the option "dotplot" or "vcf" has been set as "yes". else parent1_tag="Parent1" # The name tag for parent1. Default = "Parent1". - parent1_short_reads="./../00.Short_Reads/$parent1_tag.illumina.fastq.gz" # The relative path to Illumina reads of parent1 of the long-read sequenced hybrid. This is only needed when the "canu_triobinning_mode" option has been set as "yes". You can combine the R1 and R2 reads into a single fastq file here. + parent1_short_reads="./../00.Short_Reads/$parent1_tag.fq.gz" # The relative path to Illumina reads of parent1 of the long-read sequenced hybrid. This is only needed when the "canu_triobinning_mode" option has been set as "yes". You can combine the R1 and R2 reads into a single fastq file here. parent1_ref_genome_raw="./../00.Reference_Genome/$parent1_tag.genome.raw.fa" # The relative path to the reference genome of parent1 of the hybrid. This is only needed when the options "canu_triobinning_mode" and "dotplot" (or "canu_triobinning_mode" and "vcf") have been set as "yes". When not available, it can be set to a general reference genome of the organism. parent2_tag="Parent2" # The name tag for parent2. Default = "Parent2". - parent2_short_reads="./../00.Short_Reads/$parent2_tag.illumina.fastq.gz" # The relative path to Illumina reads of parent2 of the long-read sequenced hybrid. This is only needed when the "canu_triobinning_mode" option has been set as "yes". You can combine the R1 and R2 reads into a single fastq file here. + parent2_short_reads="./../00.Short_Reads/$parent2_tag.fq.gz" # The relative path to Illumina reads of parent2 of the long-read sequenced hybrid. This is only needed when the "canu_triobinning_mode" option has been set as "yes". You can combine the R1 and R2 reads into a single fastq file here. parent2_ref_genome_raw="./../00.Reference_Genome/$parent2_tag.genome.raw.fa" # The relative path to the reference genome of parent1 of the hybrid. This is only needed when the options "canu_triobinning_mode" and "dotplot" (or "canu_triobinning_mode" and "vcf") have been set as "yes". When not available, it can be set to a general reference genome of the organism. fi @@ -155,21 +156,33 @@ then fi elif [[ "$assembler" == "flye" ]] then - if [[ "$long_reads_type" == "pacbio-corrected" ]] + if [[ "$long_reads_type" == "pacbio-raw" ]] + then + long_reads_type="pacbio-raw" + elif [[ "$long_reads_type" == "pacbio-corrected" ]] then long_reads_type="pacbio-corr" + elif [[ "$long_reads_type" == "pacbio-hifi" ]] + then + long_reads_type="pacbio-hifi" elif [[ "$long_reads_type" == "nanopore-raw" ]] then long_reads_type="nano-raw" elif [[ "$long_reads_type" == "nanopore-corrected" ]] then long_reads_type="nano-corr" + elif [[ "$long_reads_type" == "nanopore-hq" ]] + then + long_reads_type="nano-hq" fi + source $miniconda3_dir/activate $build_dir/flye_conda_env $flye_dir/flye -o $out_dir \ -t $threads \ -g $genome_size \ + --keep-haplotypes \ --${long_reads_type} $long_reads \ -i 2 + source $miniconda3_dir/deactivate perl $LRSDAY_HOME/scripts/simplify_seq_name.pl -i $out_dir/assembly.fasta -o $prefix.assembly.$assembler.fa elif [[ "$assembler" == "wtdbg2" ]] then @@ -188,33 +201,22 @@ then make -f $prefix.mak cd .. perl $LRSDAY_HOME/scripts/simplify_seq_name.pl -i $out_dir/$prefix.dmo.cns -o $prefix.assembly.$assembler.fa -elif [[ "$assembler" == "ra" ]] -then - mkdir $out_dir - cd $out_dir - if [[ "$long_reads_type" == "pacbio-raw" || "$long_reads_type" == "pacbio-corrected" ]] - then - long_reads_type="pb" - elif [[ "$long_reads_type" == "nanopore-raw" || "$long_reads_type" == "nanopore-corrected" ]] - then - long_reads_type="ont" - fi - $ra_dir/ra -x $long_reads_type -t $threads ./../$long_reads > $prefix.assembly.$assembler.fa - cd .. - perl $LRSDAY_HOME/scripts/simplify_seq_name.pl -i $out_dir/$prefix.assembly.$assembler.fa -o $prefix.assembly.$assembler.fa elif [[ "$assembler" == "shasta" ]] then - if [[ "$long_reads_type" == "pacbio-raw" || "$long_reads_type" == "pacbio-corrected" ]] + if [[ "$long_reads_type" == "pacbio-hifi" ]] then - long_reads_type="pb" - elif [[ "$long_reads_type" == "nanopore-raw" || "$long_reads_type" == "nanopore-corrected" ]] + long_reads_type="HiFi-Oct2021" + elif [[ "$long_reads_type" == "nanopore-raw" || "$long_reads_type" == "pacbio-raw" ]] then - long_reads_type="ont" + long_reads_type="Nanopore-Dec2019" + elif [[ "$long_reads_type" == "nanopore-corrected" || "$long_reads_type" == "pacbio-corrected" || "$long_reads_type" == "nanopore-hq" ]] + then + long_reads_type="R10-Slow-Nov2022" fi - perl $LRSDAY_HOME/scripts/fastq2fasta.pl -i $long_reads -o $prefix.long_reads.fasta - $shasta_dir/shasta --input $prefix.long_reads.fasta --output $out_dir + perl $LRSDAY_HOME/scripts/fastq2fasta.pl -i $long_reads -o $prefix.long_reads.fa + $shasta_dir/shasta --input $prefix.long_reads.fa --assemblyDirectory $out_dir --config $long_reads_type perl $LRSDAY_HOME/scripts/simplify_seq_name.pl -i $out_dir/Assembly.fasta -o $prefix.assembly.$assembler.fa - rm $prefix.long_reads.fasta + rm $prefix.long_reads.fa elif [[ "$assembler" == "canu-flye" ]] then OLDIFS=$IFS; @@ -230,18 +232,21 @@ then gnuplot=$gnuplot_dir/gnuplot \ -${long_reads_type} $long_reads mv $prefix.customized_canu_parameters.spec ./$out_dir/canu - if [[ "$long_reads_type" == "pacbio-raw" || "$long_reads_type" == "pacbio-corrected" ]] + if [[ "$long_reads_type" == "pacbio-raw" || "$long_reads_type" == "pacbio-corrected" || "$long_reads_type" == "pacbio-hifi" ]] then long_reads_type="pacbio-corr" - elif [[ "$long_reads_type" == "nanopore-raw" || "$long_reads_type" == "nanopore-corrected" ]] + elif [[ "$long_reads_type" == "nanopore-raw" || "$long_reads_type" == "nanopore-corrected" || "$long_reads_type" == "nanopore-hq" ]] then long_reads_type="nano-corr" fi + source $miniconda3_dir/activate $build_dir/flye_conda_env $flye_dir/flye -o $out_dir/flye \ -t $threads \ -g $genome_size \ + --keep-haplotypes \ --${long_reads_type} $out_dir/canu/$prefix.correctedReads.fasta.gz \ -i 2 + source $miniconda3_dir/deactivate perl $LRSDAY_HOME/scripts/simplify_seq_name.pl -i $out_dir/flye/assembly.fasta -o $prefix.assembly.$assembler.fa elif [[ "$assembler" == "canu-wtdbg2" ]] then @@ -286,34 +291,6 @@ then make -f $prefix.mak cd ../.. perl $LRSDAY_HOME/scripts/simplify_seq_name.pl -i $out_dir/smartdenovo/$prefix.dmo.cns -o $prefix.assembly.$assembler.fa -elif [[ "$assembler" == "canu-ra" ]] -then - OLDIFS=$IFS; - IFS=";" - customized_canu_parameters_array=($customized_canu_parameters) - IFS=$OLDIFS; - printf "%s\n" "${customized_canu_parameters_array[@]}" > $prefix.customized_canu_parameters.spec - - $canu_dir/canu -correct -p $prefix -d $out_dir/canu \ - -s $prefix.customized_canu_parameters.spec \ - useGrid=false \ - maxThreads=$threads \ - genomeSize=$genome_size \ - gnuplot=$gnuplot_dir/gnuplot \ - -${long_reads_type} $long_reads - mv $prefix.customized_canu_parameters.spec ./$out_dir/canu - if [[ "$long_reads_type" == "pacbio-raw" || "$long_reads_type" == "pacbio-corrected" ]] - then - long_reads_type="pb" - elif [[ "$long_reads_type" == "nanopore-raw" || "$long_reads_type" == "nanopore-corrected" ]] - then - long_reads_type="ont" - fi - mkdir -p $out_dir/ra - cd $out_dir/ra - $ra_dir/ra -x $long_reads_type -t $threads ./../canu/$prefix.correctedReads.fasta.gz > $prefix.assembly.$assembler.fa - cd ../.. - perl $LRSDAY_HOME/scripts/simplify_seq_name.pl -i $out_dir/ra/$prefix.assembly.$assembler.fa -o $prefix.assembly.$assembler.fa elif [[ "$assembler" == "canu-shasta" ]] then OLDIFS=$IFS; @@ -330,15 +307,14 @@ then gnuplot=$gnuplot_dir/gnuplot \ -${long_reads_type} $long_reads mv $prefix.customized_canu_parameters.spec ./$out_dir/canu - if [[ "$long_reads_type" == "pacbio-raw" || "$long_reads_type" == "pacbio-corrected" ]] + if [[ "$long_reads_type" == "pacbio-hifi" ]] then - long_reads_type="pb" - elif [[ "$long_reads_type" == "nanopore-raw" || "$long_reads_type" == "nanopore-corrected" ]] - then - long_reads_type="ont" + long_reads_type="HiFi-Oct2021" + else + long_reads_type="R10-Slow-Nov2022" fi gunzip < $out_dir/canu/$prefix.correctedReads.fasta.gz > $out_dir/$prefix.correctedReads.fasta - $shasta_dir/shasta --input $out_dir/$prefix.correctedReads.fasta --output $out_dir/shasta + $shasta_dir/shasta --input $out_dir/$prefix.correctedReads.fasta --assemblyDirectory $out_dir/shasta --config $long_reads_type rm $out_dir/$prefix.correctedReads.fasta perl $LRSDAY_HOME/scripts/simplify_seq_name.pl -i $out_dir/shasta/Assembly.fasta -o $prefix.assembly.$assembler.fa fi @@ -441,9 +417,11 @@ fi # checking bash exit status if [[ $? -eq 0 ]] then + echo "#########################################################" echo "" echo "LRSDAY message: This bash script has been successfully processed! :)" echo "" + echo "#########################################################" echo "" exit 0 fi diff --git a/pipelines/LRSDAY.02.Long-read-based_Assembly_Polishing.sh b/pipelines/LRSDAY.02.Long-read-based_Assembly_Polishing.sh index 49dece7..ac99721 100755 --- a/pipelines/LRSDAY.02.Long-read-based_Assembly_Polishing.sh +++ b/pipelines/LRSDAY.02.Long-read-based_Assembly_Polishing.sh @@ -7,17 +7,18 @@ source ./../../env.sh ########################################### # set project-specific variables -prefix="SK1" # The file name prefix for the processing sample. Please avoid the character '.' in prefix. Default = "SK1" for the testing example. +prefix="CPG_1a" # The file name prefix (only allowing strings of alphabetical letters, numbers, and underscores) for the processing sample. Default = "CPG_1a" for the testing example. + input_assembly="./../01.Long-read-based_Genome_Assembly/$prefix.assembly.raw.fa" # The file path of the input raw long-read-based assembly for polishing. long_reads_in_fastq="./../00.Long_Reads/$prefix.filtlong.fastq.gz" # The file path of the long-read fastq file. -polisher="quiver" # The long-read-based polisher to use: "quiver" (for PacBio RSII reads), "arrow" (for PacBio Sequel reads), "nanopolish" (for raw nanopore fast5 reads), "racon-medaka" (for basecalled nanopore fastq reads), or "marginpolish" (for basecalled nanopore fastq reads). Default = "quiver" for the testing example. +polisher="racon-medaka" # The long-read-based polisher to use: "none" for (PacBio HiFi Reads), "arrow" (for PacBio Sequel reads), "quiver" (for PacBio RSII reads), "nanopolish" (for raw nanopore fast5 reads), "racon-medaka" (for basecalled nanopore fastq reads), or "marginpolish" (for basecalled nanopore fastq reads). Default = "racon-medaka" for the testing example. pacbio_bam_fofn_file="./../00.Long_Reads/pacbio_fofn_files/$prefix.merged.bam.fofn" # The file path to the fofn file containing the absolute path to the PacBio bam files. BAM file is the native output format for PacBio Sequel platform but this is not the case for the RSII platform. For RSII data, the bax2bam file conversion is needed. This can be done by running the LRSDAY.00.Retrieve_Sample_PacBio_Reads.sh script in the 00.Long_Reads directory. This is only needed when polisher="quiver" or "arrow". nanopore_basecalled_fast5_files="./../00.Long_Reads/nanopore_basecalled_fast5_files" # The file path to the directory containing the basecalled Oxford Nanopore FAST5 files. This option is only needed when polisher="nanopolish". -guppy_basecalling_model="r941_flip235" # The guppy basecalling model to use for medaka. Supported values include: "r941_min_fast" for guppy (version_number >= 3.0.3) in fast mode, "r941_min_high" for guppy (version_number >= 3.0.3) in high accuracy mode, "r941_flip235" for guppy (2.3.5 <= version_number <3.0.3), "r941_flip213" for guppy (2.1.3 <= version_number <2.3.5), and "r941_trans" for albacore or guppy (version_number < 2.1.3). This option is only needed when polisher="racon-medaka". -threads=1 # The number of threads to use. Default = "1". +guppy_basecalling_model="r941_min_hac_g507" # The guppy basecalling model to use for medaka. Some supported values include: "r941_min_fast_g507" for guppy in fast mode for MinION R9.4.1 flowcell, "r941_min_hac_g507" for guppy in high accuracy mode for MinION R9.4.1 flowcell, "r941_prom_fast_g507" for guppy in fast mode for PromethION R9.4.1, "r941_prom_hac_g507" for guppy in high accuracy mode for PromethION R9.4.1. See here (https://github.com/nanoporetech/medaka/tree/master/medaka/data) for a complete list of supported models. This option is only needed when polisher="racon-medaka". Default = "r941_min_hac_g507". +threads=8 # The number of threads to use. Default = "8". ploidy=1 # The ploidy status of the sequenced genome. Use "1" for haploid genome and "2" for diploid genome. Currently not supported when "polisher="racon-medaka". Default = "1" for the testing example. -rounds_of_successive_polishing=1 # The number of total rounds of long-read-based assembly polishing. Default = "1" for the testing example. +rounds_of_successive_polishing=3 # The number of total rounds of long-read-based assembly polishing. Default = "3". debug="no" # Use "yes" if prefer to keep intermediate files, otherwise use "no". Default = "no" ########################################### @@ -27,7 +28,10 @@ cp $input_assembly $prefix.assembly.tmp.fa mkdir tmp -if [[ $polisher == "quiver" || $polisher == "arrow" ]] +if [[ $polisher == "none" ]] +then + cp $prefix.assembly.tmp.fa $prefix.assembly.long_read_polished.fa +elif [[ $polisher == "quiver" || $polisher == "arrow" ]] then # perform correction using PacBio's pbalign-arrow pipeline source $miniconda2_dir/activate $build_dir/conda_pacbio_env @@ -77,9 +81,9 @@ then $nanopolish_dir/nanopolish index -d $nanopore_basecalled_fast5_files $long_reads_in_fastq for i in $(seq 1 1 $rounds_of_successive_polishing) do - java -Djava.io.tmpdir=./tmp -Dpicard.useLegacyParser=false -XX:ParallelGCThreads=$threads -jar $picard_dir/picard.jar CreateSequenceDictionary -REFERENCE $prefix.assembly.tmp.fa -OUTPUT $prefix.assembly.tmp.dict + $java_dir/java -Djava.io.tmpdir=./tmp -Dpicard.useLegacyParser=false -XX:ParallelGCThreads=$threads -jar $picard_dir/picard.jar CreateSequenceDictionary -REFERENCE $prefix.assembly.tmp.fa -OUTPUT $prefix.assembly.tmp.dict $minimap2_dir/minimap2 -ax map-ont $prefix.assembly.tmp.fa $long_reads_in_fastq > $prefix.minimap2.round_${i}.sam - java -Djava.io.tmpdir=./tmp -Dpicard.useLegacyParser=false -XX:ParallelGCThreads=$threads -jar $picard_dir/picard.jar SortSam -INPUT $prefix.minimap2.round_${i}.sam -OUTPUT $prefix.minimap2.round_${i}.bam -SORT_ORDER coordinate -VALIDATION_STRINGENCY LENIENT -MAX_RECORDS_IN_RAM 50000 + $java_dir/java -Djava.io.tmpdir=./tmp -Dpicard.useLegacyParser=false -XX:ParallelGCThreads=$threads -jar $picard_dir/picard.jar SortSam -INPUT $prefix.minimap2.round_${i}.sam -OUTPUT $prefix.minimap2.round_${i}.bam -SORT_ORDER coordinate -VALIDATION_STRINGENCY LENIENT -MAX_RECORDS_IN_RAM 50000 $samtools_dir/samtools index $prefix.minimap2.round_${i}.bam rm $prefix.minimap2.round_${i}.sam python3 $nanopolish_dir/scripts/nanopolish_makerange.py $prefix.assembly.tmp.fa | $parallel_dir/parallel --results ${prefix}_nanopolish_round_${i}_results -P 1 \ @@ -94,7 +98,7 @@ then rm $prefix.assembly.tmp.fa elif [[ $polisher == "racon-medaka" ]] then - source $miniconda2_dir/activate $conda_medaka_dir/../../conda_medaka_env + source $miniconda3_dir/activate $medaka_dir/../../medaka_conda_env for i in $(seq 1 1 $rounds_of_successive_polishing) do $minimap2_dir/minimap2 -t $threads -ax map-ont $prefix.assembly.tmp.fa $long_reads_in_fastq > $prefix.minimap2.round_${i}.sam @@ -108,9 +112,9 @@ then done for i in $(seq 1 1 $rounds_of_successive_polishing) do - $conda_medaka_dir/medaka_consensus -i $long_reads_in_fastq -d $prefix.assembly.tmp.fa -o ${prefix}_medaka_out_round_${i} -t $threads -m $guppy_basecalling_model + $medaka_dir/medaka_consensus -i $long_reads_in_fastq -d $prefix.assembly.tmp.fa -o ${prefix}_medaka_out_round_${i} -t $threads -m $guppy_basecalling_model rm $prefix.assembly.tmp.fa - rm $prefix.assembly.tmp.fa.mmi + rm $prefix.assembly.tmp.fa.map-ont.mmi rm $prefix.assembly.tmp.fa.fai perl $LRSDAY_HOME/scripts/tidy_fasta_for_medaka.pl -i ${prefix}_medaka_out_round_${i}/consensus.fasta -o $prefix.assembly.medaka.round_${i}.fa cp $prefix.assembly.medaka.round_${i}.fa $prefix.assembly.tmp.fa @@ -121,28 +125,28 @@ then done ln -s $prefix.assembly.medaka.round_${rounds_of_successive_polishing}.fa $prefix.assembly.long_read_polished.fa rm $prefix.assembly.tmp.fa - source $miniconda2_dir/deactivate -elif [[ $polisher == "marginpolish" ]] -then - source $miniconda2_dir/activate $conda_medaka_dir/../../conda_medaka_env - for i in $(seq 1 1 $rounds_of_successive_polishing) - do - $minimap2_dir/minimap2 -t $threads -ax map-ont $prefix.assembly.tmp.fa $long_reads_in_fastq > $prefix.minimap2.round_${i}.sam - java -Djava.io.tmpdir=./tmp -Dpicard.useLegacyParser=false -XX:ParallelGCThreads=$threads -jar $picard_dir/picard.jar SortSam -INPUT $prefix.minimap2.round_${i}.sam -OUTPUT $prefix.minimap2.round_${i}.bam -SORT_ORDER coordinate -VALIDATION_STRINGENCY LENIENT -MAX_RECORDS_IN_RAM 50000 - $samtools_dir/samtools index $prefix.minimap2.round_${i}.bam - $marginpolish_dir/marginPolish $prefix.minimap2.round_${i}.bam $prefix.assembly.tmp.fa $marginpolish_dir/../params/allParams.np.json -t $threads -o ${prefix}.assembly.marginpolish.round_${i} - if [[ $debug == "no" ]] - then - rm $prefix.minimap2.round_${i}.sam - rm $prefix.minimap2.round_${i}.bam - rm $prefix.minimap2.round_${i}.bam.bai - fi - rm $prefix.assembly.tmp.fa - cp $prefix.assembly.marginpolish.round_${i}.fa $prefix.assembly.tmp.fa - done - ln -s $prefix.assembly.marginpolish.round_${rounds_of_successive_polishing}.fa $prefix.assembly.long_read_polished.fa - rm $prefix.assembly.tmp.fa - source $miniconda2_dir/deactivate + source $miniconda3_dir/deactivate +# elif [[ $polisher == "marginpolish" ]] +# then +# source $miniconda3_dir/activate $conda_medaka_dir/../../conda_marginPolish_env +# for i in $(seq 1 1 $rounds_of_successive_polishing) +# do +# $minimap2_dir/minimap2 -t $threads -ax map-ont $prefix.assembly.tmp.fa $long_reads_in_fastq > $prefix.minimap2.round_${i}.sam +# $java_dir/java -Djava.io.tmpdir=./tmp -Dpicard.useLegacyParser=false -XX:ParallelGCThreads=$threads -jar $picard_dir/picard.jar SortSam -INPUT $prefix.minimap2.round_${i}.sam -OUTPUT $prefix.minimap2.round_${i}.bam -SORT_ORDER coordinate -VALIDATION_STRINGENCY LENIENT -MAX_RECORDS_IN_RAM 50000 +# $samtools_dir/samtools index $prefix.minimap2.round_${i}.bam +# $marginpolish_dir/marginPolish $prefix.minimap2.round_${i}.bam $prefix.assembly.tmp.fa $marginpolish_dir/../params/allParams.np.json -t $threads -o ${prefix}.assembly.marginpolish.round_${i} +# if [[ $debug == "no" ]] +# then +# rm $prefix.minimap2.round_${i}.sam +# rm $prefix.minimap2.round_${i}.bam +# rm $prefix.minimap2.round_${i}.bam.bai +# fi +# rm $prefix.assembly.tmp.fa +# cp $prefix.assembly.marginpolish.round_${i}.fa $prefix.assembly.tmp.fa +# done +# ln -s $prefix.assembly.marginpolish.round_${rounds_of_successive_polishing}.fa $prefix.assembly.long_read_polished.fa +# rm $prefix.assembly.tmp.fa +# source $miniconda3_dir/deactivate fi rm -r tmp @@ -158,9 +162,11 @@ fi # checking bash exit status if [[ $? -eq 0 ]] then + echo "#########################################################" echo "" echo "LRSDAY message: This bash script has been successfully processed! :)" echo "" + echo "#########################################################" echo "" exit 0 fi diff --git a/pipelines/LRSDAY.03.Short-read-based_Assembly_Polishing.sh b/pipelines/LRSDAY.03.Short-read-based_Assembly_Polishing.sh index ebfeacb..a82ed7d 100755 --- a/pipelines/LRSDAY.03.Short-read-based_Assembly_Polishing.sh +++ b/pipelines/LRSDAY.03.Short-read-based_Assembly_Polishing.sh @@ -7,20 +7,22 @@ source ./../../env.sh ########################################### # set project-specific variables -prefix="SK1" # The file name prefix for the processing sample. Default = "SK1" for the testing example. +prefix="CPG_1a" # The file name prefix (only allowing strings of alphabetical letters, numbers, and underscores) for the processing sample. Default = "CPG_1a" for the testing example. + input_assembly="./../02.Long-read-based_Assembly_Polishing/$prefix.assembly.long_read_polished.fa" # The file path of the input assembly before Illumina-based correction trim_illumina_reads="yes" # Whether to trim the input Illumina reads. Use "yes" if prefer to perform trimming, otherwise use "no". Default = "yes". -rounds_of_successive_polishing=1 # The number of total rounds of Illumina-read-based assembly polishing. Default = "1" for the testing example. -threads=1 # The number of threads to use. Default = "1". +rounds_of_successive_polishing=3 # The number of total rounds of Illumina-read-based assembly polishing. Default = "3" for the testing example. +threads=8 # The number of threads to use. Default = "8". mode="PE" # Illumina sequencing mode, "PE" for paired-end sequencing and "SE" for single-end sequencing. Default = "PE". -fixlist="snps,indels" # The types of errors for Illumina-read-based correction by Pilon; see Pilon's manual for more details. Default = "snps,indels". if [[ $mode == "PE" ]] then - reads_PE1="./../00.Short_Reads/SRR4074258_pass_1.fastq.gz" # Please replace the PE reads file name for your own project - reads_PE2="./../00.Short_Reads/SRR4074258_pass_2.fastq.gz" # Please replace the PE reads file name for your own project + reads_PE1="./../00.Short_Reads/$prefix.R1.fastq.gz" # Please replace the PE reads file name for your own project + reads_PE2="./../00.Short_Reads/$prefix.R2.fastq.gz" # Please replace the PE reads file name for your own project else - reads_SE="./../00.Short_Reads/sample_pass_1.fastq.gz" # Please replace the SE reads file name for your own project if you only have SE data + reads_SE="./../00.Short_Reads/$prefix.fastq.gz" # Please replace the SE reads file name for your own project if you only have SE data fi + +fixlist="snps,indels" # The types of errors for Illumina-read-based correction by Pilon; see Pilon's manual for more details. Default = "snps,indels". debug="no" # Whether to keep intermediate files for debugging. Use "yes" if prefer to keep intermediate files, otherwise use "no". Default = "no". ########################################### @@ -29,11 +31,8 @@ debug="no" # Whether to keep intermediate files for debugging. Use "yes" if pref if [[ $mode == "PE" ]] then adapter="$trimmomatic_dir/adapters/TruSeq3-PE-2.fa" # adapter for PE reads - ln -s $reads_PE1 raw.R1.fq.gz; - ln -s $reads_PE2 raw.R2.fq.gz; else adpater="$trimmomatic_dir/adapters/TruSeq3-SE.fa" # adapter for SE reads - ln -s $reads_SE raw.fq.gz; fi cp $input_assembly refseq.tmp.fa @@ -45,22 +44,22 @@ if [[ $trim_illumina_reads == "yes" ]] then if [[ $mode == "PE" ]] then - java -Djava.io.tmpdir=./tmp -XX:ParallelGCThreads=$threads -jar $trimmomatic_dir/trimmomatic.jar PE -threads $threads -phred33 raw.R1.fq.gz raw.R2.fq.gz trimmed.R1.fq.gz trimmed.unpaired.R1.fq.gz trimmed.R2.fq.gz trimmed.unpaired.R2.fq.gz ILLUMINACLIP:adapter.fa:2:30:10 SLIDINGWINDOW:5:20 MINLEN:36 - rm trimmed.unpaired.R1.fq.gz - rm trimmed.unpaired.R2.fq.gz - mv trimmed.R1.fq.gz clean.R1.fq.gz - mv trimmed.R2.fq.gz clean.R2.fq.gz + $java_dir/java -Djava.io.tmpdir=./tmp -XX:ParallelGCThreads=$threads -jar $trimmomatic_dir/trimmomatic.jar PE -threads $threads -phred33 $reads_PE1 $reads_PE2 $prefix.trimmed.R1.fq.gz $prefix.trimmed.unpaired.R1.fq.gz $prefix.trimmed.R2.fq.gz $prefix.trimmed.unpaired.R2.fq.gz ILLUMINACLIP:adapter.fa:2:30:10 SLIDINGWINDOW:5:20 MINLEN:36 + rm $prefix.trimmed.unpaired.R1.fq.gz + rm $prefix.trimmed.unpaired.R2.fq.gz + mv $prefix.trimmed.R1.fq.gz $prefix.clean.R1.fq.gz + mv $prefix.trimmed.R2.fq.gz $prefix.clean.R2.fq.gz else - java -Djava.io.tmpdir=./tmp -XX:ParallelGCThreads=$threads -jar $trimmomatic_dir/trimmomatic.jar SE -threads $threads -phred33 raw.fq.gz trimmed.fq.gz ILLUMINACLIP:adapter.fa:2:30:10 SLIDINGWINDOW:5:20 MINLEN:36 - mv trimmed.fq.gz clean.fq.gz + $java_dir/java -Djava.io.tmpdir=./tmp -XX:ParallelGCThreads=$threads -jar $trimmomatic_dir/trimmomatic.jar SE -threads $threads -phred33 $reads_SE $prefix.trimmed.fq.gz ILLUMINACLIP:adapter.fa:2:30:10 SLIDINGWINDOW:5:20 MINLEN:36 + mv $prefix.trimmed.fq.gz $prefix.clean.fq.gz fi else if [[ $mode == "PE" ]] then - cp raw.R1.fq.gz clean.R1.fq.gz - cp raw.R2.fq.gz clean.R2.fq.gz + cp $prefix.raw.R1.fq.gz $prefix.clean.R1.fq.gz + cp $prefix.raw.R2.fq.gz $prefix.clean.R2.fq.gz else - cp raw.fq.gz clean.fq.gz + cp $prefix.raw.fq.gz $prefix.clean.fq.gz fi fi @@ -71,30 +70,30 @@ do if [[ $mode == "PE" ]] then - $bwa_dir/bwa mem -t $threads -M refseq.tmp.fa clean.R1.fq.gz clean.R2.fq.gz >$prefix.round_${i}.sam + $bwa_dir/bwa mem -t $threads -M refseq.tmp.fa $prefix.clean.R1.fq.gz $prefix.clean.R2.fq.gz >$prefix.round_${i}.sam else - $bwa_dir/bwa mem -t $threads -M refseq.tmp.fa clean.fq.gz >$prefix.round_${i}.sam + $bwa_dir/bwa mem -t $threads -M refseq.tmp.fa $prefix.clean.fq.gz >$prefix.round_${i}.sam fi # index reference sequence $samtools_dir/samtools faidx refseq.tmp.fa - java -Djava.io.tmpdir=./tmp -Dpicard.useLegacyParser=false -XX:ParallelGCThreads=$threads -jar $picard_dir/picard.jar CreateSequenceDictionary \ + $java_dir/java -Djava.io.tmpdir=./tmp -Dpicard.useLegacyParser=false -XX:ParallelGCThreads=$threads -jar $picard_dir/picard.jar CreateSequenceDictionary \ -REFERENCE refseq.tmp.fa \ -OUTPUT refseq.tmp.dict # sort bam file by picard-tools SortSam - java -Djava.io.tmpdir=./tmp -Dpicard.useLegacyParser=false -XX:ParallelGCThreads=$threads -jar $picard_dir/picard.jar SortSam \ + $java_dir/java -Djava.io.tmpdir=./tmp -Dpicard.useLegacyParser=false -XX:ParallelGCThreads=$threads -jar $picard_dir/picard.jar SortSam \ -INPUT $prefix.round_${i}.sam \ -OUTPUT $prefix.round_${i}.sort.bam \ -SORT_ORDER coordinate # fixmate - java -Djava.io.tmpdir=./tmp -Dpicard.useLegacyParser=false -XX:ParallelGCThreads=$threads -jar $picard_dir/picard.jar FixMateInformation \ + $java_dir/java -Djava.io.tmpdir=./tmp -Dpicard.useLegacyParser=false -XX:ParallelGCThreads=$threads -jar $picard_dir/picard.jar FixMateInformation \ -INPUT $prefix.round_${i}.sort.bam \ -OUTPUT $prefix.round_${i}.fixmate.bam # add or replace read groups and sort - java -Djava.io.tmpdir=./tmp -Dpicard.useLegacyParser=false -XX:ParallelGCThreads=$threads -jar $picard_dir/picard.jar AddOrReplaceReadGroups \ + $java_dir/java -Djava.io.tmpdir=./tmp -Dpicard.useLegacyParser=false -XX:ParallelGCThreads=$threads -jar $picard_dir/picard.jar AddOrReplaceReadGroups \ -INPUT $prefix.round_${i}.fixmate.bam \ -OUTPUT $prefix.round_${i}.rdgrp.bam \ -SORT_ORDER coordinate \ @@ -106,7 +105,7 @@ do -RGCN "RGCN" # remove duplicates - java -Djava.io.tmpdir=./tmp -Dpicard.useLegacyParser=false -XX:ParallelGCThreads=$threads -jar $picard_dir/picard.jar MarkDuplicates \ + $java_dir/java -Djava.io.tmpdir=./tmp -Dpicard.useLegacyParser=false -XX:ParallelGCThreads=$threads -jar $picard_dir/picard.jar MarkDuplicates \ -INPUT $prefix.round_${i}.rdgrp.bam \ -REMOVE_DUPLICATES true \ -METRICS_FILE $prefix.round_${i}.dedup.matrics \ @@ -117,13 +116,13 @@ do # GATK local realign # find realigner targets - java -Djava.io.tmpdir=./tmp -XX:ParallelGCThreads=$threads -jar $gatk3_dir/GenomeAnalysisTK.jar \ + $java_dir/java -Djava.io.tmpdir=./tmp -XX:ParallelGCThreads=$threads -jar $gatk3_dir/GenomeAnalysisTK.jar \ -R refseq.tmp.fa \ -T RealignerTargetCreator \ -I $prefix.round_${i}.dedup.bam \ -o $prefix.round_${i}.realn.intervals # run realigner - java -Djava.io.tmpdir=./tmp -XX:ParallelGCThreads=$threads -jar $gatk3_dir/GenomeAnalysisTK.jar \ + $java_dir/java -Djava.io.tmpdir=./tmp -XX:ParallelGCThreads=$threads -jar $gatk3_dir/GenomeAnalysisTK.jar \ -R refseq.tmp.fa \ -T IndelRealigner \ -I $prefix.round_${i}.dedup.bam \ @@ -136,7 +135,7 @@ do # for PE sequencing if [[ $mode == "PE" ]] then - java -Djava.io.tmpdir=./tmp -Xmx16G -XX:ParallelGCThreads=$threads -jar $pilon_dir/pilon.jar \ + $java_dir/java -Djava.io.tmpdir=./tmp -Xmx16G -XX:ParallelGCThreads=$threads -jar $pilon_dir/pilon.jar \ --genome refseq.tmp.fa \ --frags $prefix.round_${i}.realn.bam \ --fix $fixlist \ @@ -145,7 +144,7 @@ do --output $prefix.assembly.pilon.round_${i} \ >$prefix.pilon.round_${i}.log else - java -Djava.io.tmpdir=./tmp -Xmx16G -XX:ParallelGCThreads=$threads -jar $pilon_dir/pilon.jar \ + $java_dir/java -Djava.io.tmpdir=./tmp -Xmx16G -XX:ParallelGCThreads=$threads -jar $pilon_dir/pilon.jar \ --genome refseq.tmp.fa \ --unpaired $prefix.round_${i}.realn.bam \ --fix $fixlist \ @@ -184,9 +183,11 @@ fi # checking bash exit status if [[ $? -eq 0 ]] then + echo "#########################################################" echo "" echo "LRSDAY message: This bash script has been successfully processed! :)" echo "" + echo "#########################################################" echo "" exit 0 fi diff --git a/pipelines/LRSDAY.04.Reference-guided_Assembly_Scaffolding.sh b/pipelines/LRSDAY.04.Reference-guided_Assembly_Scaffolding.sh index bf74dc1..40fc8e1 100755 --- a/pipelines/LRSDAY.04.Reference-guided_Assembly_Scaffolding.sh +++ b/pipelines/LRSDAY.04.Reference-guided_Assembly_Scaffolding.sh @@ -3,18 +3,19 @@ set -e -o pipefail ####################################### # load environment variables for LRSDAY source ./../../env.sh -PATH=$gnuplot_dir:$hal_dir:$PATH +PATH=$gnuplot_dir:$PATH ####################################### # set project-specific variables -prefix="SK1" # The file name prefix for processing sample. Please avoid the character '.' in prefix. Default = "SK1" for the testing example. +prefix="CPG_1a" # The file name prefix (only allowing strings of alphabetical letters, numbers, and underscores) for the processing sample. Default = "CPG_1a" for the testing example. + input_assembly="./../03.Short-read-based_Assembly_Polishing/$prefix.assembly.short_read_polished.fa" # The file path of the input genome assembly. ref_genome_raw="./../00.Reference_Genome/S288C.ASM205763v1.fa" # The file path of the raw reference genome. ref_genome_noncore_masked="./../00.Reference_Genome/S288C.ASM205763v1.noncore_masked.fa" # The file path of the specially masked reference genome where subtelomeres and chromosome-ends were hard masked. When the subtelomere/chromosome-end information is unavailable for the organism that you are interested in, you can just put the path of the raw reference genome assembly here. chrMT_tag="chrMT" # The sequence name for the mitochondrial genome in the raw reference genome file, if there are multiple reference mitochondrial genomes that you want to check, use a single ';' to separate them. e.g. "Sc_chrMT;Sp_chrMT". Default = "chrMT". gap_size=5000 # The number of Ns to insert between adjacent contigs during scaffolding. Default = "5000". -scaffolder="ragout" # The reference-based assembly scaffolder to use: "ragout" or "ragoo". Default = "ragout". If the reference genome size is large (e.g. > 100 Mb), please use "ragoo" since extra dependency is needed for "ragout" to handle large genomes. -threads=1 # The number of threads to use. Default = "1". +scaffolder="ragtag" # The reference-based assembly scaffolder to use: "ragout" or "ragtag". Default = "ragtag". If the reference genome size is large (e.g. > 100 Mb), please use "ragtag" since extra dependency is needed for "ragout" to handle large genomes. +threads=8 # The number of threads to use. Default = "8". debug="no" # Whether to keep intermediate files for debugging. Use "yes" if prefer to keep intermediate files, otherwise use "no". Default = "no". ###################################### @@ -26,28 +27,28 @@ sed -e '/^[^>]/s/[^ATGCatgc]/N/g' $ref_genome_noncore_masked > ref_genome_noncor if [[ $scaffolder == "ragout" ]] then - echo ".references = ref_genome" > ragout.recipe.txt - echo ".target = $prefix" >> ragout.recipe.txt - echo "ref_genome.fasta = ./ref_genome_noncore_masked.fa" >> ragout.recipe.txt - echo "$prefix.fasta = $input_assembly" >> ragout.recipe.txt - echo ".naming_ref = ref_genome" >> ragout.recipe.txt - source $miniconda2_dir/activate $build_dir/conda_ragout_env - python2 $ragout_dir/ragout -o ${prefix}_ragout_out --solid-scaffolds -t $threads ragout.recipe.txt - source $miniconda2_dir/deactivate + echo ".references = ref_genome" > $prefix.ragout.recipe.txt + echo ".target = $prefix" >>$prefix.ragout.recipe.txt + echo "ref_genome.fasta = ./ref_genome_noncore_masked.fa" >> $prefix.ragout.recipe.txt + echo "$prefix.fasta = $input_assembly" >> $prefix.ragout.recipe.txt + echo ".naming_ref = ref_genome" >> $prefix.ragout.recipe.txt + source $miniconda3_dir/activate $build_dir/ragout_conda_env + python3 $ragout_dir/ragout -o ${prefix}_ragout_out --solid-scaffolds --overwrite -t $threads $prefix.ragout.recipe.txt + source $miniconda3_dir/deactivate cat ./${prefix}_ragout_out/${prefix}_scaffolds.fasta | sed "s/^>chr_/>/g" > ./${prefix}_ragout_out/${prefix}_scaffolds.renamed.fasta cat ./${prefix}_ragout_out/${prefix}_scaffolds.renamed.fasta ./${prefix}_ragout_out/${prefix}_unplaced.fasta > ./${prefix}_ragout_out/${prefix}.ragout.raw.fa perl $LRSDAY_HOME/scripts/adjust_assembly_by_ragoutAGP.pl -i $input_assembly -p $prefix -a ./${prefix}_ragout_out/${prefix}_scaffolds.agp -g $gap_size - ln -s ${prefix}.ragout.fa $prefix.assembly.ref_based_scaffolded.fa -elif [[ $scaffolder == "ragoo" ]] + mv ${prefix}.ragout.fa $prefix.assembly.ref_based_scaffolded.fa +elif [[ $scaffolder == "ragtag" ]] then - source $build_dir/py3_virtualenv_ragoo/bin/activate - python3 $ragoo_dir/ragoo.py -t $threads -g $gap_size -C -m $minimap2_dir/minimap2 $input_assembly ref_genome_noncore_masked.fa - mv ragoo_output ${prefix}_ragoo_out - cp ${prefix}_ragoo_out/ragoo.fasta ${prefix}.ragoo.fa - ln -s ${prefix}.ragoo.fa $prefix.assembly.ref_based_scaffolded.fa + source $miniconda3_dir/activate $build_dir/ragtag_conda_env + $ragtag_dir/ragtag.py scaffold -t $threads -f 500 -g $gap_size -r -u -o ${prefix}_ragtag_out ref_genome_noncore_masked.fa $input_assembly + source $miniconda3_dir/deactivate + cat ./${prefix}_ragtag_out/ragtag.scaffold.fasta |sed "s/_RagTag$//g" > ${prefix}.ragtag.fa + mv ${prefix}.ragtag.fa $prefix.assembly.ref_based_scaffolded.fa else echo "Unrecognized scaffolder: $scaffolder"; - echo "Please set scaffolder=\"ragout\" or \"ragoo\"."; + echo "Please set scaffolder=\"ragout\" or \"ragtag\"."; echo "LRSDAY Exit!"; exit; fi @@ -66,20 +67,25 @@ perl $LRSDAY_HOME/scripts/fine_tune_gnuplot.pl -i $prefix.assembly.ref_based_sca $gnuplot_dir/gnuplot < $prefix.assembly.ref_based_scaffolded.filter_adjust.gp # generate dotplot for the mitochondrial genome only -perl $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $ref_genome_raw -l ref.chrMT.list -m normal -o ref.chrMT.fa -perl $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $prefix.assembly.ref_based_scaffolded.fa -l $prefix.assembly.ref_based_scaffolded.mt_contig.list -m normal -o $prefix.assembly.ref_based_scaffolded.mt_contig.fa -$mummer4_dir/nucmer --maxmatch --nosimplify -p $prefix.assembly.ref_based_scaffolded.chrMT ref.chrMT.fa $prefix.assembly.ref_based_scaffolded.mt_contig.fa -$mummer4_dir/delta-filter -m $prefix.assembly.ref_based_scaffolded.chrMT.delta > $prefix.assembly.ref_based_scaffolded.chrMT.delta_filter -$mummer4_dir/mummerplot --large --postscript $prefix.assembly.ref_based_scaffolded.chrMT.delta_filter -p $prefix.assembly.ref_based_scaffolded.chrMT.filter -perl $LRSDAY_HOME/scripts/fine_tune_gnuplot.pl -i $prefix.assembly.ref_based_scaffolded.chrMT.filter.gp -o $prefix.assembly.ref_based_scaffolded.chrMT.filter_adjust.gp -r ref.chrMT.fa -q $prefix.assembly.ref_based_scaffolded.mt_contig.fa -$gnuplot_dir/gnuplot < $prefix.assembly.ref_based_scaffolded.chrMT.filter_adjust.gp +if [ -s $prefix.assembly.ref_based_scaffolded.mt_contig.list ] +then + perl $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $ref_genome_raw -l ref.chrMT.list -m normal -o ref.chrMT.fa + perl $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $prefix.assembly.ref_based_scaffolded.fa -l $prefix.assembly.ref_based_scaffolded.mt_contig.list -m normal -o $prefix.assembly.ref_based_scaffolded.mt_contig.fa + $mummer4_dir/nucmer --maxmatch --nosimplify -p $prefix.assembly.ref_based_scaffolded.chrMT ref.chrMT.fa $prefix.assembly.ref_based_scaffolded.mt_contig.fa + $mummer4_dir/delta-filter -m $prefix.assembly.ref_based_scaffolded.chrMT.delta > $prefix.assembly.ref_based_scaffolded.chrMT.delta_filter + $mummer4_dir/mummerplot --large --postscript $prefix.assembly.ref_based_scaffolded.chrMT.delta_filter -p $prefix.assembly.ref_based_scaffolded.chrMT.filter + perl $LRSDAY_HOME/scripts/fine_tune_gnuplot.pl -i $prefix.assembly.ref_based_scaffolded.chrMT.filter.gp -o $prefix.assembly.ref_based_scaffolded.chrMT.filter_adjust.gp -r ref.chrMT.fa -q $prefix.assembly.ref_based_scaffolded.mt_contig.fa + $gnuplot_dir/gnuplot < $prefix.assembly.ref_based_scaffolded.chrMT.filter_adjust.gp +else + echo "no chrMT contig detected, therefore no chrMT plotting will be performed." +fi # clean up intermediate files if [[ $debug == "no" ]] then if [[ $scaffolder == "ragout" ]] then - rm ragout.recipe.txt + rm $prefix.ragout.recipe.txt fi rm ref_genome_noncore_masked.fa rm *.filter.fplot @@ -89,8 +95,11 @@ then rm *.filter.gp rm *.filter_adjust.gp rm *.filter.ps - rm ref.chrMT.list - rm ref.chrMT.fa + if [ -e ref.chrMT.fa ] + then + rm ref.chrMT.list + rm ref.chrMT.fa + fi fi ############################ diff --git a/pipelines/LRSDAY.05.Centromere_Identity_Profiling.sh b/pipelines/LRSDAY.05.Centromere_Identity_Profiling.sh index 663c004..25389d7 100755 --- a/pipelines/LRSDAY.05.Centromere_Identity_Profiling.sh +++ b/pipelines/LRSDAY.05.Centromere_Identity_Profiling.sh @@ -6,7 +6,8 @@ source ./../../env.sh ####################################### # set project-specific variables -prefix="SK1" # The file name prefix for the processing sample. Default = "SK1" for the testing example. +prefix="CPG_1a" # The file name prefix (only allowing strings of alphabetical letters, numbers, and underscores) for the processing sample. Default = "CPG_1a" for the testing example. + genome="./../04.Reference-guided_Assembly_Scaffolding/$prefix.assembly.ref_based_scaffolded.fa" # The file path of the input genome assembly query="$LRSDAY_HOME/data/S288C.centromere.fa" # S. cerevisiae S288C reference centromere sequences based on Yue et al. (2017) Nature Genetics. debug="no" # Whether to keep intermediate files for debugging. Use "yes" if prefer to keep intermediate files, otherwise use "no". Default = "no". diff --git a/pipelines/LRSDAY.06.Mitochondrial_Genome_Assembly_Improvement.sh b/pipelines/LRSDAY.06.Mitochondrial_Genome_Assembly_Improvement.sh index 97b06c0..2b793af 100755 --- a/pipelines/LRSDAY.06.Mitochondrial_Genome_Assembly_Improvement.sh +++ b/pipelines/LRSDAY.06.Mitochondrial_Genome_Assembly_Improvement.sh @@ -3,17 +3,18 @@ set -e ########################################## # load environment variables for LRSDAY source ./../../env.sh -PATH=$bwa_dir:$samtools_dir:$gnuplot_dir:$canu_dir:$mummer_dir:$spades_dir:$prodigal_dir:$PATH +PATH=$bwa_dir:$samtools_dir:$gnuplot_dir:$mummer4_dir:$spades_dir:$prodigal_dir:$PATH ########################################### # set project-specific variables -prefix="SK1" # The file name prefix for the processing sample. Default = "SK1" for the testing example. +prefix="CPG_1a" # The file name prefix (only allowing strings of alphabetical letters, numbers, and underscores) for the processing sample. Default = "CPG_1a" for the testing example. + genome="./../04.Reference-guided_Assembly_Scaffolding/$prefix.assembly.ref_based_scaffolded.fa" # The file path of the input genome assembly mt_contig_list="./../04.Reference-guided_Assembly_Scaffolding/$prefix.assembly.ref_based_scaffolded.mt_contig.list" # The mitochodnrial contig list generated by the module 04.Reference-guided_Assembly_Scaffolding. gene_start="$LRSDAY_HOME/data/ATP6.cds.fa" # A FASTA file containing the CDS sequence of the mitochodnrial gene to be used as the starting point of the mitochondrial assembly. This can be set to any gene as long as a fasta file containing the DNA sequence of the gene is provided. ref_genome_raw="./../00.Reference_Genome/S288C.ASM205763v1.fa" # The file path of the raw reference genome chrMT_tag="chrMT" # The sequence name for the mitochondrial genome in the raw reference genome file, if there are multiple reference mitochondrial genomes that you want to check, use a single ';' to separate them. e.g. "Sc_chrMT;Sp_chrMT". Default = "chrMT". -threads=1 # The number of threads to use. Default = "1". +threads=8 # The number of threads to use. Default = "8". debug="no" # Whether to keep intermediate files for debugging. Use "yes" if prefer to keep intermediate files, otherwise use "no". Default = "no". ########################################## @@ -21,6 +22,9 @@ debug="no" # Whether to keep intermediate files for debugging. Use "yes" if pref $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $genome -l $mt_contig_list -m reverse -o $prefix.assembly.non_mt_contig.fa $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $genome -l $mt_contig_list -m normal -o $prefix.assembly.mt_contig.fa +echo $chrMT_tag | sed -e "s/;/\n/g" > ref.chrMT.list +perl $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $ref_genome_raw -l ref.chrMT.list -m normal -o ref.chrMT.fa + if [[ $(egrep -c "^>" "$prefix.assembly.mt_contig.fa") -eq 0 ]] then echo "no chrMT contig was found in the assembly, skip this step and just output the input assembly ..." @@ -39,12 +43,13 @@ else perl $LRSDAY_HOME/scripts/break_contig_by_blast.pl -i $prefix.assembly.mt_contig.descaffold.fa -b $prefix.assembly.mt_contig.descaffold.tblastx.filtered.out -o $prefix.assembly.mt_contig.break_by_blast.fa # reassemble the mitochondrial genome using CAP3 to collapse smaller fragments - $cap_dir/cap3 $prefix.assembly.mt_contig.break_by_blast.fa -k 0 + $cap3_dir/cap3 $prefix.assembly.mt_contig.break_by_blast.fa -k 0 if [[ $(egrep -c "^>" "$prefix.assembly.mt_contig.break_by_blast.fa.cap.contigs") -eq 0 ]] then cat $prefix.assembly.mt_contig.break_by_blast.fa | sed "s/>/>chrMT_/" > $prefix.assembly.mt_contig.for_clean.fa else - cat $prefix.assembly.mt_contig.break_by_blast.fa.cap.contigs| sed "s/>/>chrMT_/" > $prefix.assembly.mt_contig.for_clean.fa + cat $prefix.assembly.mt_contig.break_by_blast.fa.cap.contigs $prefix.assembly.mt_contig.break_by_blast.fa.cap.singlets > $prefix.assembly.mt_contig.break_by_blast.fa.cap.contigs_singlets + cat $prefix.assembly.mt_contig.break_by_blast.fa.cap.contigs_singlets| sed "s/>/>chrMT_/" > $prefix.assembly.mt_contig.for_clean.fa fi $circlator_dir/circlator clean --verbose $prefix.assembly.mt_contig.for_clean.fa ${prefix}.assembly.mt_contig.for_fixstart.fa @@ -64,16 +69,15 @@ else $circlator_dir/circlator fixstart --verbose --genes_fa $gene_start --min_id 90 --ignore $prefix.assembly.for_fixstart.for_skip.list $prefix.assembly.mt_contig.for_fixstart.fa $prefix.assembly.mt_contig.circlator - mv $prefix.assembly.mt_contig.circlator.fasta $prefix.assembly.mt_contig.circlator.fa + source $miniconda3_dir/activate $build_dir/ragtag_conda_env + $ragtag_dir/ragtag.py scaffold -t $threads -f 1 -u -o ${prefix}_chrMT_ragtag_out ref.chrMT.fa $prefix.assembly.mt_contig.circlator.fasta + cat ${prefix}_chrMT_ragtag_out/ragtag.scaffold.fasta |sed "s/>chrMT_RagTag/>${prefix}.chrMT/"|sed -r "s/N{100}//gi" > ${prefix}.assembly.mt_contig.ragtag.fa cat $prefix.assembly.non_mt_contig.fa |egrep "^>"|egrep -v "^>chr" |sed "s/>//" > $prefix.assembly.non_primary_contig.list $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $prefix.assembly.non_mt_contig.fa -l $prefix.assembly.non_primary_contig.list -m reverse -o $prefix.assembly.primary_contig.fa $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $prefix.assembly.non_mt_contig.fa -l $prefix.assembly.non_primary_contig.list -m normal -o $prefix.assembly.non_primary_contig.fa - cat $prefix.assembly.primary_contig.fa $prefix.assembly.mt_contig.circlator.fa $prefix.assembly.non_primary_contig.fa > $prefix.assembly.mt_improved.fa - + cat $prefix.assembly.primary_contig.fa $prefix.assembly.mt_contig.ragtag.fa $prefix.assembly.non_primary_contig.fa > $prefix.assembly.mt_improved.fa # generate dotplot for the mitochondrial genome only - echo $chrMT_tag | sed -e "s/;/\n/g" > ref.chrMT.list - perl $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $ref_genome_raw -l ref.chrMT.list -m normal -o ref.chrMT.fa - $mummer4_dir/nucmer -t $threads --maxmatch --nosimplify -p $prefix.assembly.mt_improved.chrMT ref.chrMT.fa $prefix.assembly.mt_contig.circlator.fa + $mummer4_dir/nucmer -t $threads --maxmatch --nosimplify -p $prefix.assembly.mt_improved.chrMT ref.chrMT.fa $prefix.assembly.mt_contig.ragtag.fa $mummer4_dir/delta-filter -m $prefix.assembly.mt_improved.chrMT.delta > $prefix.assembly.mt_improved.chrMT.delta_filter $mummer4_dir/mummerplot --large --postscript $prefix.assembly.mt_improved.chrMT.delta_filter -p $prefix.assembly.mt_improved.chrMT.filter perl $LRSDAY_HOME/scripts/fine_tune_gnuplot.pl -i $prefix.assembly.mt_improved.chrMT.filter.gp -o $prefix.assembly.mt_improved.chrMT.filter_adjust.gp -r ref.chrMT.fa -q $prefix.assembly.mt_contig.final.fa @@ -106,6 +110,10 @@ then rm $prefix.assembly.for_fixstart.for_skip.fa rm $prefix.assembly.for_fixstart.for_skip.list fi + if [ -d "${prefix}_chrMT_ragtag_out" ] + then + rm -r ${prefix}_chrMT_ragtag_out + fi fi ############################ diff --git a/pipelines/LRSDAY.07.Supervised_Final_Assembly.1.sh b/pipelines/LRSDAY.07.Supervised_Final_Assembly.1.sh index f1a95ab..97b3e2a 100755 --- a/pipelines/LRSDAY.07.Supervised_Final_Assembly.1.sh +++ b/pipelines/LRSDAY.07.Supervised_Final_Assembly.1.sh @@ -6,7 +6,8 @@ source ./../../env.sh ####################################### # set project-specific variables -prefix="SK1" # The file name prefix for the processing sample. Default = "SK1" for the testing example. +prefix="CPG_1a" # The file name prefix (only allowing strings of alphabetical letters, numbers, and underscores) for the processing sample. Default = "CPG_1a" for the testing example. + genome="./../06.Mitochondrial_Genome_Assembly_Improvement/$prefix.assembly.mt_improved.fa" # The file name of the input genome assembly. diff --git a/pipelines/LRSDAY.07.Supervised_Final_Assembly.2.sh b/pipelines/LRSDAY.07.Supervised_Final_Assembly.2.sh index 1d342a1..3d2eb44 100755 --- a/pipelines/LRSDAY.07.Supervised_Final_Assembly.2.sh +++ b/pipelines/LRSDAY.07.Supervised_Final_Assembly.2.sh @@ -7,20 +7,23 @@ PATH=$gnuplot_dir:$PATH ####################################### # set project-specific variables -prefix="SK1" # The file name prefix for the processing sample. Default = "SK1" for the testing example. +prefix="CPG_1a" # The file name prefix (only allowing strings of alphabetical letters, numbers, and underscores) for the processing sample. Default = "CPG_1a" for the testing example. + genome="./../06.Mitochondrial_Genome_Assembly_Improvement/$prefix.assembly.mt_improved.fa" # The file path of the input genome assembly. -vcf="yes" # Whether to generate a vcf file generated to show SNP and INDEL differences between the assembled genome and the reference genome for their uniquely alignable regions. Use "yes" if prefer to have vcf file generated to show SNP and INDEL differences between the assembled genome and the reference genome. Default = "yes". dotplot="yes" # Whether to plot genome-wide dotplot based on the comparison with the reference genome below. Use "yes" if prefer to plot, otherwise use "no". Default = "yes". ref_genome_raw="./../00.Reference_Genome/S288C.ASM205763v1.fa" # The path of the raw reference genome, only needed when dotplot="yes" or vcf="yes". -threads=1 # The number of threads to use. Default = 1. +threads=8 # The number of threads to use. Default = 8. debug="no" # Whether to keep intermediate files for debugging. Use "yes" if prefer to keep intermediate files, otherwise use "no". Default = "no". ####################################### # process the pipeline # Please mark desiarable changes in the $prefix.modification.list file and comment the command lines for Step 1 before proceeding with Step 2. + +vcf="no" # Whether to generate a vcf file generated to show SNP and INDEL differences between the assembled genome and the reference genome for their uniquely alignable regions. Use "yes" if prefer to have vcf file generated to show SNP and INDEL differences between the assembled genome and the reference genome. Default = "no". # Step 2: -perl $LRSDAY_HOME/scripts/relabel_and_reorder_sequences.pl -i $genome -m $prefix.assembly.modification.list -o $prefix.assembly.final.fa +perl $LRSDAY_HOME/scripts/relabel_and_reorder_sequences.pl -i $genome -m $prefix.assembly.modification.list -o $prefix.assembly.relabel_and_reorder.fa # generate assembly statistics +perl $LRSDAY_HOME/scripts/tidy_fasta.pl -i $prefix.assembly.relabel_and_reorder.fa -o $prefix.assembly.final.fa perl $LRSDAY_HOME/scripts/cal_assembly_stats.pl -i $prefix.assembly.final.fa -o $prefix.assembly.final.stats.txt # check project-specific variables @@ -77,6 +80,8 @@ then rm *.delta rm *.delta_filter rm ref_genome.fa + rm $prefix.assembly.relabel_and_reorder.fa + if [[ $vcf == "yes" ]] then rm ref_genome.fa.fai diff --git a/pipelines/LRSDAY.08.Centromere_Annotation.sh b/pipelines/LRSDAY.08.Centromere_Annotation.sh index 8a731c7..0951eff 100755 --- a/pipelines/LRSDAY.08.Centromere_Annotation.sh +++ b/pipelines/LRSDAY.08.Centromere_Annotation.sh @@ -6,20 +6,28 @@ source ./../../env.sh ####################################### # set project-specific variables -prefix="SK1" # The file name prefix for the processing sample. Default = "SK1" for the testing example. -genome="./../07.Supervised_Final_Assembly/$prefix.assembly.final.fa" # The path of the input genome assembly. +prefix="CPG_1a" # The file name prefix (only allowing strings of alphabetical letters, numbers, and underscores) for the processing sample. Default = "CPG_1a" for the testing example. +genome_assembly="./../07.Supervised_Final_Assembly/$prefix.assembly.final.fa" # The path of the input genome assembly. +chrMT_tag="chrMT" # The sequence name for the mitochondrial genome in the final assembly. If there are multiple sequences, use a single ';' to separate them. e.g. "chrMT_part1;chrMT_part2". Default = "chrMT". query="$LRSDAY_HOME/data/S288C.centromere.fa" # The S. cerevisiae S288C reference centromere sequences based on Yue et al. (2017) Nature Genetics. debug="no" # Whether to keep intermediate files for debugging. Use "yes" if prefer to keep intermediate files, otherwise use "no". Default = "no". ###################################### # process the pipeline -$exonerate_dir/exonerate --showvulgar no --showcigar no --showalignment no --showtargetgff yes --bestn 1 $query $genome >$prefix.centromere.exonerate.gff + +echo $chrMT_tag | sed -e "s/;/\n/g" > $prefix.assembly.chrMT.list +perl $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $genome_assembly -l $prefix.assembly.chrMT.list -m reverse -o $prefix.assembly.nuclear_genome.fa +perl $LRSDAY_HOME/scripts/tidy_fasta.pl -i $prefix.assembly.nuclear_genome.fa -o $prefix.assembly.nuclear_genome.tidy.fa + +$exonerate_dir/exonerate --showvulgar no --showcigar no --showalignment no --showtargetgff yes --bestn 1 $query $prefix.assembly.nuclear_genome.tidy.fa >$prefix.centromere.exonerate.gff perl $LRSDAY_HOME/scripts/exonerate_gff2gff3.pl -i $prefix.centromere.exonerate.gff -o $prefix.centromere.gff3.tmp -t $prefix -perl $LRSDAY_HOME/scripts/tidy_maker_gff3.pl -r $genome -i $prefix.centromere.gff3.tmp -o $prefix.centromere.gff3 -t $prefix +perl $LRSDAY_HOME/scripts/tidy_maker_gff3.pl -r $prefix.assembly.nuclear_genome.tidy.fa -i $prefix.centromere.gff3.tmp -o $prefix.nuclear_genome.centromere.gff3 -t $prefix # clean up intermediate files if [[ $debug == "no" ]] then + rm $prefix.assembly.nuclear_genome.fa + rm $prefix.assembly.nuclear_genome.tidy.fa rm $prefix.centromere.exonerate.gff rm $prefix.centromere.gff3.tmp fi diff --git a/pipelines/LRSDAY.09.Nuclear_Gene_Annotation.sh b/pipelines/LRSDAY.09.Nuclear_Gene_Annotation.sh index 444ef7a..65cb69d 100755 --- a/pipelines/LRSDAY.09.Nuclear_Gene_Annotation.sh +++ b/pipelines/LRSDAY.09.Nuclear_Gene_Annotation.sh @@ -6,10 +6,11 @@ source ./../../env.sh ####################################### # set project-specific variables -prefix="SK1" # The file name prefix for the processing sample. Default = "SK1" for the testing example. -genome_assembly="./../07.Supervised_Final_Assembly/$prefix.assembly.final.fa" # The file path of the input genome assembly. +prefix="CPG_1a" # The file name prefix (only allowing strings of alphabetical letters, numbers, and underscores) for the processing sample. Default = "CPG_1a" for the testing example. + +genome_assembly="./../07.Supervised_Final_Assembly/$prefix.assembly.final.fa" # The file path of the final input genome assembly. chrMT_tag="chrMT" # The sequence name for the mitochondrial genome in the final assembly. If there are multiple sequences, use a single ';' to separate them. e.g. "chrMT_part1;chrMT_part2". Default = "chrMT". -threads=1 # The number of threads to use. Default = "1". +threads=8 # The number of threads to use. Default = "8". maker_opts="$LRSDAY_HOME/misc/maker_opts.customized.ctl" # The configuration file for MAKER. You can edit this file if you have native transciptome/EST data for the strain/species that you sequenced or if you want to adapt it to annotate other eukaryotic organisms. Otherwise, please keep it unchanged. Please note that if this file is in the same directory where this bash script is executed, the file name cannot be "maker_opts.ctl". EVM_weights="$LRSDAY_HOME/misc/EVM_weights.customized.txt" # The configuration file for EVM. A list of numeric weight values to be applied to each type of evidence. debug="no" # use "yes" if prefer to keep intermediate files, otherwise use "no". @@ -24,17 +25,16 @@ echo "genome_assembly=$genome_assembly" # convert the genome assembly file to all uppercases echo $chrMT_tag | sed -e "s/;/\n/g" > $genome_tag.assembly.chrMT.list -$LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $genome_assembly -l $genome_tag.assembly.chrMT.list -m reverse -o $genome_tag.assembly.nuclear_genome.fa -#$LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $genome_assembly -l $genome_tag.assembly.chrMT.list -m normal -o $genome_tag.assembly.mitochondrial_genome.fa - -perl $LRSDAY_HOME/scripts/switch_letter_cases_in_fasta.pl -i $genome_tag.assembly.nuclear_genome.fa -o genome.uppercase.fa -c upper +perl $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $genome_assembly -l $genome_tag.assembly.chrMT.list -m reverse -o $genome_tag.assembly.nuclear_genome.fa +# perl $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $genome_assembly -l $genome_tag.assembly.chrMT.list -m normal -o $genome_tag.assembly.mitochondrial_genome.fa +perl $LRSDAY_HOME/scripts/tidy_fasta.pl -i $genome_tag.assembly.nuclear_genome.fa -o $genome_tag.assembly.nuclear_genome.tidy.fa cp $maker_opts maker_opts.ctl cp $LRSDAY_HOME/misc/maker_exe.ctl . cp $LRSDAY_HOME/misc/maker_bopts.ctl . cp $LRSDAY_HOME/misc/maker_evm.ctl . -$maker_dir/maker -fix_nucleotides -genome genome.uppercase.fa -cpus $threads -base $genome_tag +$maker_dir/maker -fix_nucleotides -genome $genome_tag.assembly.nuclear_genome.tidy.fa -cpus $threads -base $genome_tag # $maker_dir/fasta_merge -d $genome_tag.maker.output/${genome_tag}_master_datastore_index.log -o $genome_tag.nuclear_genome.maker.fasta $maker_dir/gff3_merge -d $genome_tag.maker.output/${genome_tag}_master_datastore_index.log -n -g -o $genome_tag.nuclear_genome.maker.raw.gff3 @@ -64,7 +64,7 @@ cat $genome_tag.nuclear_genome.maker.raw.protein_coding_gene.gff3 $genome_tag.nu mkdir $genome_tag.nuclear_genome.EVM.output cd $genome_tag.nuclear_genome.EVM.output $EVM_HOME/EvmUtils/partition_EVM_inputs.pl \ - --genome ./../genome.uppercase.fa \ + --genome ./../$genome_tag.assembly.nuclear_genome.tidy.fa \ --gene_predictions ./../$genome_tag.nuclear_genome.maker.combined.gff3 \ --protein_alignments ./../$genome_tag.nuclear_genome.protein_evidence.gff3 \ --transcript_alignments ./../$genome_tag.nuclear_genome.est_evidence.gff3 \ @@ -73,7 +73,7 @@ $EVM_HOME/EvmUtils/partition_EVM_inputs.pl \ --partition_listing $genome_tag.nuclear_genome.partitions_list.out $EVM_HOME/EvmUtils/write_EVM_commands.pl \ - --genome ./../genome.uppercase.fa \ + --genome ./../$genome_tag.assembly.nuclear_genome.tidy.fa \ --weights $EVM_weights \ --gene_predictions ./../$genome_tag.nuclear_genome.maker.combined.gff3 \ --output_file_name $genome_tag.nuclear_genome.evm.out \ @@ -87,40 +87,51 @@ $EVM_HOME/EvmUtils/recombine_EVM_partial_outputs.pl \ $EVM_HOME/EvmUtils/convert_EVM_outputs_to_GFF3.pl \ --partitions $genome_tag.nuclear_genome.partitions_list.out \ --output $genome_tag.nuclear_genome.evm.out \ - --genome ./../genome.uppercase.fa + --genome ./../$genome_tag.assembly.nuclear_genome.tidy.fa -perl $LRSDAY_HOME/scripts/collect_EVM_gff3.pl -p $genome_tag.nuclear_genome -r ./../genome.uppercase.fa +perl $LRSDAY_HOME/scripts/collect_EVM_gff3.pl -p $genome_tag.nuclear_genome -r ./../$genome_tag.assembly.nuclear_genome.tidy.fa cat $genome_tag.nuclear_genome.EVM.raw.gff3 ./../$genome_tag.nuclear_genome.maker.raw.tRNA.gff3 > $genome_tag.nuclear_genome.EVM.raw.with_tRNA.gff3 perl $LRSDAY_HOME/scripts/tidy_maker_gff3.pl \ -i $genome_tag.nuclear_genome.EVM.raw.with_tRNA.gff3 \ - -r ./../genome.uppercase.fa \ + -r ./../$genome_tag.assembly.nuclear_genome.tidy.fa \ -t $genome_tag \ -o $genome_tag.nuclear_genome.EVM.gff3 -cp $genome_tag.nuclear_genome.EVM.gff3 ./../$genome_tag.nuclear_genome.EVM.gff3 +cp $genome_tag.nuclear_genome.EVM.gff3 ./../$genome_tag.nuclear_genome.gff3 cd .. perl $LRSDAY_HOME/scripts/extract_cds_from_tidy_gff3.pl \ - -r $genome_assembly \ - -g $genome_tag.nuclear_genome.EVM.gff3 \ - -o $genome_tag.nuclear_genome.EVM.cds.fa + -r $genome_tag.assembly.nuclear_genome.tidy.fa \ + -g $genome_tag.nuclear_genome.gff3 \ + -o $genome_tag.nuclear_genome.cds.fa perl $LRSDAY_HOME/scripts/cds2protein.pl \ - -i $genome_tag.nuclear_genome.EVM.cds.fa \ - -p $genome_tag.nuclear_genome.EVM \ + -i $genome_tag.nuclear_genome.cds.fa \ + -p $genome_tag.nuclear_genome \ -t 1 -perl $LRSDAY_HOME/scripts/prepare_PoFFgff_simple.pl -i $genome_tag.nuclear_genome.EVM.gff3 -o $genome_tag.nuclear_genome.EVM.PoFF.gff -perl $LRSDAY_HOME/scripts/prepare_PoFFfaa_simple.pl -i $genome_tag.nuclear_genome.EVM.trimmed_cds.fa -o $genome_tag.nuclear_genome.EVM.PoFF.ffn -perl $LRSDAY_HOME/scripts/prepare_PoFFfaa_simple.pl -i $genome_tag.nuclear_genome.EVM.pep.fa -o $genome_tag.nuclear_genome.EVM.PoFF.faa # filtered out snoRNA annotation since it is still an experimental features suffering from redundant annotations -cp $genome_tag.nuclear_genome.EVM.gff3 $genome_tag.nuclear_genome.EVM.gff3.tmp -cat $genome_tag.nuclear_genome.EVM.gff3.tmp | egrep -v "snoRNA" > $genome_tag.nuclear_genome.EVM.gff3 +cp $genome_tag.nuclear_genome.gff3 $genome_tag.nuclear_genome.gff3.tmp +cat $genome_tag.nuclear_genome.gff3.tmp | egrep -v "snoRNA" > $genome_tag.nuclear_genome.snoRNA_filtered.gff3 +perl $LRSDAY_HOME/scripts/label_pseudogene_in_gff3.pl -i $genome_tag.nuclear_genome.snoRNA_filtered.gff3 -l $genome_tag.nuclear_genome.manual_check.list -o $genome_tag.nuclear_genome.gff3 + +perl $LRSDAY_HOME/scripts/extract_cds_from_tidy_gff3.pl \ + -r $genome_tag.assembly.nuclear_genome.tidy.fa \ + -g $genome_tag.nuclear_genome.gff3 \ + -o $genome_tag.nuclear_genome.cds.fa +perl $LRSDAY_HOME/scripts/cds2protein.pl \ + -i $genome_tag.nuclear_genome.cds.fa \ + -p $genome_tag.nuclear_genome \ + -t 1 + +perl $LRSDAY_HOME/scripts/prepare_PoFFgff_simple.pl -i $genome_tag.nuclear_genome.gff3 -o $genome_tag.nuclear_genome.PoFF.gff +perl $LRSDAY_HOME/scripts/prepare_PoFFfaa_simple.pl -i $genome_tag.nuclear_genome.trimmed_cds.fa -o $genome_tag.nuclear_genome.PoFF.ffn +perl $LRSDAY_HOME/scripts/prepare_PoFFfaa_simple.pl -i $genome_tag.nuclear_genome.pep.fa -o $genome_tag.nuclear_genome.PoFF.faa # clean up intermediate files if [[ $debug == "no" ]] then - rm genome.uppercase.fa + rm $genome_tag.assembly.nuclear_genome.fa rm $genome_tag.nuclear_genome.maker.raw.tRNA.gff3 rm $genome_tag.nuclear_genome.maker.raw.protein_coding_gene.gff3 rm $genome_tag.nuclear_genome.maker.raw.protein_coding_gene.single_exon_gene.gff3 @@ -129,9 +140,11 @@ then rm $genome_tag.nuclear_genome.est_evidence.for_gene_model_refinement.gff3 rm $genome_tag.nuclear_genome.protein_evidence.complementary_gene_model.gff3 rm $genome_tag.nuclear_genome.est_evidence.complementary_gene_model.gff3 - rm $genome_tag.nuclear_genome.EVM.gff3.tmp + rm $genome_tag.nuclear_genome.gff3.tmp rm $genome_tag.nuclear_genome.maker.combined.gff3 + rm $genome_tag.nuclear_genome.snoRNA_filtered.gff3 rm -rf _Inline + rm *.ctl fi ############################ diff --git a/pipelines/LRSDAY.10.Mitochondrial_Gene_Annotation.sh b/pipelines/LRSDAY.10.Mitochondrial_Gene_Annotation.sh index b37fec6..6e6be2e 100755 --- a/pipelines/LRSDAY.10.Mitochondrial_Gene_Annotation.sh +++ b/pipelines/LRSDAY.10.Mitochondrial_Gene_Annotation.sh @@ -18,8 +18,9 @@ export PATH="$flip_dir:$blast_dir:$muscle_dir:$umac_dir:$hmmer_dir:$erpin_dir:$t ####################################### # set project-specific variables -prefix="SK1" # The file name prefix for the processing sample. Default = "SK1" for the testing example. -genome="./../07.Supervised_Final_Assembly/$prefix.assembly.final.fa" # The file path of the input genome assembly. +prefix="CPG_1a" # The file name prefix (only allowing strings of alphabetical letters, numbers, and underscores) for the processing sample. Default = "CPG_1a" for the testing example. + +genome_assembly="./../07.Supervised_Final_Assembly/$prefix.assembly.final.fa" # The file path of the final input genome assembly. chrMT_tag="chrMT" # The sequence name for the mitochondrial genome in the input genome assembly, if there are multiple corresponding contigs/scaffolds, use a single ';' to separate them. e.g. "chrMT_1;chrMT_2". Default = "chrMT". genetic_code_table=3 # The NCBI genetic code table (https://www.ncbi.nlm.nih.gov/Taxonomy/Utils/wprintgc.cgi) for the annotated mitochondrial genome. Default = 3 (i.e. Yeast Mitochondria) debug="no" # Whehter to keep intermediate files for debugging. Use "yes" if prefer to keep intermediate files, otherwise use "no". Default = "no". @@ -27,32 +28,47 @@ debug="no" # Whehter to keep intermediate files for debugging. Use "yes" if pref ###################################### # process the pipeline + echo $chrMT_tag | sed -e "s/;/\n/g" > $prefix.assembly.chrMT.list -#$LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $genome -l $prefix.assembly.chrMT.list -m reverse -o $prefix.assembly.nuclear_genome.fa -$LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $genome -l $prefix.assembly.chrMT.list -m normal -o $prefix.assembly.mitochondrial_genome.fa +perl $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $genome_assembly -l $prefix.assembly.chrMT.list -m normal -o $prefix.assembly.mitochondrial_genome.fa -mkdir tmp +if [[ $(egrep -c "^>" "$prefix.assembly.mitochondrial_genome.fa") -eq 0 ]] +then + echo "No mitochondrial genome assembly was detected! Skip mitochondrial genome annotation!" +else + + perl $LRSDAY_HOME/scripts/tidy_fasta.pl -i $prefix.assembly.mitochondrial_genome.fa -o $prefix.assembly.mitochondrial_genome.tidy.fa -$mfannot_dir/mfannot \ - --genetic $genetic_code_table \ - --outputfile $prefix.mitochondrial_genome.mfannot.out \ - --logfile $prefix.mitochondrial_genome.mfannot.log \ - --T $(pwd)/tmp \ - $prefix.assembly.mitochondrial_genome.fa + mkdir tmp -perl $LRSDAY_HOME/scripts/mfannot2gff3.pl -i $prefix.mitochondrial_genome.mfannot.out -o $prefix.mitochondrial_genome.mfannot.gff3 -m lite -perl $LRSDAY_HOME/scripts/extract_cds_from_tidy_gff3.pl -r $prefix.assembly.mitochondrial_genome.fa -g $prefix.mitochondrial_genome.mfannot.gff3 -o $prefix.mitochondrial_genome.mfannot.cds.fa -perl $LRSDAY_HOME/scripts/cds2protein.pl -i $prefix.mitochondrial_genome.mfannot.cds.fa -t $genetic_code_table -p $prefix.mitochondrial_genome.mfannot + $mfannot_dir/mfannot \ + --genetic $genetic_code_table \ + --outputfile $prefix.mitochondrial_genome.mfannot.out.txt \ + --logfile $prefix.mitochondrial_genome.mfannot.log \ + --T $(pwd)/tmp \ + $prefix.assembly.mitochondrial_genome.tidy.fa -perl $LRSDAY_HOME/scripts/prepare_PoFFgff_simple.pl -i $prefix.mitochondrial_genome.mfannot.gff3 -o $prefix.mitochondrial_genome.mfannot.PoFF.gff -perl $LRSDAY_HOME/scripts/prepare_PoFFfaa_simple.pl -i $prefix.mitochondrial_genome.mfannot.trimmed_cds.fa -o $prefix.mitochondrial_genome.mfannot.PoFF.ffn -perl $LRSDAY_HOME/scripts/prepare_PoFFfaa_simple.pl -i $prefix.mitochondrial_genome.mfannot.pep.fa -o $prefix.mitochondrial_genome.mfannot.PoFF.faa + $trnascan_dir/tRNAscan-SE -D -g $trnascan_dir/../gcode.ystmito $prefix.assembly.mitochondrial_genome.tidy.fa -o $prefix.assembly.mitochondrial_genome.trnascan.out.txt -# clean up intermediate files -if [[ $debug == "no" ]] -then - rm -r tmp + + perl $LRSDAY_HOME/scripts/mfannot2gff3.pl -mfannot_out $prefix.mitochondrial_genome.mfannot.out.txt -trnascan_out $prefix.assembly.mitochondrial_genome.trnascan.out.txt -o $prefix.mitochondrial_genome.pre_sort.gff3 -m lite -t $prefix + perl $LRSDAY_HOME/scripts/sort_gff3.pl -i $prefix.mitochondrial_genome.pre_sort.gff3 -t $prefix -o $prefix.mitochondrial_genome.gff3 -r $prefix.assembly.mitochondrial_genome.tidy.fa + + perl $LRSDAY_HOME/scripts/extract_cds_from_tidy_gff3.pl -r $prefix.assembly.mitochondrial_genome.tidy.fa -g $prefix.mitochondrial_genome.gff3 -o $prefix.mitochondrial_genome.cds.fa + perl $LRSDAY_HOME/scripts/cds2protein.pl -i $prefix.mitochondrial_genome.cds.fa -t $genetic_code_table -p $prefix.mitochondrial_genome + + perl $LRSDAY_HOME/scripts/prepare_PoFFgff_simple.pl -i $prefix.mitochondrial_genome.gff3 -o $prefix.mitochondrial_genome.PoFF.gff + perl $LRSDAY_HOME/scripts/prepare_PoFFfaa_simple.pl -i $prefix.mitochondrial_genome.trimmed_cds.fa -o $prefix.mitochondrial_genome.PoFF.ffn + perl $LRSDAY_HOME/scripts/prepare_PoFFfaa_simple.pl -i $prefix.mitochondrial_genome.pep.fa -o $prefix.mitochondrial_genome.PoFF.faa + + # clean up intermediate files + if [[ $debug == "no" ]] + then + rm -r tmp + rm -r $prefix.mitochondrial_genome.pre_sort.gff3 + rm -r $prefix.assembly.mitochondrial_genome.fa + fi fi ############################ diff --git a/pipelines/LRSDAY.11.TE_Annotation.sh b/pipelines/LRSDAY.11.TE_Annotation.sh index 7613f5e..44c2731 100755 --- a/pipelines/LRSDAY.11.TE_Annotation.sh +++ b/pipelines/LRSDAY.11.TE_Annotation.sh @@ -6,24 +6,32 @@ source ./../../env.sh ####################################### # set project-specific variables -prefix="SK1" # The file name prefix for the processing sample. Default = "SK1" for the testing example. -genome="./../07.Supervised_Final_Assembly/$prefix.assembly.final.fa" # The file path of the input genome assembly. -threads=1 # The number of threads to use. Default = "1". +prefix="CPG_1a" # The file name prefix (only allowing strings of alphabetical letters, numbers, and underscores) for the processing sample. Default = "CPG_1a" for the testing example. +genome_assembly="./../07.Supervised_Final_Assembly/$prefix.assembly.final.fa" # The path of the final input genome assembly. +chrMT_tag="chrMT" # The sequence name for the mitochondrial genome in the final assembly. If there are multiple sequences, use a single ';' to separate them. e.g. "chrMT_part1;chrMT_part2". Default = "chrMT". +threads=8 # The number of threads to use. Default = "8". debug="no" # Whether to keep intermediate files for debugging. Use "yes" if prefer to keep intermediate files, otherwise use "no". Default = "no". ####################################### # process the pipeline -ln -s $genome genome.fa -$repeatmasker_dir/RepeatMasker -pa $threads -lib $LRSDAY_HOME/data/TY_lib.Yue_et_al_2017_NG.fa genome.fa -xsmall -gff -$reannotate_dir/REannotate_longname -g -f $LRSDAY_HOME/data/fuzzy_defragmentation.txt -k $clustalw_dir/clustalw2 -r 0.48764 -d 10000 -t genome.fa.out genome.fa +TE_lib="$LRSDAY_HOME/data/TE_lib.v20221221.tidy.fa" +TE_lib_LTRonly="$LRSDAY_HOME/data/TE_lib.v20221221.LTRonly.tidy.fa" + +echo $chrMT_tag | sed -e "s/;/\n/g" > $prefix.assembly.chrMT.list +perl $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $genome_assembly -l $prefix.assembly.chrMT.list -m reverse -o $prefix.assembly.nuclear_genome.fa +perl $LRSDAY_HOME/scripts/tidy_fasta.pl -i $prefix.assembly.nuclear_genome.fa -o $prefix.assembly.nuclear_genome.tidy.fa +ln -s $prefix.assembly.nuclear_genome.tidy.fa $prefix.genome.fa + +$repeatmasker_dir/RepeatMasker -pa $threads -lib $TE_lib $prefix.genome.fa -xsmall -gff +$reannotate_dir/REannotate_longname -g -f $LRSDAY_HOME/data/fuzzy_defragmentation.txt -k $clustalw_dir/clustalw2 -r 0.48764 -d 10000 -t $prefix.genome.fa.out $prefix.genome.fa mv REannotate_output ${prefix}_REannotate_out cd ${prefix}_REannotate_out perl $LRSDAY_HOME/scripts/parse_REannotate_gff.pl -o $prefix.REannotate.raw.gff mv $prefix.REannotate.raw.gff $prefix.REannotate.gff -perl $LRSDAY_HOME/scripts/parse_REannotate_out.pl -i genome.fa.REannotation -p $prefix.TY_REannotate -r ./../genome.fa +perl $LRSDAY_HOME/scripts/parse_REannotate_out.pl -i $prefix.genome.fa.REannotation -p $prefix.TY_REannotate -r ./../$prefix.genome.fa cat $prefix.TY_REannotate.complete.raw.fa |egrep ">" |egrep '(TY1|TY2)' |sed "s/>//g" >$prefix.TY_REannotate.complete.TY1TY2.raw.list perl $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $prefix.TY_REannotate.complete.raw.fa -l $prefix.TY_REannotate.complete.TY1TY2.raw.list -o $prefix.TY_REannotate.complete.TY1TY2.raw.fa @@ -31,12 +39,13 @@ perl $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $prefix.TY_REannotate.compl cat $prefix.TY_REannotate.truncated.raw.fa |egrep ">" |egrep '(TY1|TY2)' |sed "s/>//g" >$prefix.TY_REannotate.truncated.TY1TY2.raw.list perl $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $prefix.TY_REannotate.truncated.raw.fa -l $prefix.TY_REannotate.truncated.TY1TY2.raw.list -o $prefix.TY_REannotate.truncated.TY1TY2.raw.fa -for i in {3..5} +for i in TY3 TY4 TY5 TSU4 do - cat $prefix.TY_REannotate.complete.raw.fa |egrep ">" |egrep "TY${i}" |sed "s/>//g" >$prefix.TY_REannotate.complete.TY${i}.final.list - cat $prefix.TY_REannotate.truncated.raw.fa |egrep ">" |egrep "TY${i}" |sed "s/>//g" >$prefix.TY_REannotate.truncated.TY${i}.final.list + cat $prefix.TY_REannotate.complete.raw.fa |egrep ">" |egrep "$i" |sed "s/>//g" >$prefix.TY_REannotate.complete.$i.final.list + cat $prefix.TY_REannotate.truncated.raw.fa |egrep ">" |egrep "$i" |sed "s/>//g" >$prefix.TY_REannotate.truncated.$i.final.list done + TY2_query="$LRSDAY_HOME/data/TY2_specific_region.fa" @@ -74,25 +83,25 @@ else cat $prefix.TY_REannotate.truncated.TY2.list |sed "s/TY1/TY2/g" >$prefix.TY_REannotate.truncated.TY2.final.list fi -db="$LRSDAY_HOME/data/TY_lib.Yue_et_al_2017_NG.LTRonly.fa" +LTR_query="$prefix.TY_REannotate.soloLTR.raw.fa" +db=$TE_lib_LTRonly db_tag="soloLTR_db"; -if [ ! -s "$db" ] +if [ ! -s "$LTR_query" ] then - echo "$db is empty, skip .." + echo "$LTR_query is empty, skip .." touch $prefix.TY_soloLTR.refined.nr.gff else - LTR_query="$prefix.TY_REannotate.soloLTR.raw.fa" - $blast_dir/makeblastdb -in $db -dbtype nucl -title $db_tag -hash_index -out $db_tag - $blast_dir/blastn -task blastn -query $LTR_query -num_threads $threads -db $db_tag -outfmt 7 >$prefix.$db_tag.soloLTR.blastn.fmt7.out - perl $LRSDAY_HOME/scripts/trim_soloLTR_by_blast.pl -q $LTR_query -b $prefix.$db_tag.soloLTR.blastn.fmt7.out -p $prefix -i 70 -l 100 + $blast_dir/makeblastdb -in $db -dbtype nucl -title $db_tag -hash_index -out $db_tag + $blast_dir/blastn -task blastn -query $LTR_query -num_threads $threads -db $db_tag -outfmt 7 >$prefix.$db_tag.soloLTR.blastn.fmt7.out + perl $LRSDAY_HOME/scripts/trim_soloLTR_by_blast.pl -q $LTR_query -b $prefix.$db_tag.soloLTR.blastn.fmt7.out -p $prefix -i 75 -l 100 $bedtools_dir/bedtools sort -i $prefix.TY_REannotate.soloLTR.refined.gff > $prefix.TY_REannotate.soloLTR.refined.sorted.gff - perl $LRSDAY_HOME/scripts/rm_overlap_features_from_gff_simple.pl -r ./../genome.fa -i $prefix.TY_REannotate.soloLTR.refined.sorted.gff -o $prefix.TY_soloLTR.refined.nr.gff + perl $LRSDAY_HOME/scripts/rm_overlap_features_from_gff_simple.pl -r ./../$prefix.genome.fa -i $prefix.TY_REannotate.soloLTR.refined.sorted.gff -o $prefix.TY_soloLTR.refined.nr.gff fi -for i in {1..5} +for i in TY1 TY2 TY3 TY4 TY5 TSU4 do - perl $LRSDAY_HOME/scripts/TY_list2gff3.pl -i $prefix.TY_REannotate.complete.TY${i}.final.list -o $prefix.TY_REannotate.complete.TY${i}.final.gff -t $prefix - perl $LRSDAY_HOME/scripts/TY_list2gff3.pl -i $prefix.TY_REannotate.truncated.TY${i}.final.list -o $prefix.TY_REannotate.truncated.TY${i}.final.gff -t $prefix + perl $LRSDAY_HOME/scripts/TY_list2gff3.pl -i $prefix.TY_REannotate.complete.$i.final.list -o $prefix.TY_REannotate.complete.$i.final.gff -t $prefix + perl $LRSDAY_HOME/scripts/TY_list2gff3.pl -i $prefix.TY_REannotate.truncated.$i.final.list -o $prefix.TY_REannotate.truncated.$i.final.gff -t $prefix done cat $prefix.TY_REannotate.*.final.gff > $prefix.TY.complete_plus_truncated.final.gff @@ -102,17 +111,22 @@ $bedtools_dir/bedtools intersect -v -a $prefix.TY_soloLTR.refined.nr.gff -b $pre cat $prefix.TY.complete_plus_truncated.final.gff $prefix.TY.soloLTR.final.gff > $prefix.TY.all.final.gff -perl $LRSDAY_HOME/scripts/tidy_maker_gff3.pl -r ./../genome.fa -i $prefix.TY.all.final.gff -o $prefix.TE.gff3 -t $prefix +#perl $LRSDAY_HOME/scripts/tidy_maker_gff3.pl -r ./../$prefix.genome.fa -i $prefix.TY.all.final.gff -o $prefix.TE.gff3 -t $prefix +perl $LRSDAY_HOME/scripts/tidy_TE_gff3.pl -r ./../$prefix.genome.fa -i $prefix.TY.all.final.gff -o ./../$prefix.nuclear_genome.TE.gff3 -t $prefix + + +if [[ $debug == "no" ]] +then + rm $prefix.*.final.gff +fi -cp $prefix.TE.gff3 ./../ -cp $prefix.REannotate.gff ./../ -rm $prefix.*.final.gff cd .. # clean up intermediate files if [[ $debug == "no" ]] then - rm genome.fa* + rm $prefix.assembly.nuclear_genome* + rm $prefix.genome.fa* fi ############################ diff --git a/pipelines/LRSDAY.12.Core_X_Element_Annotation.sh b/pipelines/LRSDAY.12.Core_X_Element_Annotation.sh index 5c4f6f6..15c64b4 100755 --- a/pipelines/LRSDAY.12.Core_X_Element_Annotation.sh +++ b/pipelines/LRSDAY.12.Core_X_Element_Annotation.sh @@ -6,25 +6,34 @@ source ./../../env.sh ####################################### # set project-specific variables -prefix="SK1" # The file name prefix for the processing sample. Default = "SK1" for the testing example. -genome="./../07.Supervised_Final_Assembly/$prefix.assembly.final.fa" # The file path of the input genome assembly. +prefix="CPG_1a" # The file name prefix (only allowing strings of alphabetical letters, numbers, and underscores) for the processing sample. Default = "CPG_1a" for the testing example. +genome_assembly="./../07.Supervised_Final_Assembly/$prefix.assembly.final.fa" # The file path of the final input genome assembly. +chrMT_tag="chrMT" # The sequence name for the mitochondrial genome in the final assembly. If there are multiple sequences, use a single ';' to separate them. e.g. "chrMT_part1;chrMT_part2". Default = "chrMT". debug="no" # Whether to keep intermediate files for debugging. Use "yes" if prefer to keep intermediate files, otherwise use "no". Default = "no". ####################################### # process the pipeline feature_type="X_element" length_cutoff_for_completeness=300 -$hmmer_dir/nhmmer -E 1 --tblout $prefix.$feature_type.nhmmer.out $LRSDAY_HOME/data/S288C.$feature_type.hmm $genome -perl $LRSDAY_HOME/scripts/nhmer2seq.pl -r $genome -i $prefix.$feature_type.nhmmer.out -e 0.0001 -p $prefix -ft $feature_type -l $length_cutoff_for_completeness -perl $LRSDAY_HOME/scripts/tidy_maker_gff3.pl -i $prefix.$feature_type.raw.gff3 -r $genome -o $prefix.$feature_type.gff3 -t $prefix -perl $LRSDAY_HOME/scripts/gff2seq_simple.pl -r $genome -g $prefix.$feature_type.gff3 -o $prefix.$feature_type.fa -$muscle_dir/muscle -in $prefix.$feature_type.fa -out $prefix.$feature_type.aln.fa + +echo $chrMT_tag | sed -e "s/;/\n/g" > $prefix.assembly.chrMT.list +perl $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $genome_assembly -l $prefix.assembly.chrMT.list -m reverse -o $prefix.assembly.nuclear_genome.fa +perl $LRSDAY_HOME/scripts/tidy_fasta.pl -i $prefix.assembly.nuclear_genome.fa -o $prefix.assembly.nuclear_genome.tidy.fa + + +$hmmer_dir/nhmmer -E 1 --tblout $prefix.$feature_type.nhmmer.out $LRSDAY_HOME/data/S288C.$feature_type.hmm $prefix.assembly.nuclear_genome.tidy.fa +perl $LRSDAY_HOME/scripts/nhmer2seq.pl -r $prefix.assembly.nuclear_genome.tidy.fa -i $prefix.$feature_type.nhmmer.out -e 0.0001 -p $prefix -ft $feature_type -l $length_cutoff_for_completeness +perl $LRSDAY_HOME/scripts/tidy_maker_gff3.pl -i $prefix.$feature_type.raw.gff3 -r $prefix.assembly.nuclear_genome.tidy.fa -o $prefix.nuclear_genome.$feature_type.gff3 -t $prefix +perl $LRSDAY_HOME/scripts/gff2seq_simple.pl -r $prefix.assembly.nuclear_genome.tidy.fa -g $prefix.nuclear_genome.$feature_type.gff3 -o $prefix.nuclear_genome.$feature_type.fa +$muscle_dir/muscle -in $prefix.nuclear_genome.$feature_type.fa -out $prefix.nuclear_genome.$feature_type.aln.fa # clean up intermediate files if [[ $debug == "no" ]] then rm $prefix.$feature_type.raw.gff3 rm $prefix.$feature_type.raw.fa + rm $prefix.assembly.nuclear_genome.fa + rm $prefix.assembly.nuclear_genome.tidy.fa fi ############################ diff --git a/pipelines/LRSDAY.13.Y_Prime_Element_Annotation.sh b/pipelines/LRSDAY.13.Y_Prime_Element_Annotation.sh index 52fcfd5..3c5b590 100755 --- a/pipelines/LRSDAY.13.Y_Prime_Element_Annotation.sh +++ b/pipelines/LRSDAY.13.Y_Prime_Element_Annotation.sh @@ -6,8 +6,9 @@ source ./../../env.sh ####################################### # set project-specific variables -prefix="SK1" # The file name prefix for the processing sample. Default = "SK1" for the testing example. -genome="./../07.Supervised_Final_Assembly/$prefix.assembly.final.fa" # The file path of the input genome assembly. +prefix="CPG_1a" # The file name prefix (only allowing strings of alphabetical letters, numbers, and underscores) for the processing sample. Default = "CPG_1a" for the testing example. +genome_assembly="./../07.Supervised_Final_Assembly/$prefix.assembly.final.fa" # The file path of the final input genome assembly. +chrMT_tag="chrMT" # The sequence name for the mitochondrial genome in the final assembly. If there are multiple sequences, use a single ';' to separate them. e.g. "chrMT_part1;chrMT_part2". Default = "chrMT". debug="no" # Whether to keep intermediate files for debugging. Use "yes" if prefer to keep intermediate files, otherwise use "no". Default = "no". ####################################### @@ -16,13 +17,17 @@ feature_type="Y_prime_element" query="$LRSDAY_HOME/data/query.Y_prime_element.long.fa" length_cutoff_for_completeness=3500 -$ucsc_dir/blat -maxIntron=1000 $genome $query $prefix.$feature_type.blat.psl +echo $chrMT_tag | sed -e "s/;/\n/g" > $prefix.assembly.chrMT.list +perl $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $genome_assembly -l $prefix.assembly.chrMT.list -m reverse -o $prefix.assembly.nuclear_genome.fa +perl $LRSDAY_HOME/scripts/tidy_fasta.pl -i $prefix.assembly.nuclear_genome.fa -o $prefix.assembly.nuclear_genome.tidy.fa + +$ucsc_dir/blat -maxIntron=1000 $prefix.assembly.nuclear_genome.tidy.fa $query $prefix.$feature_type.blat.psl $ucsc_dir/pslCDnaFilter -minId=0.9 -minAlnSize=1000 -bestOverlap -filterWeirdOverlapped $prefix.$feature_type.blat.psl $prefix.$feature_type.blat.filtered.psl $ucsc_dir/pslScore $prefix.$feature_type.blat.filtered.psl | sort -nk5 -r > $prefix.$feature_type.blat.filtered.pslScore.out -perl $LRSDAY_HOME/scripts/psl2gff3.pl -i $prefix.$feature_type.blat.filtered.psl -o $prefix.$feature_type.raw.gff3 -ft $feature_type -t $prefix -r $genome -l $length_cutoff_for_completeness -perl $LRSDAY_HOME/scripts/tidy_maker_gff3.pl -i $prefix.$feature_type.raw.gff3 -r $genome -o $prefix.$feature_type.gff3 -t $prefix -perl $LRSDAY_HOME/scripts/gff2seq_simple.pl -r $genome -g $prefix.$feature_type.gff3 -o $prefix.$feature_type.fa -$muscle_dir/muscle -in $prefix.$feature_type.fa -out $prefix.$feature_type.aln.fa +perl $LRSDAY_HOME/scripts/psl2gff3.pl -i $prefix.$feature_type.blat.filtered.psl -o $prefix.$feature_type.raw.gff3 -ft $feature_type -t $prefix -r $prefix.assembly.nuclear_genome.tidy.fa -l $length_cutoff_for_completeness +perl $LRSDAY_HOME/scripts/tidy_maker_gff3.pl -i $prefix.$feature_type.raw.gff3 -r $prefix.assembly.nuclear_genome.tidy.fa -o $prefix.nuclear_genome.$feature_type.gff3 -t $prefix +perl $LRSDAY_HOME/scripts/gff2seq_simple.pl -r $prefix.assembly.nuclear_genome.tidy.fa -g $prefix.nuclear_genome.$feature_type.gff3 -o $prefix.nuclear_genome.$feature_type.fa +$muscle_dir/muscle -in $prefix.nuclear_genome.$feature_type.fa -out $prefix.nuclear_genome.$feature_type.aln.fa # clean up intermediate files if [[ $debug == "no" ]] @@ -31,6 +36,8 @@ then rm $prefix.Y_prime_element.blat.psl rm $prefix.Y_prime_element.blat.filtered.psl rm $prefix.Y_prime_element.blat.filtered.pslScore.out + rm $prefix.assembly.nuclear_genome.fa + rm $prefix.assembly.nuclear_genome.tidy.fa fi diff --git a/pipelines/LRSDAY.14.Gene_Orthology_Identification.sh b/pipelines/LRSDAY.14.Gene_Orthology_Identification.sh index 2fc5a3d..0fe8c04 100755 --- a/pipelines/LRSDAY.14.Gene_Orthology_Identification.sh +++ b/pipelines/LRSDAY.14.Gene_Orthology_Identification.sh @@ -6,16 +6,17 @@ source ./../../env.sh ####################################### # set project-specific variables -prefix="SK1" # The file name prefix for the processing sample. Default = "SK1" for the testing example. -threads=1 # The number of threads to use. Default = "1". +prefix="CPG_1a" # The file name prefix (only allowing strings of alphabetical letters, numbers, and underscores) for the processing sample. Default = "CPG_1a" for the testing example. -input_nuclear_gene_gff="./../09.Nuclear_Gene_Annotation/$prefix.nuclear_genome.EVM.gff3" # The file path of the input nuclear gene gff3 file generated in the task 09.Nuclear_Gene_Annotation. Set this variable as well as the following two variables to "" if you want to skip this step for the nuclear gene annotation. -query_nuclear_gene_PoFF_faa="./../09.Nuclear_Gene_Annotation/$prefix.nuclear_genome.EVM.PoFF.faa" # The file path of the PoFF.faa file generated in the task 09.Nuclear_Gene_Annotation. -query_nuclear_gene_PoFF_gff="./../09.Nuclear_Gene_Annotation/$prefix.nuclear_genome.EVM.PoFF.gff" # The file path of the PoFF.gff file generated in the task 09.Nuclear_Gene_Annotation. +threads=8 # The number of threads to use. Default = "8". -input_mitochondrial_gene_gff="./../10.Mitochondrial_Gene_Annotation/$prefix.mitochondrial_genome.mfannot.gff3" # The file path of the input mitochondrial gene gff3 file generated in the task 10.Mitochondrial_Gene_Annotation. Set this variable as well as the following two variables to "" if you want to skip this step for the mitochondrial gene annotation. -query_mitochondrial_gene_PoFF_faa="./../10.Mitochondrial_Gene_Annotation/$prefix.mitochondrial_genome.mfannot.PoFF.faa" # The file path of the PoFF.faa file generated in the task 10.Mitochondrial_Gene_Annotation. -query_mitochondrial_gene_PoFF_gff="./../10.Mitochondrial_Gene_Annotation/$prefix.mitochondrial_genome.mfannot.PoFF.gff" # The file path of the PoFF.gff file generated in the task 10.Mitochondrial_Gene_Annotation. +input_nuclear_genome_gff="./../09.Nuclear_Gene_Annotation/$prefix.nuclear_genome.gff3" # The file path of the input nuclear gene gff3 file generated in the task 09.Nuclear_Gene_Annotation. Set this variable as well as the following two variables to "" if you want to skip this step for the nuclear gene annotation. +query_nuclear_genome_PoFF_faa="./../09.Nuclear_Gene_Annotation/$prefix.nuclear_genome.PoFF.faa" # The file path of the PoFF.faa file generated in the task 09.Nuclear_Gene_Annotation.Po +query_nuclear_genome_PoFF_gff="./../09.Nuclear_Gene_Annotation/$prefix.nuclear_genome.PoFF.gff" # The file path of the PoFF.gff file generated in the task 09.Nuclear_Gene_Annotation. + +input_mitochondrial_genome_gff="./../10.Mitochondrial_Gene_Annotation/$prefix.mitochondrial_genome.gff3" # The file path of the input mitochondrial gene gff3 file generated in the task 10.Mitochondrial_Gene_Annotation. Set this variable as well as the following two variables to "" if you want to skip this step for the mitochondrial gene annotation. +query_mitochondrial_genome_PoFF_faa="./../10.Mitochondrial_Gene_Annotation/$prefix.mitochondrial_genome.PoFF.faa" # The file path of the PoFF.faa file generated in the task 10.Mitochondrial_Gene_Annotation. +query_mitochondrial_genome_PoFF_gff="./../10.Mitochondrial_Gene_Annotation/$prefix.mitochondrial_genome.PoFF.gff" # The file path of the PoFF.gff file generated in the task 10.Mitochondrial_Gene_Annotation. ref_PoFF_faa="$LRSDAY_HOME/data/SGDref.PoFF.faa" # The file path of the reference proteome file in FASTA format: for S. cerevisiae and its close relatives, you can directly use the pre-shipped file: SGDref.PoFF.faa; if you work with other organisms, you can check ProteinOrtho's manual for details on how to prepare such file. ref_PoFF_gff="$LRSDAY_HOME/data/SGDref.PoFF.gff" # The path of the reference gene GFF file in GFF format: for S. cerevisiae and its close relatives, you can directly use the pre-shipped file: SGDref.PoFF.gff; if you work with other organisms, you can check ProteinOrtho's manual for details on how to prepare such file. @@ -41,46 +42,45 @@ cp $ref_PoFF_faa ref.PoFF.faa cp $ref_PoFF_gff ref.PoFF.gff # process nuclear gene annotation -if [[ ! -z $input_nuclear_gene_gff ]] +if [[ ! -z $input_nuclear_genome_gff ]] then - echo "The variable input_nuclear_gene_gff has been specified, so expecting input files specified for query_nuclear_gene_PoFF_faa and query_nuclear_gene_PoFF_gff" - test_file_existence $query_nuclear_gene_PoFF_faa - test_file_existence $query_nuclear_gene_PoFF_gff - cp $query_nuclear_gene_PoFF_faa query.nuclear_gene.PoFF.faa - cp $query_nuclear_gene_PoFF_gff query.nuclear_gene.PoFF.gff - output_nuclear_gene_gff="$prefix.nuclear_gene.orthology_map.gff3" - proteinortho_nuclear_gene_input="query.nuclear_gene.PoFF.faa ref.PoFF.faa" - perl $proteinortho_dir/proteinortho5.pl -cpus=$threads -blastpath=$blast_dir -singles -synteny -project="$prefix.nuclear_gene" $proteinortho_nuclear_gene_input - perl $LRSDAY_HOME/scripts/update_gff3_by_proteinortho.pl -i $input_nuclear_gene_gff -x $prefix.nuclear_gene.poff -r ref.PoFF.faa -q query.nuclear_gene.PoFF.faa -o $prefix.nuclear_gene.updated.gff3 + echo "The variable input_nuclear_genome_gff has been specified, so expecting input files specified for query_nuclear_genome_PoFF_faa and query_nuclear_genome_PoFF_gff" + test_file_existence $query_nuclear_genome_PoFF_faa + test_file_existence $query_nuclear_genome_PoFF_gff + cp $query_nuclear_genome_PoFF_faa query.nuclear_genome.PoFF.faa + cp $query_nuclear_genome_PoFF_gff query.nuclear_genome.PoFF.gff + proteinortho_nuclear_genome_input="query.nuclear_genome.PoFF.faa ref.PoFF.faa" + $proteinortho_dir/proteinortho -cpus=$threads -p=blastp -binpath=$blast_dir -singles -synteny -project="$prefix.nuclear_genome" $proteinortho_nuclear_genome_input + perl $LRSDAY_HOME/scripts/update_gff3_by_proteinortho.pl -i $input_nuclear_genome_gff -x $prefix.nuclear_genome.proteinortho.tsv -r ref.PoFF.faa -q query.nuclear_genome.PoFF.faa -o $prefix.nuclear_genome.SGD_orthology_mapped.gff3 + if [[ $debug == "no" ]] then - rm $prefix.nuclear_gene.ffadj-graph - rm $prefix.nuclear_gene.blast-graph - rm $prefix.nuclear_gene.proteinortho-graph - rm $prefix.nuclear_gene.poff-graph + rm $prefix.nuclear_genome.ffadj-graph + rm $prefix.nuclear_genome.blast-graph + rm $prefix.nuclear_genome.proteinortho-graph + rm $prefix.nuclear_genome.poff-graph fi fi # process mitochondrial gene annotation -if [[ ! -z $input_mitochondrial_gene_gff ]] +if [[ ! -z $input_mitochondrial_genome_gff ]] then - echo "The variable input_mitochondrial_gene_gff has been specified, so expecting input files specified for query_mitochondrial_gene_PoFF_faa and query_mitochondrial_gene_PoFF_gff" - test_file_existence $query_mitochondrial_gene_PoFF_faa - test_file_existence $query_mitochondrial_gene_PoFF_gff - cp $query_mitochondrial_gene_PoFF_faa query.mitochondrial_gene.PoFF.faa - cp $query_mitochondrial_gene_PoFF_gff query.mitochondrial_gene.PoFF.gff - output_mitochondrial_gene_gff="$prefix.mitochondrial_gene.orthology_map.gff3" - proteinortho_mitochondrial_gene_input="query.mitochondrial_gene.PoFF.faa ref.PoFF.faa" - perl $proteinortho_dir/proteinortho5.pl -cpus=$threads -blastpath=$blast_dir -singles -synteny -project="$prefix.mitochondrial_gene" $proteinortho_mitochondrial_gene_input - perl $LRSDAY_HOME/scripts/update_gff3_by_proteinortho.pl -i $input_mitochondrial_gene_gff -x $prefix.mitochondrial_gene.poff -r ref.PoFF.faa -q query.mitochondrial_gene.PoFF.faa -o $prefix.mitochondrial_gene.updated.gff3 + echo "The variable input_mitochondrial_genome_gff has been specified, so expecting input files specified for query_mitochondrial_genome_PoFF_faa and query_mitochondrial_genome_PoFF_gff" + test_file_existence $query_mitochondrial_genome_PoFF_faa + test_file_existence $query_mitochondrial_genome_PoFF_gff + cp $query_mitochondrial_genome_PoFF_faa query.mitochondrial_genome.PoFF.faa + cp $query_mitochondrial_genome_PoFF_gff query.mitochondrial_genome.PoFF.gff + proteinortho_mitochondrial_genome_input="query.mitochondrial_genome.PoFF.faa ref.PoFF.faa" + perl $proteinortho_dir/proteinortho -cpus=$threads -p=blastp -binpath=$blast_dir -singles -synteny -project="$prefix.mitochondrial_genome" $proteinortho_mitochondrial_genome_input + perl $LRSDAY_HOME/scripts/update_gff3_by_proteinortho.pl -i $input_mitochondrial_genome_gff -x $prefix.mitochondrial_genome.proteinortho.tsv -r ref.PoFF.faa -q query.mitochondrial_genome.PoFF.faa -o $prefix.mitochondrial_genome.SGD_orthology_mapped.gff3 if [[ $debug == "no" ]] then - rm $prefix.mitochondrial_gene.ffadj-graph - rm $prefix.mitochondrial_gene.blast-graph - rm $prefix.mitochondrial_gene.proteinortho-graph - rm $prefix.mitochondrial_gene.poff-graph + rm $prefix.mitochondrial_genome.ffadj-graph + rm $prefix.mitochondrial_genome.blast-graph + rm $prefix.mitochondrial_genome.proteinortho-graph + rm $prefix.mitochondrial_genome.poff-graph fi fi @@ -90,6 +90,7 @@ if [[ $debug == "no" ]] then rm query.* rm ref.* + rm proteinortho_cache_${prefix}.log fi ############################ diff --git a/pipelines/LRSDAY.15.Annotation_Integration.sh b/pipelines/LRSDAY.15.Annotation_Integration.sh index 306f7e8..695d896 100755 --- a/pipelines/LRSDAY.15.Annotation_Integration.sh +++ b/pipelines/LRSDAY.15.Annotation_Integration.sh @@ -6,14 +6,15 @@ source ./../../env.sh ####################################### # set project-specific variables -prefix="SK1" # The file name prefix for the processing sample. Default = "SK1" for the testing example. -genome="./../07.Supervised_Final_Assembly/$prefix.assembly.final.fa" # The file path of the input genome assembly. -centromere_gff3="./../08.Centromere_Annotation/$prefix.centromere.gff3" # The path of the final centromere annotation gff3 generated by task 08.Centromere_Annotation_for_FinalAssembly, use "" if not existing. -TE_gff3="./../11.TE_Annotation/$prefix.TE.gff3" # The file path of the TE annotation gff3 generated by task 11.TE_Annotation, use "" if not existing. -X_element_gff3="./../12.Core_X_Element_Annotation/$prefix.X_element.gff3" # The file path of the X_element annotation gff3 generated by task 12.CoreX_Annotation, use "" if not existing. -Y_prime_element_gff3="./../13.Y_Prime_Element_Annotation/$prefix.Y_prime_element.gff3" # The file path of the Y_prime_element annotation gff3 generated by task 13.Yprime_Annotation, use "" if not existing. -nuclear_gene_gff3="./../14.Gene_Orthology_Identification/$prefix.nuclear_gene.updated.gff3" # The file path of the nuclear gene annotation gff3 generated by task 14.GeneOrthology_Identification (which is better) or 09.Nuclear_Gene_Annotation, use "" if not existing. -mitochondrial_gene_gff3="./../14.Gene_Orthology_Identification/$prefix.mitochondrial_gene.updated.gff3" # The file path of the mitochondrial gene annotation gff3 generated by task 14.GeneOrthology_Identification (which is better) or 10.Mitochondrial_Gene_Annotation, use "" if not existing. +prefix="CPG_1a" # The file name prefix (only allowing strings of alphabetical letters, numbers, and underscores) for the processing sample. Default = "CPG_1a" for the testing example. + +genome_assembly="./../07.Supervised_Final_Assembly/$prefix.assembly.final.fa" # The file path of the final input genome assembly. +centromere_gff3="./../08.Centromere_Annotation/$prefix.nuclear_genome.centromere.gff3" # The path of the final centromere annotation gff3 generated by task 08.Centromere_Annotation_for_FinalAssembly, use "" if not existing. +TE_gff3="./../11.TE_Annotation/$prefix.nuclear_genome.TE.gff3" # The file path of the TE annotation gff3 generated by task 11.TE_Annotation, use "" if not existing. +X_element_gff3="./../12.Core_X_Element_Annotation/$prefix.nuclear_genome.X_element.gff3" # The file path of the X_element annotation gff3 generated by task 12.CoreX_Annotation, use "" if not existing. +Y_prime_element_gff3="./../13.Y_Prime_Element_Annotation/$prefix.nuclear_genome.Y_prime_element.gff3" # The file path of the Y_prime_element annotation gff3 generated by task 13.Yprime_Annotation, use "" if not existing. +nuclear_gene_gff3="./../14.Gene_Orthology_Identification/$prefix.nuclear_genome.SGD_orthology_mapped.gff3" # The file path of the nuclear gene annotation gff3 generated by task 14.GeneOrthology_Identification (which is better) or 09.Nuclear_Gene_Annotation, use "" if not existing. +mitochondrial_gene_gff3="./../14.Gene_Orthology_Identification/$prefix.mitochondrial_genome.SGD_orthology_mapped.gff3" # The file path of the mitochondrial gene annotation gff3 generated by task 14.GeneOrthology_Identification (which is better) or 10.Mitochondrial_Gene_Annotation, use "" if not existing. chrMT_tag="chrMT" # The sequence name for the mitochondrial genome in the input genome assembly, if there are multiple corresponding contigs/scaffolds, use a single ';' to separate them. e.g. "chrMT_1;chrMT_2". Default = "chrMT". chrMT_genetic_code_table=3 # The NCBI genetic code table (https://www.ncbi.nlm.nih.gov/Taxonomy/Utils/wprintgc.cgi) for the annotated mitochondrial genome. Default = 3 (i.e. Yeast Mitochondria) @@ -21,38 +22,52 @@ debug="no" # use "yes" if prefer to keep intermediate files, otherwise use "no". ###################################### # process the pipeline -cat $centromere_gff3 $TE_gff3 $X_element_gff3 $Y_prime_element_gff3 $nuclear_gene_gff3 $mitochondrial_gene_gff3 >$prefix.concatenated.gff3 -perl $LRSDAY_HOME/scripts/sort_gff3.pl -i $prefix.concatenated.gff3 -t $prefix -o $prefix.final.gff3 -r $genome -perl $LRSDAY_HOME/scripts/extract_cds_from_tidy_gff3.pl -r $genome -g $prefix.final.gff3 -o $prefix.final.cds.fa -cp $genome $prefix.assembly.final.fa echo $chrMT_tag | sed -e "s/;/\n/g" > $prefix.assembly.chrMT.list -$LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $genome -l $prefix.assembly.chrMT.list -m reverse -o $prefix.assembly.nuclear_genome.fa -$LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $genome -l $prefix.assembly.chrMT.list -m normal -o $prefix.assembly.mitochondrial_genome.fa +perl $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $genome_assembly -l $prefix.assembly.chrMT.list -m reverse -o $prefix.nuclear_genome.fa +perl $LRSDAY_HOME/scripts/select_fasta_by_list.pl -i $genome_assembly -l $prefix.assembly.chrMT.list -m normal -o $prefix.mitochondrial_genome.fa + +perl $LRSDAY_HOME/scripts/tidy_fasta.pl -i $prefix.nuclear_genome.fa -o $prefix.nuclear_genome.tidy.fa + +cat $centromere_gff3 $TE_gff3 $X_element_gff3 $Y_prime_element_gff3 $nuclear_gene_gff3 >$prefix.nuclear_genome.concatenated.gff3 +perl $LRSDAY_HOME/scripts/sort_gff3.pl -i $prefix.nuclear_genome.concatenated.gff3 -t $prefix -o $prefix.nuclear_genome.tidy.gff3 -r $prefix.nuclear_genome.tidy.fa if [[ ! -z $nuclear_gene_gff3 ]] then - perl $LRSDAY_HOME/scripts/extract_cds_from_tidy_gff3.pl -r $prefix.assembly.nuclear_genome.fa -g $prefix.final.gff3 -o $prefix.nuclear_genome.cds.fa - perl $LRSDAY_HOME/scripts/cds2protein.pl -i $prefix.nuclear_genome.cds.fa -p $prefix.nuclear_genome -t 1 + perl $LRSDAY_HOME/scripts/extract_cds_from_tidy_gff3.pl -r $prefix.nuclear_genome.tidy.fa -g $prefix.nuclear_genome.tidy.gff3 -o $prefix.nuclear_genome.tidy.cds.fa + perl $LRSDAY_HOME/scripts/cds2protein.pl -i $prefix.nuclear_genome.tidy.cds.fa -p $prefix.nuclear_genome.tidy -t 1 fi -if [[ ! -z $mitochondrial_gene_gff3 ]] +if [[ $(egrep -c "^>" "$prefix.mitochondrial_genome.fa") -eq 0 ]] then - perl $LRSDAY_HOME/scripts/extract_cds_from_tidy_gff3.pl -r $prefix.assembly.mitochondrial_genome.fa -g $prefix.final.gff3 -o $prefix.mitochondrial_genome.cds.fa - perl $LRSDAY_HOME/scripts/cds2protein.pl -i $prefix.mitochondrial_genome.cds.fa -p $prefix.mitochondrial_genome -t $chrMT_genetic_code_table -fi + echo "No mitochondrial genome assembly was detected! Skip final annotation aggregation for the mitochondrial genome!" +else + perl $LRSDAY_HOME/scripts/tidy_fasta.pl -i $prefix.mitochondrial_genome.fa -o $prefix.mitochondrial_genome.tidy.fa + cp $mitochondrial_gene_gff3 $prefix.mitochondrial_genome.tidy.gff3 + if [[ ! -z $mitochondrial_gene_gff3 ]] + then + perl $LRSDAY_HOME/scripts/extract_cds_from_tidy_gff3.pl -r $prefix.mitochondrial_genome.tidy.fa -g $prefix.mitochondrial_genome.tidy.gff3 -o $prefix.mitochondrial_genome.tidy.cds.fa + perl $LRSDAY_HOME/scripts/cds2protein.pl -i $prefix.mitochondrial_genome.tidy.cds.fa -p $prefix.mitochondrial_genome.tidy -t $chrMT_genetic_code_table + fi -if [[ ! -z $nuclear_gene_gff3 && ! -z $mitochondrial_gene_gff3 ]] -then - cat $prefix.nuclear_genome.trimmed_cds.fa $prefix.mitochondrial_genome.trimmed_cds.fa > $prefix.final.trimmed_cds.fa - cat $prefix.nuclear_genome.pep.fa $prefix.mitochondrial_genome.pep.fa >$prefix.final.pep.fa - cat $prefix.nuclear_genome.manual_check.list $prefix.mitochondrial_genome.manual_check.list > $prefix.final.manual_check.list fi + + # clean up intermediate files if [[ $debug == "no" ]] then - rm $prefix.concatenated.gff3 + rm $prefix.nuclear_genome.concatenated.gff3 + + if [[ -e $prefix.nuclear_genome.fa ]] + then + rm $prefix.nuclear_genome.fa + fi + + if [[ -e $prefix.mitochondrial_genome.fa ]] + then + rm $prefix.mitochondrial_genome.fa + fi fi ############################ diff --git a/prerequisite.txt b/prerequisite.txt index 85a0240..044f5b0 100644 --- a/prerequisite.txt +++ b/prerequisite.txt @@ -3,7 +3,7 @@ ####################################################### # Hardware, operating system and network requirements ####################################################### -This protocol is designed for a desktop or computing server running an x86-64-bit Linux operating system. Multithreaded processors are preferred to speed up the process since many steps can be configured to use multiple threads in parallel. For assembling and analyzing the budding yeast genomes (genome size = ~12.5 Mb), at least 16 Gb of RAM and 100 Gb of free disk space are reccomended. When adapted for other eukaryotic organisms with larger genome sizes, the RAM and disk space consumption will scale up, majorly during de novo genome assembly (performed by Canu). Plese refer to Canu’s manual (http://canu.readthedocs.io/en/latest/) for suggested RAM and disk space consumption for assembling large genomes. Stable Internet connection is required for the installation and configuration of LRSDAY as well as for retrieving the testing data. +This protocol is designed for a desktop or computing server running an x86-64-bit Linux operating system. Multithreaded processors are preferred to speed up the process since many steps can be configured to use multiple threads in parallel. For assembling and analyzing the budding yeast genomes (genome size = ~12.5 Mb), at least 16 Gb of RAM and 100 Gb of free disk space are reccomended. More disk space is needed if you want to use LRSDAY to do Nanopore basecalling. When adapted for other eukaryotic organisms with larger genome sizes, the RAM and disk space consumption will scale up, majorly during de novo genome assembly (performed by Canu). Plese refer to Canu’s manual (http://canu.readthedocs.io/en/latest/) for suggested RAM and disk space consumption for assembling large genomes. Stable Internet connection is required for the installation and configuration of LRSDAY as well as for retrieving the testing data. ######################## # Software requirements @@ -20,7 +20,7 @@ This protocol is designed for a desktop or computing server running an x86-64-bi ● perl v5.12 or newer (https://www.perl.org/) ● python v2.7.9 or newer (https://www.python.org/) ● python-devel -● python v3.4 or newer (https://www.python.org/) +● python v3.7 or newer (https://www.python.org/) ● python3-devel ● tar (https://www.gnu.org/software/tar/) ● unzip (http://infozip.sourceforge.net/UnZip.html) diff --git a/scripts/TY_list2gff3.pl b/scripts/TY_list2gff3.pl index 8ba2fe0..872f264 100755 --- a/scripts/TY_list2gff3.pl +++ b/scripts/TY_list2gff3.pl @@ -6,7 +6,7 @@ ############################################################## # script: TY_list2gff3.pl # author: Jia-Xing Yue (GitHub ID: yjx1217) -# last edited: 2017.06.17 +# last edited: 2022.12.11 # description: covert TY_list to GFF3 # example: perl TY_list2gff3.pl -i ty.list -o ty.gff3 -t genome_tag ############################################################## @@ -35,6 +35,7 @@ } my $new_id = "$type:$chr:$start-$end:$strand"; print $output_fh "$chr\t$tag\t$type\t$start\t$end\t.\t$strand\t.\tID=${new_id};Name=${new_id}\n"; + # print $output_fh "$chr\t$tag\tmobile_element\t$start\t$end\t.\t$strand\t.\tID=${new_id};Name=${new_id};mobile_element_type=$type\n"; } sub read_file { diff --git a/scripts/break_contig_by_blast.pl b/scripts/break_contig_by_blast.pl index c0c9bb7..3cd42cc 100755 --- a/scripts/break_contig_by_blast.pl +++ b/scripts/break_contig_by_blast.pl @@ -6,7 +6,7 @@ ############################################################## # script: break_contig_by_blast.pl # author: Jia-Xing Yue (GitHub ID: yjx1217) -# last edited: 2018.01.24 +# last edited: 2022.03.04 # description: break contigs containing blast hit into multiple contigs # example: perl break_contig_by_blast.pl -i input.fa(.gz) -o output.fa(.gz) -b blast.result.outfmt7.txt ############################################################## @@ -101,10 +101,18 @@ sub parse_blast_file { $blast{$subject}{'part2'} = substr $input{$subject}, $subject_start - 1; } else { # hit on the negative strand - $blast{$subject}{'part1'} = substr $input{$subject}, 0, $subject_end; - $blast{$subject}{'part2'} = substr $input{$subject}, $subject_end; + $blast{$subject}{'part1'} = substr $input{$subject}, 0, $subject_start; + $blast{$subject}{'part1'} = revcom($blast{$subject}{'part1'}); + $blast{$subject}{'part2'} = substr $input{$subject}, $subject_start; + $blast{$subject}{'part2'} = revcom($blast{$subject}{'part2'}); } } return %blast; } +sub revcom { + my $seq = shift @_; + my $seq_revcom = reverse $seq; + $seq_revcom =~ tr/ATGCNatgcn/TACGNtacgn/; + return $seq_revcom; +} diff --git a/scripts/cal_assembly_stats.pl b/scripts/cal_assembly_stats.pl index b4feffa..2e7bc35 100755 --- a/scripts/cal_assembly_stats.pl +++ b/scripts/cal_assembly_stats.pl @@ -7,7 +7,7 @@ ############################################################## # script: cal_assembly_stats.pl # author: Jia-Xing Yue (GitHub ID: yjx1217) -# last edited: 2017.06.19 +# last edited: 2022.07.22 # description: calculate basice statistics for genome assemblies, such as GC%, N50, N90, etc ... # example: perl cal_assembly_stats.pl -i input.fa(.gz) -o output.txt ############################################################## @@ -59,10 +59,17 @@ my $base_pct = $base_count{$base} * 100 / $total_sequence_length; $base_pct{$base} = sprintf("%.2f", $base_pct); } -$base_pct{'AT'} = ($base_count{'A'} + $base_count{'T'}) * 100 / $total_sequence_length; -$base_pct{'GC'} = ($base_count{'G'} + $base_count{'C'}) * 100 / $total_sequence_length; + +$base_count{'AT'} = $base_count{'A'} + $base_count{'T'}; +$base_count{'GC'} = $base_count{'G'} + $base_count{'C'}; +$base_pct{'AT'} = ($base_count{'AT'} * 100) / $total_sequence_length; +$base_pct{'GC'} = ($base_count{'GC'} * 100) / $total_sequence_length; $base_pct{'AT'} = sprintf("%.2f", $base_pct{'AT'}); $base_pct{'GC'} = sprintf("%.2f", $base_pct{'GC'}); +$base_pct{'AT_adjusted'} = ($base_count{'AT'} * 100)/($base_count{'AT'} + $base_count{'GC'}); +$base_pct{'GC_adjusted'} = ($base_count{'GC'} * 100)/($base_count{'AT'} + $base_count{'GC'}); +$base_pct{'AT_adjusted'} = sprintf("%.2f", $base_pct{'AT_adjusted'}); +$base_pct{'GC_adjusted'} = sprintf("%.2f", $base_pct{'GC_adjusted'}); print $output_fh "total sequence count: $total_sequence_count\n"; print $output_fh "total sequence length: $total_sequence_length\n"; @@ -70,18 +77,29 @@ print $output_fh "max sequence length: $max_length\n"; print $output_fh "mean sequence length: $mean_length\n"; print $output_fh "median sequence length: $median_length\n"; +print $output_fh "###################\n"; print $output_fh "N50: $N50\n"; print $output_fh "L50: $L50\n"; print $output_fh "N90: $N90\n"; print $output_fh "L90: $L90\n"; - +print $output_fh "###################\n"; +print $output_fh "A count: $base_count{'A'}\n"; +print $output_fh "T count: $base_count{'T'}\n"; +print $output_fh "G count: $base_count{'G'}\n"; +print $output_fh "C count: $base_count{'C'}\n"; +print $output_fh "(A+T) count: $base_count{'AT'}\n"; +print $output_fh "(G+C) count: $base_count{'GC'}\n"; +print $output_fh "N count: $base_count{'N'}\n"; +print $output_fh "###################\n"; print $output_fh "A%: $base_pct{'A'}\n"; print $output_fh "T%: $base_pct{'T'}\n"; print $output_fh "G%: $base_pct{'G'}\n"; print $output_fh "C%: $base_pct{'C'}\n"; -print $output_fh "AT%: $base_pct{'AT'}\n"; -print $output_fh "GC%: $base_pct{'GC'}\n"; +print $output_fh "(A+T)%: $base_pct{'AT'}\n"; +print $output_fh "(G+C)%: $base_pct{'GC'}\n"; print $output_fh "N%: $base_pct{'N'}\n"; +print $output_fh "((A+T)/(A+T+G+C))%: $base_pct{'AT_adjusted'}\n"; +print $output_fh "((G+C)/(A+T+G+C))%: $base_pct{'GC_adjusted'}\n"; sub read_file { @@ -155,6 +173,24 @@ sub cal_median { return $median; } +sub cal_stdev { + my $data_arrayref = shift @_; + my $data_num = scalar @$data_arrayref; + my $stdev; + if ($data_num == 1){ + $stdev = 0; + } else { + my $mean = cal_mean($data_arrayref); + my $sq_sum = 0; + foreach my $i (@$data_arrayref) { + $sq_sum += ($mean -$i) ** 2; + } + $stdev = ($sq_sum / ($data_num - 1)) ** 0.5; + } + return $stdev; +} + + sub cal_N50 { diff --git a/scripts/extract_cds_from_tidy_gff3.pl b/scripts/extract_cds_from_tidy_gff3.pl index ce7037e..d2b1340 100755 --- a/scripts/extract_cds_from_tidy_gff3.pl +++ b/scripts/extract_cds_from_tidy_gff3.pl @@ -6,7 +6,7 @@ ############################################################## # script: extract_cds_from_tidy_gff3.pl # author: Jia-Xing Yue (GitHub ID: yjx1217) -# last edited: 2020.01.07 +# last edited: 2022.12.11 # description: extract CDS sequences from GFF3 file # example: perl extract_cds_from_tidy_gff3.pl -r genome.fa.gz -g genome.gff3 -o genome.cds.fa ############################################################## @@ -36,6 +36,7 @@ } } 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'}; 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'}; my $mRNA_strand = $gff{$gene_id}{'mRNA'}{$mRNA_id}{'mRNA_strand'}; @@ -56,7 +57,7 @@ if ($mRNA_strand eq '-') { $mRNA_seq = revcom($mRNA_seq); } - print $output_fh ">$gene_id|$mRNA_id\n$mRNA_seq\n"; + print $output_fh ">$gene_id|$mRNA_id|$gene_name\n$mRNA_seq\n"; } } } @@ -130,6 +131,7 @@ sub parse_gff_file { $gene_type = "gene"; } $gff{$gene_id}{'gene_type'} = $gene_type; + $gff{$gene_id}{'gene_name'} = $gene_name; $gff{$gene_id}{'gene_chr'} = $chr; $gff{$gene_id}{'gene_start'} = $start; $gff{$gene_id}{'gene_end'} = $end; @@ -143,7 +145,7 @@ sub parse_gff_file { $gene_type = $type; $gene_id = "$gene_type:$chr:${start}-${end}:$strand"; $gff{$gene_id}{'gene_type'} = $gene_type; - $gff{$gene_id}{'gene_type'} = $type; + $gff{$gene_id}{'gene_name'} = $gene_name; $gff{$gene_id}{'gene_chr'} = $chr; $gff{$gene_id}{'gene_start'} = $start; $gff{$gene_id}{'gene_end'} = $end; diff --git a/scripts/label_pseudogene_in_gff3.pl b/scripts/label_pseudogene_in_gff3.pl new file mode 100755 index 0000000..6c28fa1 --- /dev/null +++ b/scripts/label_pseudogene_in_gff3.pl @@ -0,0 +1,132 @@ +#!/usr/bin/perl +use warnings; +use strict; +use Getopt::Long; + +############################################################## +# script: label_pseudogene_in_gff3.pl +# author: Jia-Xing Yue (GitHub ID: yjx1217) +# last edited: 2022.12.12 +# description: label pseudogenes in gff3 by manual_check_list generated by cds2protein.pl +# example: perl label_pseudogene_in_gff3.pl -i input.gff3 -o output.gff3 -l check_list +############################################################## + +my ($input, $output, $check_list); + +GetOptions('input|i:s' => \$input, + 'output|o:s' => \$output, + 'check_list|l:s' => \$check_list); + +my $list_fh = read_file($check_list); +my %list = parse_list_file($list_fh); +close $list_fh; + +my $input_fh = read_file($input); +my $output_fh = write_file($output); + +my $gene_id; +my $gene_name; +my $new_gene_id; +my $new_gene_name; +my $new_gene_type; +my $new_gene_attributes; + +while (<$input_fh>) { + chomp; + if (/^#/) { + print $output_fh "$_\n"; + } else { + my ($chr, $source, $type, $start, $end, $score, $strand, $phase, $attributes) = split /\t/, $_; + if ($type eq "gene") { + ($gene_id, $gene_name) = ($attributes =~ /ID=([^;]+);\S*Name=([^;]+)/); + if (exists $list{'gene_id'}{$gene_id}) { + $new_gene_type = "pseudogene"; + $new_gene_id = "${new_gene_type}:${chr}:${start}-${end}:$strand"; + $new_gene_name = $new_gene_id; + $new_gene_attributes = "ID=$new_gene_id;Name=$new_gene_name"; + print $output_fh "$chr\t$source\t$new_gene_type\t$start\t$end\t$score\t$strand\t$phase\t$new_gene_attributes\n"; + } else { + print $output_fh "$_\n"; + } + } elsif ($type eq "mRNA") { + my ($mrna_id) = ($attributes =~ /ID=([^;]+)/); + if (exists $list{'mrna_id'}{$mrna_id}) { + my $new_mrna_type = "pseudogenic_transcript"; + my $new_mrna_id = "${new_mrna_type}:${chr}:${start}-${end}:$strand"; + my $new_mrna_name = $new_mrna_id; + my $new_mrna_attributes = "ID=$new_mrna_id;Name=$new_mrna_name;Parent=$new_gene_id"; + print $output_fh "$chr\t$source\t$new_mrna_type\t$start\t$end\t$score\t$strand\t$phase\t$new_mrna_attributes\n"; + } else { + print $output_fh "$_\n"; + } + } elsif ($type =~ /(exon|CDS)/) { + my ($parent_id) = ($attributes =~ /Parent=([^;]+)/); + if (not exists $list{'mrna_id'}{$parent_id}) { + print $output_fh "$_\n"; + } + } else { + print $output_fh "$_\n"; + } + } +} + + + +sub read_file { + my $file = shift @_; + my $fh; + if ($file =~ /\.gz$/) { + open($fh, "gunzip -c $file |") or die "can't open pipe to $file"; + } else { + open($fh, $file) or die "can't open $file"; + } + return $fh; +} + +sub write_file { + my $file = shift @_; + my $fh; + if ($file =~ /.gz$/) { + open($fh, "| gzip -c >$file") or die "can't open $file\n"; + } else { + open($fh, ">$file") or die "can't open $file\n"; + } + return $fh; +} + +sub parse_fasta_file { + my ($fh, $input_hashref, $input_arrayref) = @_; + my $seq_name = ""; + while (<$fh>) { + chomp; + if (/^\s*$/) { + next; + } elsif (/^\s*#/) { + next; + } elsif (/^>(.*)/) { + $seq_name = $1; + push @$input_arrayref, $seq_name; + $$input_hashref{$seq_name} = ""; + } else { + $$input_hashref{$seq_name} .= $_; + } + } +} + +sub parse_list_file { + my $fh = shift @_; + my %list = (); + while (<$fh>) { + chomp; + /^##FASTA/ and last; + /^#/ and next; + /^\s*$/ and next; + my ($transcript, $cause) = split /\t/, $_; + my ($gene_id, $transcript_id) = ($transcript =~ /([^\|]+)\|([^\|]+)/); + print "gene_id=$gene_id, transcript_id = $transcript_id\n"; + $list{'gene_id'}{$gene_id} = $cause; + $list{'mrna_id'}{$transcript_id} = $cause; + + } + return %list; +} diff --git a/scripts/mfannot2gff3.pl b/scripts/mfannot2gff3.pl index 55395ff..c99bebd 100755 --- a/scripts/mfannot2gff3.pl +++ b/scripts/mfannot2gff3.pl @@ -6,19 +6,23 @@ ############################################################## # script: mfannot2gff3.pl # author: Jia-Xing Yue (GitHub ID: yjx1217) -# last edited: 2018.09.01 -# description: converting the mfannot output to the GFF3 format -# example: perl mfannot2gff3.pl -i genome.mfannot.out -o genome.mfannot.gff3 -m lite +# last edited: 2022.12.09 +# description: converting the mfannot and trnascan output files into a final GFF3 output +# example: perl mfannot2gff3.pl -tag strain_id -mfannot_out genome.mfannot.out.txt -trnascan_out genome.trnascan.out.txt -o genome.mfannot.gff3 -m lite ############################################################## -my ($input, $output, $mode); +my ($mfannot_out, $trnascan_out, $tag, $output, $mode); $mode = "lite"; # use lite to filter out gene models annotated within introns -GetOptions('input|i:s' => \$input, +GetOptions('mfannot_out|mfannot_out:s' => \$mfannot_out, + 'trnascan_out|trnascan_out:s' => \$trnascan_out, + 'tag|t:s' => \$tag, 'output|o:s' => \$output, 'mode|m:s' => \$mode); # "full" or "lite" -my $input_fh = read_file($input); +my $trnascan_out_fh = read_file($trnascan_out); +my %trnascan_out = parse_trnascan_out_file($trnascan_out_fh); +my $mfannot_out_fh = read_file($mfannot_out); my %chr = (); my @chr = (); my %features = (); @@ -26,7 +30,7 @@ my $feature = ""; my %gene2exon_intron = (); -while (<$input_fh>) { +while (<$mfannot_out_fh>) { chomp; /^\s*$/ and next; /^#/ and next; @@ -36,6 +40,8 @@ $chr{$chr}{'genetic_code'} = $2; print "chr=$chr, genetic_code=$chr{$chr}{'genetic_code'}\n"; push @chr, $chr; + } elsif (/^;\s+G-orf/) { + next; } elsif (/^;\s+G-(\S+)\s+(\S+)\s+(start|end)\s*(\S?\.*)/) { $feature = $1; my $feature_type; @@ -43,10 +49,10 @@ my $feature_mark = $3; my $feature_note = $4; if ($feature =~ /(\S+)-E(\d+)$/) { - $gene2exon_intron{$1}{'exon'}{$2} = $feature; + $gene2exon_intron{$1}{'exon'}{$2}{'feature'} = $feature; $feature_type = "exon"; } elsif ($feature =~ /(\S+)-I(\d+)$/) { - $gene2exon_intron{$1}{'intron'}{$2} = $feature; + $gene2exon_intron{$1}{'intron'}{$2}{'feature'} = $feature; $feature_type = "intron"; } else { $feature_type = "gene"; @@ -114,6 +120,18 @@ } +foreach my $f (sort keys %trnascan_out) { + print "trn-$f\n"; + my ($chr, $start_end, $strand) = split /:/, $f; + my ($start, $end) = split /-/, $start_end; + $features{"trn-$f"}{'type'} = "gene"; + $features{"trn-$f"}{'start'} = $start; + $features{"trn-$f"}{'end'} = $end; + $features{"trn-$f"}{'strand'} = $strand; +} + + + my $output_fh = write_file($output); print $output_fh "##gff-version 3\n"; @@ -129,26 +147,47 @@ } } # begin to output + my %gene2cds_phase = (); foreach my $feature (@features) { print "output feature=$feature\n"; if ($features{$feature}{'type'} eq "gene") { - if ($feature =~ /(rnl|rns|rps)/) { - print $output_fh "$chr\tmfannot\trRNA\t$features{$feature}{'start'}\t$features{$feature}{'end'}\t.\t$features{$feature}{'strand'}\t.\tID=${feature};Name=${feature}\n"; + if ($feature =~ /^(rnl|rns|rps)/) { + print $output_fh "$chr\t$tag\trRNA\t$features{$feature}{'start'}\t$features{$feature}{'end'}\t.\t$features{$feature}{'strand'}\t.\tID=${tag}_${feature};Name=${tag}_${feature}\n"; + } elsif ($feature =~ /^rnpB/) { + print $output_fh "$chr\t$tag\trnpB\t$features{$feature}{'start'}\t$features{$feature}{'end'}\t.\t$features{$feature}{'strand'}\t.\tID=${tag}_RPM1;Name=${tag}_RPM1\n"; + } elsif ($feature =~ /^trn/) { + if (exists $trnascan_out{"$chr:$features{$feature}{'start'}-$features{$feature}{'end'}:$features{$feature}{'strand'}"}) { + my $id = "${tag}_tRNA:$chr:$features{$feature}{'start'}-$features{$feature}{'end'}:$features{$feature}{'strand'}"; + my $name = $trnascan_out{"$chr:$features{$feature}{'start'}-$features{$feature}{'end'}:$features{$feature}{'strand'}"}{"name"}; + $trnascan_out{"$chr:$features{$feature}{'start'}-$features{$feature}{'end'}:$features{$feature}{'strand'}"}{"flag"} = 1; + print $output_fh "$chr\t$tag\ttRNA\t$features{$feature}{'start'}\t$features{$feature}{'end'}\t.\t$features{$feature}{'strand'}\t.\tID=$id;Name=$name\n"; + } else { + print "skip feature: $feature!\n"; + } } else { if ($mode eq "lite") { if ($feature =~ /-I(\d+)-/) { next; } + if ($feature =~ /^orf/) { + next; + } } + my $gene_name = uc $feature; + $gene_name = $tag . "_" . $gene_name; if (not exists $gene2exon_intron{$feature}) { + # single exon gene - print $output_fh "$chr\tmfannot\tgene\t$features{$feature}{'start'}\t$features{$feature}{'end'}\t.\t$features{$feature}{'strand'}\t.\tID=$feature;Name=$feature\n"; - print $output_fh "$chr\tmfannot\tmRNA\t$features{$feature}{'start'}\t$features{$feature}{'end'}\t.\t$features{$feature}{'strand'}\t.\tID=${feature}.mRNA.1;Name=${feature}.mRNA.1;Parent=$feature\n"; + print $output_fh "$chr\t$tag\tgene\t$features{$feature}{'start'}\t$features{$feature}{'end'}\t.\t$features{$feature}{'strand'}\t.\tID=$gene_name;Name=$gene_name\n"; + print $output_fh "$chr\t$tag\tmRNA\t$features{$feature}{'start'}\t$features{$feature}{'end'}\t.\t$features{$feature}{'strand'}\t.\tID=${gene_name}.mRNA.1;Name=${gene_name}.mRNA.1;Parent=$gene_name\n"; # add back exon/CDS annotation my $gene_id = $feature; my $exon_index = 1; - print $output_fh "$chr\tmfannot\texon\t$features{$feature}{'start'}\t$features{$feature}{'end'}\t.\t$features{$feature}{'strand'}\t.\tID=${gene_id}.exon.$exon_index;Name=${gene_id}.exon.$exon_index;Parent=${gene_id}.mRNA.1\n"; - print $output_fh "$chr\tmfannot\tCDS\t$features{$feature}{'start'}\t$features{$feature}{'end'}\t.\t$features{$feature}{'strand'}\t.\tID=${gene_id}.CDS.$exon_index;Name=${gene_id}.CDS.$exon_index;Parent=${gene_id}.mRNA.1\n"; + $gene2cds_phase{$feature}{'phase'} = 0; + $gene2cds_phase{$feature}{'cds_walk'} = $features{$feature}{'end'} - $features{$feature}{'start'} + 1; + + print $output_fh "$chr\t$tag\texon\t$features{$feature}{'start'}\t$features{$feature}{'end'}\t.\t$features{$feature}{'strand'}\t.\tID=${gene_name}.exon.$exon_index;Name=${gene_name}.exon.$exon_index;Parent=${gene_name}.mRNA.1\n"; + print $output_fh "$chr\t$tag\tCDS\t$features{$feature}{'start'}\t$features{$feature}{'end'}\t.\t$features{$feature}{'strand'}\t0\tID=${gene_name}.CDS.$exon_index;Name=${gene_name}.CDS.$exon_index;Parent=${gene_name}.mRNA.1\n"; } else { # multi-exon gene # add back gene annotation @@ -165,17 +204,45 @@ $features{$feature}{'start'} = $gene_end; $features{$feature}{'end'} = $gene_start; } - print $output_fh "$chr\tmfannot\tgene\t$features{$feature}{'start'}\t$features{$feature}{'end'}\t.\t$features{$feature}{'strand'}\t.\tID=$feature;Name=$feature\n"; - print $output_fh "$chr\tmfannot\tmRNA\t$features{$feature}{'start'}\t$features{$feature}{'end'}\t.\t$features{$feature}{'strand'}\t.\tID=${feature}.mRNA.1;Name=${feature}.mRNA.1;Parent=$feature\n"; + $gene2cds_phase{$feature}{'phase'} = 0; + $gene2cds_phase{$feature}{'cds_walk'} = 0; + + print $output_fh "$chr\t$tag\tgene\t$features{$feature}{'start'}\t$features{$feature}{'end'}\t.\t$features{$feature}{'strand'}\t.\tID=$gene_name;Name=$gene_name\n"; + print $output_fh "$chr\t$tag\tmRNA\t$features{$feature}{'start'}\t$features{$feature}{'end'}\t.\t$features{$feature}{'strand'}\t.\tID=${gene_name}.mRNA.1;Name=${gene_name}.mRNA.1;Parent=$gene_name\n"; } } } elsif ($features{$feature}{'type'} eq "exon") { my ($gene_id, $exon_index) = ($feature =~ /(\S+)-E(\d+)/); - print $output_fh "$chr\tmfannot\texon\t$features{$feature}{'start'}\t$features{$feature}{'end'}\t.\t$features{$feature}{'strand'}\t.\tID=${gene_id}.exon.$exon_index;Name=${gene_id}.exon.$exon_index;Parent=${gene_id}.mRNA.1\n"; - print $output_fh "$chr\tmfannot\tCDS\t$features{$feature}{'start'}\t$features{$feature}{'end'}\t.\t$features{$feature}{'strand'}\t.\tID=${gene_id}.CDS.$exon_index;Name=${gene_id}.CDS.$exon_index;Parent=${gene_id}.mRNA.1\n"; - } + my $gene_name = uc $gene_id; + $gene_name = $tag . "_" . $gene_name; + print $output_fh "$chr\t$tag\texon\t$features{$feature}{'start'}\t$features{$feature}{'end'}\t.\t$features{$feature}{'strand'}\t.\tID=${gene_name}.exon.$exon_index;Name=${gene_name}.exon.$exon_index;Parent=${gene_name}.mRNA.1\n"; + if ($exon_index == 1) { + $gene2cds_phase{$gene_id}{'phase'} = 0; + $gene2cds_phase{$gene_id}{'cds_walk'} = $features{$feature}{'end'} - $features{$feature}{'start'} + 1; + print $output_fh "$chr\t$tag\tCDS\t$features{$feature}{'start'}\t$features{$feature}{'end'}\t.\t$features{$feature}{'strand'}\t0\tID=${gene_name}.CDS.$exon_index;Name=${gene_name}.CDS.$exon_index;Parent=${gene_name}.mRNA.1\n"; + } else { + if ($gene2cds_phase{$gene_id}{'cds_walk'} % 3 != 0) { + $gene2cds_phase{$gene_id}{'phase'} = 3 - $gene2cds_phase{$gene_id}{'cds_walk'} % 3; + } else { + $gene2cds_phase{$gene_id}{'phase'} = 0; + } + $gene2cds_phase{$gene_id}{'cds_walk'} = $gene2cds_phase{$gene_id}{'cds_walk'} + $features{$feature}{'end'} - $features{$feature}{'start'} + 1; + print $output_fh "$chr\t$tag\tCDS\t$features{$feature}{'start'}\t$features{$feature}{'end'}\t.\t$features{$feature}{'strand'}\t$gene2cds_phase{$gene_id}{'phase'}\tID=${gene_name}.CDS.$exon_index;Name=${gene_name}.CDS.$exon_index;Parent=${gene_name}.mRNA.1\n"; + } + } } } +foreach my $f (sort keys %trnascan_out) { + if ($trnascan_out{$f}{"flag"} == 0) { + my ($chr, $start_end, $strand) = split /:/, $f; + my ($start, $end) = split /-/, $start_end; + my $name = $trnascan_out{$f}{"name"}; + my $id = "${tag}_tRNA:$chr:$start_end:$strand"; + print $output_fh "$chr\t$tag\ttRNA\t$start\t$end\t.\t$strand\t.\tID=$id;Name=$name\n"; + } +} + + sub read_file { @@ -206,3 +273,26 @@ sub revcom { $seq_revcom =~ tr/ATGCNatgcn/TACGNtacgn/; return $seq_revcom; } + + +sub parse_trnascan_out_file { + my $fh = shift @_; + my %trnascan = (); + while (<$fh>) { + chomp; + /^Sequence/ and next; + /^Name/ and next; + /^------/ and next; + my ($chr, $id, $start, $end, $trna_type, $anti_codon, $intron_start, $intron_end, $cov_score) = split /\s+/, $_; + my $strand; + if ($start < $end) { + $strand = "+"; + } else { + ($start, $end) = ($end, $start); + $strand = "-"; + } + $trnascan{"$chr:$start-$end:$strand"}{'name'} = "tRNA_${trna_type}(${anti_codon})"; + $trnascan{"$chr:$start-$end:$strand"}{'flag'} = 0; + } + return %trnascan; +} diff --git a/scripts/parse_REannotate_gff.pl b/scripts/parse_REannotate_gff.pl index e89286c..021bf67 100755 --- a/scripts/parse_REannotate_gff.pl +++ b/scripts/parse_REannotate_gff.pl @@ -31,7 +31,7 @@ /^#/ and next; /^\s*$/ and next; my @line = split /\t/, $_; - if ($line[0] =~ /_TY/) { + if ($line[0] =~ /(_TY|_TSU4)/) { $index++; $line[0] = $chr; ($line[1], $line[2]) = ($line[1] =~ /(REannotate)_(\S+)/); diff --git a/scripts/psl2gff3.pl b/scripts/psl2gff3.pl index a393d4b..246c533 100755 --- a/scripts/psl2gff3.pl +++ b/scripts/psl2gff3.pl @@ -27,7 +27,6 @@ my $input_fh = read_file($input); my $output_fh = write_file($output); -my $length_cutoff = 0; while (<$input_fh>) { chomp; if (/^\d+/) { @@ -40,7 +39,7 @@ ($start, $end) = ($end, $start); } my $feature_length = $end - $start + 1; - if ($feature_length >= $length_cutoff) { + if ($feature_length >= $length_cutoff_for_completeness) { my $new_feature_type = $feature_type; if ($feature_length < $length_cutoff_for_completeness) { $new_feature_type = "${feature_type}_partial"; diff --git a/scripts/rm_overlap_features_from_gff_simple.pl b/scripts/rm_overlap_features_from_gff_simple.pl index 82ce2f8..fe8634f 100755 --- a/scripts/rm_overlap_features_from_gff_simple.pl +++ b/scripts/rm_overlap_features_from_gff_simple.pl @@ -65,7 +65,6 @@ my $refseq_fh = read_file($refseq); my @chr = get_chr_list($refseq_fh); - foreach my $record (@output) { my ($chr, $source, $type, $start, $end, $score, $strand, $frame, $attributes) = split /\t/, $record; $gff{$type}{$chr}{$start} = $record; diff --git a/scripts/sort_gff3.pl b/scripts/sort_gff3.pl index 32cf49f..9a308af 100755 --- a/scripts/sort_gff3.pl +++ b/scripts/sort_gff3.pl @@ -6,7 +6,7 @@ ############################################################## # script: sort_gff3.pl # author: Jia-Xing Yue (GitHub ID: yjx1217) -# last edited: 2018.10.15 +# last edited: 2022.12.11 # 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) ############################################################## @@ -189,7 +189,7 @@ sub parse_gff_file { $gff{$gene_id}{'gene_score'} = $score; $gff{$gene_id}{'gene_phase'} = $phase; $mRNA_index = 0; - } elsif (($type eq "centromere") or ($type eq "rRNA")) { + } elsif ($type =~ /(centromere|rRNA|tRNA)/) { $gene_type = $type; ($gene_id, $gene_name) = ($attributes =~ /ID=([^;]+);\S*Name=([^;]+)/); $gff{$gene_id}{'gene_name'} = $gene_name; diff --git a/scripts/tidy_TE_gff3.pl b/scripts/tidy_TE_gff3.pl new file mode 100755 index 0000000..7c3fa0b --- /dev/null +++ b/scripts/tidy_TE_gff3.pl @@ -0,0 +1,131 @@ +#!/usr/bin/perl +use warnings; +#use warnings FATAL => 'all'; +use strict; +use Getopt::Long; + +############################################################## +# script: tidy_TE_gff3.pl +# author: Jia-Xing Yue (GitHub ID: yjx1217) +# last edited: 2022.12.11 +# description: tidy TE gff3 by re-sorting and re-naming feature IDs +# example: perl tidy_TE_gff3.pl -i raw.gff3 -t genome_tag -o tidy.gff3 -r genome.fa(.gz) +############################################################## + +my ($refseq, $input, $output, $tag); +GetOptions('refseq|r:s' => \$refseq, # reference genome file in fasta format; can be compressed by gzip + 'input|i:s' => \$input, # input raw gff3 + 'output|o:s' => \$output, # output tidy gff3 + 'tag|t:s' => \$tag); # genome tag + +my $refseq_fh = read_file($refseq); +my %refseq = (); +my @refseq = (); +parse_fasta_file($refseq_fh, \%refseq, \@refseq); + +my $input_fh = read_file($input); +my %gff = parse_gff_file($input_fh); +close $input_fh; + +my $output_fh = write_file($output); + +print $output_fh "##gff-version 3\n"; + +foreach my $chr (@refseq) { + my $chr_length = length $refseq{$chr}; + print $output_fh "##sequence-region $chr 1 $chr_length\n"; +} + +my $feature_index = 0; +foreach my $chr (@refseq) { + my @features_on_chr = (); + foreach my $feature_id (sort keys %gff) { + if ($gff{$feature_id}{'chr'} eq $chr) { + push @features_on_chr, $feature_id; + } + } + foreach my $feature_id (sort {$gff{$a}{'start'} <=> $gff{$b}{'start'} or $gff{$a}{'end'} <=> $gff{$b}{'end'}} @features_on_chr) { + my $feature_name = $gff{$feature_id}{'feature_name'}; + my $feature_note = $gff{$feature_id}{'feature_note'}; + my $feature_type = $gff{$feature_id}{'feature_type'}; + my $feature_start = $gff{$feature_id}{'start'}; + my $feature_end = $gff{$feature_id}{'end'}; + my $feature_score = $gff{$feature_id}{'score'}; + my $feature_strand = $gff{$feature_id}{'strand'}; + my $feature_phase = $gff{$feature_id}{'phase'}; + print $output_fh "$chr\t$tag\t$feature_type\t$feature_start\t$feature_end\t$feature_score\t$feature_strand\t$feature_phase\tID=$feature_id;Name=$feature_name;$feature_note\n"; + } +} + + + + + +sub read_file { + my $file = shift @_; + my $fh; + if ($file =~ /\.gz$/) { + open($fh, "gunzip -c $file |") or die "can't open pipe to $file"; + } else { + open($fh, $file) or die "can't open $file"; + } + return $fh; +} + +sub write_file { + my $file = shift @_; + my $fh; + if ($file =~ /.gz$/) { + open($fh, "| gzip -c >$file") or die "can't open $file\n"; + } else { + open($fh, ">$file") or die "can't open $file\n"; + } + return $fh; +} + +sub parse_fasta_file { + my ($fh, $input_hashref, $input_arrayref) = @_; + my $seq_name = ""; + while (<$fh>) { + chomp; + if (/^\s*$/) { + next; + } elsif (/^\s*#/) { + next; + } elsif (/^>(.*)/) { + $seq_name = $1; + push @$input_arrayref, $seq_name; + $$input_hashref{$seq_name} = ""; + } else { + $$input_hashref{$seq_name} .= $_; + } + } +} + +sub parse_gff_file { + my $fh = shift @_; + my %gff = (); + my $feature_id; + my $feature_name; + my $feature_type; + while (<$fh>) { + chomp; + /^##FASTA/ and last; + /^#/ and next; + my ($chr, $source, $type, $start, $end, $score, $strand, $phase, $attributes) = split /\t/, $_; + # print "$_\n"; + ($feature_id, $feature_name) = ($attributes =~ /ID=([^;]+);\S*Name=([^;]+)/); + $gff{$feature_id}{'feature_type'} = "mobile_element"; + $gff{$feature_id}{'feature_name'} = $feature_name; + $gff{$feature_id}{'feature_note'} = "mobile_element_type=$type"; + $gff{$feature_id}{'chr'} = $chr; + $gff{$feature_id}{'start'} = $start; + $gff{$feature_id}{'end'} = $end; + $gff{$feature_id}{'strand'} = $strand; + $gff{$feature_id}{'source'} = $source; + $gff{$feature_id}{'score'} = $score; + $gff{$feature_id}{'phase'} = $phase; + } + return %gff; +} + diff --git a/scripts/tidy_maker_gff3.pl b/scripts/tidy_maker_gff3.pl index a1bfbbb..6bea04b 100755 --- a/scripts/tidy_maker_gff3.pl +++ b/scripts/tidy_maker_gff3.pl @@ -1,12 +1,13 @@ #!/usr/bin/perl use warnings; +#use warnings FATAL => 'all'; use strict; use Getopt::Long; ############################################################## # script: tidy_maker_gff3.pl # author: Jia-Xing Yue (GitHub ID: yjx1217) -# last edited: 2017.06.17 +# last edited: 2022.12.09 # description: tidy maker gff3 by re-sorting and re-naming feature IDs # example: perl tidy_maker_gff3.pl -i raw.gff3 -t genome_tag -o tidy.gff3 -r genome.fa(.gz) ############################################################## @@ -35,44 +36,39 @@ print $output_fh "##sequence-region $chr 1 $chr_length\n"; } -my $gene_index = 0; +my $feature_index = 0; foreach my $chr (@refseq) { - my @genes_on_chr = (); - foreach my $gene_id (sort keys %gff) { - if ($gff{$gene_id}{'gene_chr'} eq $chr) { - push @genes_on_chr, $gene_id; + my @features_on_chr = (); + foreach my $feature_id (sort keys %gff) { + if ($gff{$feature_id}{'chr'} eq $chr) { + push @features_on_chr, $feature_id; } } - 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_type = $gff{$gene_id}{'gene_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'}; - if ($gene_type ne "gene") { - my $new_gene_id; - if ($gene_type eq "centromere") { - $new_gene_id = $gene_id; - } else { - $new_gene_id = "$gene_type:$chr:$gene_start-$gene_end:$gene_strand"; - } - 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=$new_gene_id;Name=$new_gene_id\n"; + foreach my $feature_id (sort {$gff{$a}{'start'} <=> $gff{$b}{'start'} or $gff{$a}{'end'} <=> $gff{$b}{'end'}} @features_on_chr) { + my $feature_name = $gff{$feature_id}{'feature_name'}; + my $feature_type = $gff{$feature_id}{'feature_type'}; + my $feature_start = $gff{$feature_id}{'start'}; + my $feature_end = $gff{$feature_id}{'end'}; + my $feature_score = $gff{$feature_id}{'score'}; + my $feature_strand = $gff{$feature_id}{'strand'}; + my $feature_phase = $gff{$feature_id}{'phase'}; + if ($feature_type ne "gene") { + print $output_fh "$chr\t$tag\t$feature_type\t$feature_start\t$feature_end\t$feature_score\t$feature_strand\t$feature_phase\tID=$feature_id;Name=$feature_name\n"; } else { - $gene_index += 10; - my $new_gene_id = sprintf("%07d", $gene_index); - $new_gene_id = "${tag}_" . "G" . $new_gene_id; - print $output_fh "$chr\t$tag\tgene\t$gene_start\t$gene_end\t$gene_score\t$gene_strand\t$gene_phase\tID=$new_gene_id;Name=$new_gene_id\n"; - 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'}; - my $mRNA_start = $gff{$gene_id}{'mRNA'}{$mRNA_id}{'mRNA_start'}; - my $mRNA_end = $gff{$gene_id}{'mRNA'}{$mRNA_id}{'mRNA_end'}; - my $mRNA_score = $gff{$gene_id}{'mRNA'}{$mRNA_id}{'mRNA_score'}; - my $mRNA_strand = $gff{$gene_id}{'mRNA'}{$mRNA_id}{'mRNA_strand'}; - my $mRNA_phase = $gff{$gene_id}{'mRNA'}{$mRNA_id}{'mRNA_phase'}; - my $new_mRNA_id = "$new_gene_id.mRNA.$mRNA_index"; - print $output_fh "$chr\t$tag\tmRNA\t$mRNA_start\t$mRNA_end\t$mRNA_score\t$mRNA_strand\t$mRNA_phase\tID=$new_mRNA_id;Name=$new_mRNA_id;Parent=$new_gene_id\n"; - my @exon_indices = sort {$a <=> $b} keys %{$gff{$gene_id}{'mRNA'}{$mRNA_id}{'exon'}}; + $feature_index += 10; + my $new_feature_id = sprintf("%07d", $feature_index); + $new_feature_id = "${tag}_" . "G" . $new_feature_id; + print $output_fh "$chr\t$tag\t$feature_type\t$feature_start\t$feature_end\t$feature_score\t$feature_strand\t$feature_phase\tID=$new_feature_id;Name=$new_feature_id\n"; + foreach my $mRNA_id (sort {$gff{$feature_id}{'mRNA'}{$a}{'mRNA_index'} <=> $gff{$feature_id}{'mRNA'}{$b}{'mRNA_index'}} keys %{$gff{$feature_id}{'mRNA'}}) { + my $mRNA_index = $gff{$feature_id}{'mRNA'}{$mRNA_id}{'mRNA_index'}; + my $mRNA_start = $gff{$feature_id}{'mRNA'}{$mRNA_id}{'start'}; + my $mRNA_end = $gff{$feature_id}{'mRNA'}{$mRNA_id}{'end'}; + my $mRNA_score = $gff{$feature_id}{'mRNA'}{$mRNA_id}{'score'}; + my $mRNA_strand = $gff{$feature_id}{'mRNA'}{$mRNA_id}{'strand'}; + my $mRNA_phase = $gff{$feature_id}{'mRNA'}{$mRNA_id}{'phase'}; + my $new_mRNA_id = "$new_feature_id.mRNA.$mRNA_index"; + print $output_fh "$chr\t$tag\tmRNA\t$mRNA_start\t$mRNA_end\t$mRNA_score\t$mRNA_strand\t$mRNA_phase\tID=$new_mRNA_id;Name=$new_mRNA_id;Parent=$new_feature_id\n"; + my @exon_indices = sort {$a <=> $b} keys %{$gff{$feature_id}{'mRNA'}{$mRNA_id}{'exon'}}; my $exon_num = scalar @exon_indices; my $new_exon_index; if ($mRNA_strand eq '+') { @@ -81,11 +77,11 @@ $new_exon_index = $exon_num + 1; } foreach my $exon_index (@exon_indices) { - my $exon_start = $gff{$gene_id}{'mRNA'}{$mRNA_id}{'exon'}{$exon_index}{'exon_start'}; - my $exon_end = $gff{$gene_id}{'mRNA'}{$mRNA_id}{'exon'}{$exon_index}{'exon_end'}; - my $exon_score = $gff{$gene_id}{'mRNA'}{$mRNA_id}{'exon'}{$exon_index}{'exon_score'}; - my $exon_strand = $gff{$gene_id}{'mRNA'}{$mRNA_id}{'exon'}{$exon_index}{'exon_strand'}; - my $exon_phase = $gff{$gene_id}{'mRNA'}{$mRNA_id}{'exon'}{$exon_index}{'exon_phase'}; + my $exon_start = $gff{$feature_id}{'mRNA'}{$mRNA_id}{'exon'}{$exon_index}{'start'}; + my $exon_end = $gff{$feature_id}{'mRNA'}{$mRNA_id}{'exon'}{$exon_index}{'end'}; + my $exon_score = $gff{$feature_id}{'mRNA'}{$mRNA_id}{'exon'}{$exon_index}{'score'}; + my $exon_strand = $gff{$feature_id}{'mRNA'}{$mRNA_id}{'exon'}{$exon_index}{'strand'}; + my $exon_phase = $gff{$feature_id}{'mRNA'}{$mRNA_id}{'exon'}{$exon_index}{'phase'}; if ($mRNA_strand eq '+') { $new_exon_index++; } else { @@ -94,7 +90,7 @@ my $new_exon_id = "$new_mRNA_id.exon.$new_exon_index"; print $output_fh "$chr\t$tag\texon\t$exon_start\t$exon_end\t$exon_score\t$exon_strand\t$exon_phase\tID=$new_exon_id;Name=$new_exon_id;Parent=$new_mRNA_id\n"; } - my @cds_indices = sort {$a <=> $b} keys %{$gff{$gene_id}{'mRNA'}{$mRNA_id}{'cds'}}; + my @cds_indices = sort {$a <=> $b} keys %{$gff{$feature_id}{'mRNA'}{$mRNA_id}{'cds'}}; my $cds_num = scalar @cds_indices; my $new_cds_index; if ($mRNA_strand eq '+') { @@ -103,11 +99,11 @@ $new_cds_index = $cds_num + 1; } foreach my $cds_index (@cds_indices) { - my $cds_start = $gff{$gene_id}{'mRNA'}{$mRNA_id}{'cds'}{$cds_index}{'cds_start'}; - my $cds_end = $gff{$gene_id}{'mRNA'}{$mRNA_id}{'cds'}{$cds_index}{'cds_end'}; - my $cds_score = $gff{$gene_id}{'mRNA'}{$mRNA_id}{'cds'}{$cds_index}{'cds_score'}; - my $cds_strand = $gff{$gene_id}{'mRNA'}{$mRNA_id}{'cds'}{$cds_index}{'cds_strand'}; - my $cds_phase = $gff{$gene_id}{'mRNA'}{$mRNA_id}{'cds'}{$cds_index}{'cds_phase'}; + my $cds_start = $gff{$feature_id}{'mRNA'}{$mRNA_id}{'cds'}{$cds_index}{'start'}; + my $cds_end = $gff{$feature_id}{'mRNA'}{$mRNA_id}{'cds'}{$cds_index}{'end'}; + my $cds_score = $gff{$feature_id}{'mRNA'}{$mRNA_id}{'cds'}{$cds_index}{'score'}; + my $cds_strand = $gff{$feature_id}{'mRNA'}{$mRNA_id}{'cds'}{$cds_index}{'strand'}; + my $cds_phase = $gff{$feature_id}{'mRNA'}{$mRNA_id}{'cds'}{$cds_index}{'phase'}; if ($mRNA_strand eq '+') { $new_cds_index++; } else { @@ -169,72 +165,109 @@ sub parse_fasta_file { sub parse_gff_file { my $fh = shift @_; my %gff = (); - my $gene_id; - my $gene_name; - my $gene_type; + my $feature_id; + my $feature_name; + my $feature_type; my $mRNA_index; while (<$fh>) { chomp; /^##FASTA/ and last; /^#/ and next; my ($chr, $source, $type, $start, $end, $score, $strand, $phase, $attributes) = split /\t/, $_; + # print "$_\n"; if ($type eq "gene") { - ($gene_id, $gene_name) = ($attributes =~ /ID=([^;]+);\S*Name=([^;]+)/); - if ($gene_id =~ /^trnascan/) { - $gene_type = "tRNA"; + ($feature_id, $feature_name) = ($attributes =~ /ID=([^;]+);\S*Name=([^;]+)/); + if ($feature_id =~ /^trnascan/) { + $feature_type = "tRNA"; next; - } elsif ($gene_id =~ /^snoscan/) { - $gene_type = "snoRNA"; + } elsif ($feature_id =~ /^snoscan/) { + $feature_type = "snoRNA"; next; } else { - $gene_type = "gene"; + $feature_type = "gene"; } - $gff{$gene_id}{'gene_type'} = $gene_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; + $gff{$feature_id}{'feature_type'} = $feature_type; + $gff{$feature_id}{'feature_name'} = $feature_name; + $gff{$feature_id}{'chr'} = $chr; + $gff{$feature_id}{'start'} = $start; + $gff{$feature_id}{'end'} = $end; + $gff{$feature_id}{'strand'} = $strand; + $gff{$feature_id}{'source'} = $source; + $gff{$feature_id}{'score'} = $score; + $gff{$feature_id}{'phase'} = $phase; $mRNA_index = 0; } elsif ($type eq "centromere") { - $gene_type = $type; - ($gene_id, $gene_name) = ($attributes =~ /ID=([^;]+);\S*Name=([^;]+)/); - $gff{$gene_id}{'gene_type'} = $gene_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; + $feature_type = $type; + ($feature_id, $feature_name) = ($attributes =~ /ID=([^;]+);\S*Name=([^;]+)/); + $gff{$feature_id}{'feature_type'} = $feature_type; + $gff{$feature_id}{'feature_name'} = $feature_name; + $gff{$feature_id}{'chr'} = $chr; + $gff{$feature_id}{'start'} = $start; + $gff{$feature_id}{'end'} = $end; + $gff{$feature_id}{'strand'} = $strand; + $gff{$feature_id}{'source'} = $source; + $gff{$feature_id}{'score'} = $score; + $gff{$feature_id}{'phase'} = $phase; + # } elsif ($type eq "mobile_element") { + # $feature_type = $type; + # ($feature_id, $feature_name) = ($attributes =~ /ID=([^;]+);\S*Name=([^;]+\S*mobile_element_type=[^;]+)/); + # $gff{$feature_id}{'feature_type'} = $feature_type; + # $gff{$feature_id}{'feature_name'} = $feature_name; + # $gff{$feature_id}{'chr'} = $chr; + # $gff{$feature_id}{'start'} = $start; + # $gff{$feature_id}{'end'} = $end; + # $gff{$feature_id}{'strand'} = $strand; + # $gff{$feature_id}{'source'} = $source; + # $gff{$feature_id}{'score'} = $score; + # $gff{$feature_id}{'phase'} = $phase; + } elsif ($type eq "tRNA") { + $feature_type = $type; + ($feature_id, $feature_name) = ($attributes =~ /ID=([^;]+);\S*Name=([^;]+)/); + # print "feature_id=$feature_id\n"; + # print "feature_name=$feature_name\n"; + my ($aa, $anticodon) = ($feature_id =~ /noncoding\-([^\_]+)\_([^\_]+)\-gene/); + # print "aa=$aa\n"; + # print "anticodon=$anticodon\n"; + $feature_id = "$feature_type:$chr:${start}-${end}:$strand"; + $feature_name = "tRNA_${aa}($anticodon)"; + # print "feature_id=$feature_id, feature_name=$feature_name"; + $gff{$feature_id}{'feature_type'} = $feature_type; + $gff{$feature_id}{'feature_name'} = $feature_name; + $gff{$feature_id}{'chr'} = $chr; + $gff{$feature_id}{'start'} = $start; + $gff{$feature_id}{'end'} = $end; + $gff{$feature_id}{'strand'} = $strand; + $gff{$feature_id}{'source'} = $source; + $gff{$feature_id}{'score'} = $score; + $gff{$feature_id}{'phase'} = $phase; } elsif ($type !~ /(exon|CDS|mRNA|UTR)/) { # e.g. type = TY, X-element, Y_prime_element ... - $gene_type = $type; - $gene_id = "$gene_type:$chr:${start}-${end}:$strand"; - $gff{$gene_id}{'gene_type'} = $gene_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; + $feature_type = $type; + $feature_id = "$feature_type:$chr:${start}-${end}:$strand"; + $feature_name = "$feature_type:$chr:${start}-${end}:$strand"; + $gff{$feature_id}{'feature_type'} = $feature_type; + $gff{$feature_id}{'feature_name'} = $feature_name; + $gff{$feature_id}{'chr'} = $chr; + $gff{$feature_id}{'start'} = $start; + $gff{$feature_id}{'end'} = $end; + $gff{$feature_id}{'strand'} = $strand; + $gff{$feature_id}{'source'} = $source; + $gff{$feature_id}{'score'} = $score; + $gff{$feature_id}{'phase'} = $phase; } elsif ($type eq "mRNA") { - my ($mRNA_id, $gene_id) = ($attributes =~ /ID=([^;]+);\S*Parent=([^;]+)/); - if (exists $gff{$gene_id}) { + my ($mRNA_id, $feature_id) = ($attributes =~ /ID=([^;]+);\S*Parent=([^;]+)/); + if (exists $gff{$feature_id}) { $mRNA_index++; - $gff{$gene_id}{'mRNA'}{$mRNA_id}{'mRNA_index'} = $mRNA_index; - $gff{$gene_id}{'mRNA'}{$mRNA_id}{'mRNA_chr'} = $chr; - $gff{$gene_id}{'mRNA'}{$mRNA_id}{'mRNA_start'} = $start; - $gff{$gene_id}{'mRNA'}{$mRNA_id}{'mRNA_end'} = $end; - $gff{$gene_id}{'mRNA'}{$mRNA_id}{'mRNA_strand'} = $strand; - $gff{$gene_id}{'mRNA'}{$mRNA_id}{'mRNA_source'} = $source; - $gff{$gene_id}{'mRNA'}{$mRNA_id}{'mRNA_score'} = $score; - $gff{$gene_id}{'mRNA'}{$mRNA_id}{'mRNA_phase'} = $phase; + $gff{$feature_id}{'mRNA'}{$mRNA_id}{'mRNA_index'} = $mRNA_index; + $gff{$feature_id}{'mRNA'}{$mRNA_id}{'chr'} = $chr; + $gff{$feature_id}{'mRNA'}{$mRNA_id}{'start'} = $start; + $gff{$feature_id}{'mRNA'}{$mRNA_id}{'end'} = $end; + $gff{$feature_id}{'mRNA'}{$mRNA_id}{'strand'} = $strand; + $gff{$feature_id}{'mRNA'}{$mRNA_id}{'source'} = $source; + $gff{$feature_id}{'mRNA'}{$mRNA_id}{'score'} = $score; + $gff{$feature_id}{'mRNA'}{$mRNA_id}{'phase'} = $phase; } else { - die "cannot find matching gene record for the mRNA $mRNA_id derived from the gene $gene_id\n" + die "cannot find matching gene record for the mRNA $mRNA_id derived from the gene $feature_id\n" } } elsif ($type eq "exon") { my ($exon_id, $mRNA_id) = ($attributes =~ /ID=([^;]+);\S*Parent=([^;]+)/); @@ -242,29 +275,29 @@ sub parse_gff_file { next; } elsif ($exon_id =~ /^snoscan/) { next; - } elsif (exists $gff{$gene_id}{'mRNA'}{$mRNA_id}) { + } elsif (exists $gff{$feature_id}{'mRNA'}{$mRNA_id}) { my $exon_index = $start; - $gff{$gene_id}{'mRNA'}{$mRNA_id}{'exon'}{$exon_index}{'exon_chr'} = $chr; - $gff{$gene_id}{'mRNA'}{$mRNA_id}{'exon'}{$exon_index}{'exon_start'} = $start; - $gff{$gene_id}{'mRNA'}{$mRNA_id}{'exon'}{$exon_index}{'exon_end'} = $end; - $gff{$gene_id}{'mRNA'}{$mRNA_id}{'exon'}{$exon_index}{'exon_strand'} = $strand; - $gff{$gene_id}{'mRNA'}{$mRNA_id}{'exon'}{$exon_index}{'exon_source'} = $source; - $gff{$gene_id}{'mRNA'}{$mRNA_id}{'exon'}{$exon_index}{'exon_score'} = $score; - $gff{$gene_id}{'mRNA'}{$mRNA_id}{'exon'}{$exon_index}{'exon_phase'} = $phase; + $gff{$feature_id}{'mRNA'}{$mRNA_id}{'exon'}{$exon_index}{'chr'} = $chr; + $gff{$feature_id}{'mRNA'}{$mRNA_id}{'exon'}{$exon_index}{'start'} = $start; + $gff{$feature_id}{'mRNA'}{$mRNA_id}{'exon'}{$exon_index}{'end'} = $end; + $gff{$feature_id}{'mRNA'}{$mRNA_id}{'exon'}{$exon_index}{'strand'} = $strand; + $gff{$feature_id}{'mRNA'}{$mRNA_id}{'exon'}{$exon_index}{'source'} = $source; + $gff{$feature_id}{'mRNA'}{$mRNA_id}{'exon'}{$exon_index}{'score'} = $score; + $gff{$feature_id}{'mRNA'}{$mRNA_id}{'exon'}{$exon_index}{'phase'} = $phase; } else { die "cannot find matching mRNA record for the exon $exon_id derived from the mRNA $mRNA_id\n" } } elsif ($type eq "CDS") { my ($cds_id, $mRNA_id) = ($attributes =~ /ID=([^;]+);\S*Parent=([^;]+)/); - if (exists $gff{$gene_id}{'mRNA'}{$mRNA_id}) { + if (exists $gff{$feature_id}{'mRNA'}{$mRNA_id}) { my $cds_index = $start; - $gff{$gene_id}{'mRNA'}{$mRNA_id}{'cds'}{$cds_index}{'cds_chr'} = $chr; - $gff{$gene_id}{'mRNA'}{$mRNA_id}{'cds'}{$cds_index}{'cds_start'} = $start; - $gff{$gene_id}{'mRNA'}{$mRNA_id}{'cds'}{$cds_index}{'cds_end'} = $end; - $gff{$gene_id}{'mRNA'}{$mRNA_id}{'cds'}{$cds_index}{'cds_strand'} = $strand; - $gff{$gene_id}{'mRNA'}{$mRNA_id}{'cds'}{$cds_index}{'cds_source'} = $source; - $gff{$gene_id}{'mRNA'}{$mRNA_id}{'cds'}{$cds_index}{'cds_score'} = $score; - $gff{$gene_id}{'mRNA'}{$mRNA_id}{'cds'}{$cds_index}{'cds_phase'} = $phase; + $gff{$feature_id}{'mRNA'}{$mRNA_id}{'cds'}{$cds_index}{'chr'} = $chr; + $gff{$feature_id}{'mRNA'}{$mRNA_id}{'cds'}{$cds_index}{'start'} = $start; + $gff{$feature_id}{'mRNA'}{$mRNA_id}{'cds'}{$cds_index}{'end'} = $end; + $gff{$feature_id}{'mRNA'}{$mRNA_id}{'cds'}{$cds_index}{'strand'} = $strand; + $gff{$feature_id}{'mRNA'}{$mRNA_id}{'cds'}{$cds_index}{'source'} = $source; + $gff{$feature_id}{'mRNA'}{$mRNA_id}{'cds'}{$cds_index}{'score'} = $score; + $gff{$feature_id}{'mRNA'}{$mRNA_id}{'cds'}{$cds_index}{'phase'} = $phase; } else { die "cannot find matching mRNA record for the CDS $cds_id derived from the mRNA $mRNA_id\n" } diff --git a/scripts/tidy_truncated_TY_gff.pl b/scripts/tidy_truncated_TY_gff.pl index bc288f0..b1fb922 100755 --- a/scripts/tidy_truncated_TY_gff.pl +++ b/scripts/tidy_truncated_TY_gff.pl @@ -24,7 +24,7 @@ /^#/ and next; /^\s*$/ and next; my ($chr, $source, $type, $start, $end, $score, $strand, $phase, $attributes) = split /\t/, $_; - my ($new_type) = ($type =~ /(TY\d+)/); + my ($new_type) = ($type =~ /(TY\d+|TSU4)/); $new_type .= "_truncated"; my $new_id = "$new_type:$chr:$start-$end:$strand"; print $output_fh "$chr\t$tag\t$new_type\t$start\t$end\t.\t$strand\t.\tID=${new_id};Name=${new_id}\n"; diff --git a/scripts/update_gff3_by_proteinortho.pl b/scripts/update_gff3_by_proteinortho.pl index be931f1..0c3270b 100755 --- a/scripts/update_gff3_by_proteinortho.pl +++ b/scripts/update_gff3_by_proteinortho.pl @@ -1,12 +1,13 @@ #!/usr/bin/perl -use warnings; +#use warnings; +use warnings FATAL => 'all'; use strict; use Getopt::Long; ############################################################## # script: update_gff3_by_proteinortho.pl # author: Jia-Xing Yue (GitHub ID: yjx1217) -# last edited: 2017.06.17 +# last edited: 2022.12.11 # description: update gff3 file based on proteinortho result: attach gene name based on gene orthology # example: perl update_gff3_by_proteinortho.pl -i query.maker.gff3 -x query.poff -r ref.PoFF.faa -q query.maker.PoFF.faa -o query.final.gff ############################################################## @@ -60,12 +61,43 @@ while (<$input_fh>) { chomp; - /^#/ and next; /^\s*$/ and next; + if (/^#/) { + print $output_fh "$_\n"; + next; + } my ($chr, $source, $type, $start, $end, $score, $strand, $phase, $attributes) = split '\t', $_; - my ($id, $name) = ($attributes =~ /ID=([^;]+);\S*Name=([^;]+)/); + my ($id, $original_name) = ($attributes =~ /ID=([^;]+);\S*Name=([^;]+)/); + # print "$_\n"; + my @original_name = (); + if ($original_name =~ /\//) { + @original_name = split /\//, $original_name; + } else { + @original_name = ($original_name); + } + my %name = (); + + # foreach my $n (@original_name) { + # if ($n !~ /\d+$/) { + # $name{$n} = 1; + # } + # } + if (($type eq "gene") and (exists $ortho_map{$id})) { - $name = $ortho_map{$id}; + my $new_name = $ortho_map{$id}; + my @new_name =(); + if ($new_name =~ /\//){ + @new_name = split /\//, $new_name; + } else { + @new_name = ($new_name); + } + foreach my $n (@new_name) { + if (not exists $name{$n}) { + $name{$n} = 1; + } + } + my @name = sort keys %name; + my $name = join '/', @name; print $output_fh "$chr\t$source\t$type\t$start\t$end\t$score\t$strand\t$phase\tID=$id;Name=$name\n"; } else { print $output_fh "$_\n";