diff --git a/docs/notes/2026-11-14_mat-discovery-strategy-taphrinomycotina.md b/docs/notes/2026-11-14_mat-discovery-strategy-taphrinomycotina.md new file mode 100644 index 00000000..4d163037 --- /dev/null +++ b/docs/notes/2026-11-14_mat-discovery-strategy-taphrinomycotina.md @@ -0,0 +1,268 @@ +# MAT discovery: search strategy and the Taphrinomycotina probe (2026-11-14) + +Status: exploratory. Nothing is curated or accepted. Source: detector run, job 32090545, code commit 9c4759269f (worktree +`run-9c47592`), preset v0.9.1, `--withheld-detail-policy on`. Results: `results/2026-11-14_taphrinomycotina_probe/` (HPCC, not committed). + +## Goal (user, 2026-11-14) +Find mating-type loci in lineages with none defined. Chytrids first (Bd the main target, with the depth/heterozygosity comparison), +Allomyces, then other lineages not yet searched. Do not repeat taxa already found to have no good candidate. Probe Taphrinomycotina. + +## What is already done (not repeated) +- Flank-first scan of 496 BFD genomes (PR #351): Mortierellomycota none; Blastocladiomycota (14 genomes, 3 Allomyces) nothing above + chance; Zoopagomycota, Kickxellomycota, Basidiobolus and Chytridiomycota give weak or lineage-specific hits only. + The Neocallimastigomycota (25) and Entomophthoromycota genome lists were part of the scan, but the lineage note does not report them. +- Bd isolate depth/heterozygosity, parent of origin and an idiomorph depth scan (PR #352): no idiomorph candidate. + +## Search strategy (proposal; the detector family gate is not changed) +1. **Detector probe with curated families** on genomes of a lineage close to a curated one. Reads out family, identity, coverage. + Treat low identity or low coverage hits as leads only. +2. **Verify a lead from structure, not score**: the HMG or homeodomain gene must have the domain (Pfam), the genes must be adjacent + as in the curated record, and a second genome of the same genus should show the same layout. +3. **Population signal where isolates exist**: for a species with many isolates (Bd), look for presence/absence or hemizygous + windows across isolates (done for Bd; negative). +4. **Lineages with two or three genomes (Allomyces)**: no population signal is possible. Use the flank-first scan plus a search with + pheromone-receptor and HMG-box families, then test layout across the three genomes. I have not run a new Allomyces search. +5. **Record unsearched lineages before scanning**: compare the BFD phylum/class list with the lists already scanned, scan only the gaps. + +## Taphrinomycotina probe +33 genomes searched (one of 34 was suppressed): Taphrina 13, Schizosaccharomyces 8 searched, 9 listed (not S. pombe, which has curated records), +Protomyces 8, Saitoella 2, Neolecta 1, Savitreella 1. Pneumocystis is not in `samples.csv` by class and was not run. + +| result | genomes | +|---|---| +| `mat1` family (Schizosaccharomyces curated), mat1-Mc/Pc/Pi found | 7 of the 8 Schizosaccharomyces genomes searched; none in *S. lindneri* | +| `PM` family, matMc + matPi (curated from *Taphrina deformans*), idiomorph M, gene only | 4 Protomyces genomes (inouyei, macrosporus, two lactucae-debilis), *Taphrina confusa* | +| `MAT` family (Pezizomycotina references) | 16 calls across Taphrina, Protomyces, Saitoella, Neolecta | +| no call at all | 10 genomes: *Taphrina betulina*, *T. communis*, *T.* sp. SM11, *T. wiesneri* (one genome), *Protomyces arabidopsidicola*, *P. gravidus*, *P. pachydermus*, *Saitoella complicata*, *Savitreella*, *S. lindneri* | + +Strength of the evidence (identity / coverage to the reference, from `detection_report.yaml`): +- `PM` calls: matMc 44 to 69% identity at 74% coverage; matPi 42 to 59% at 33 to 89% coverage. Strongest: *Taphrina confusa* + (matMc 69.2% / 74.5%, matPi 42.2% / 89.0%). Confidence `medium`. Retracted after the structural follow-up below: the Protomyces calls are not distinguishable from background HMG genes; only the *T. confusa* matMc gene stays a lead. +- `MAT` family calls: identity 17 to 55%, coverage mostly 10 to 79%, references from Pezizomycotina. I do not treat them as + mating-type calls. The 5 *T. deformans* genomes repeat one MAT1-2-1 hit at 44.9% identity and 17.9% coverage. +- `mat1` calls agree with the curated *S. pombe* family; they are not an independent check. + +Not verified: that the `PM` hits contain the HMG domain, that the two genes are adjacent in the same layout as *T. deformans*, +and that the 10 empty genomes lack a locus (the detector recall for distant lineages is limited: see the holdout notes). + +## Next +- (Done, see the follow-up section) Pfam and gene-order check of the `PM` leads (Protomyces x4, *T. confusa*), then a second look at the 10 empty genomes with the + flank-first scan using matMc/matPi as controls. +- Draft candidate records only after a curator reads the structural check. + +## Lineage coverage survey (added 2026-11-14) +BFD `samples.csv` (23,679 rows) was matched to the genomes in the flank-first scan (496). Scanned: Basidiobolomycota 18, Blastocladiomycota 14, +Chytridiomycota 83, Entomophthoromycota 9, Glomeromycota 59, Kickxellomycota 177, Mortierellomycota 100, Neocallimastigomycota 25, Zoopagomycota 11. +Not scanned before and now scanned with the same stage 1 (job 32090926, 141 genomes): Aphelidiomycota 2, Calcarisporiellomycota 1, +Monoblepharomycota 3, Olpidiomycota 1, Rozellomycota 1, one unclassified, Microsporidia 132. Not scanned because the BFD sample name did not map +to an annotation folder (name matching is imperfect, so counts are approximate): some Chytridiomycota, Entomophthoromycota, Kickxellomycota and +Neocallimastigomycota genomes, Sanchytriomycota 2, 31 Microsporidia and 2 Aphelidiomycota. Mucoromycota (Mucoromycotina) has curated MAT records and was not part of this survey. + +Result table: `2026-11-14_mat-discovery-tables/gap_lineages_summary.tsv` (same columns as the lineage note of PR #351). +- Small phyla (9 genomes): no HD1+HD2 locus and no 2xHomeo locus. One `HMG+Homeo` locus each in the Calcarisporiella genome and the Rozella genome, and + `sexM/sexP` control hits in 4 genomes. A single genome per lineage; not tested against chance. +- Microsporidia (132 genomes): 65 genomes have two Pfam Homeodomain genes within 5 genes. Random placement of the same number of genes gives a mean of + 18.8 genomes (maximum 28 in 200 shuffles), so the adjacency is more than chance. The median genome has 8 Homeodomain-hit genes, 79 of 154 + neighbouring pairs are on the same strand, and 104 pairs have no gene between them. That fits a tandem-duplicated family, not a MAT locus. No further test done. + +## Allomyces probe (added 2026-11-14) +`scripts/flank_idiomorph_probe.py` (tests in `tests/test_flank_idiomorph_probe.py`). Stage 1 had found 35, 45 and 63 HMG/Homeodomain candidate genes in +*A. arbusculus* Burma 1F, *A. javanicus* California 12 and *A. macrogynus* ATCC 38327, all as single-gene loci (no adjacent pair). The new test asks, for each +candidate, whether its flanking genes form a syntenic block in the other genomes and whether the candidate is conserved there, replaced by another +HMG/Homeodomain gene, or missing. +- 84 candidate genes; 152 gene-by-genome comparisons were testable. Not conserved (absent or replaced): 56 of 152 = 0.37. +- Baseline, random non-candidate genes through the same test: 944 of 2,529 = 0.37. The candidates are not more often non-conserved than ordinary genes + (per pair 0.19 to 0.48 against 0.13 to 0.54). +- 15 genes are absent or replaced in both other genomes, for example F5BE82F7_007902 (HMG_box, *A. macrogynus*; absent in both others, 4 flank genes each in a syntenic block). + With a 0.37 background rate these are expected by chance; none is a call. F5BE82F7_000331 (*A. macrogynus*, HMG_box with a weak sexP hit, E 9.3e-8) was not + singled out by the test. +- Not tested: gene order beyond 25 genes, divergent alleles that fall below diamond E 1e-5, and assembly gaps. No new Allomyces candidate. Allomyces results are negative. + +## Structural follow-up of the PM leads and rescan of the 10 empty genomes (added 2026-11-14) +Correction: the `PM` calls are in 4 Protomyces genomes plus *T. confusa* (5 genomes), not 5 Protomyces genomes plus *T. confusa* as written above before this edit. + +Script `scripts/pm_lead_followup.py` (tests in `tests/test_pm_lead_followup.py`); job 32091035; tables in `2026-11-14_mat-discovery-tables/` +(`pm_lead_summary.tsv`, `pm_lead_genes.tsv`, `empty_scan_genes.tsv`, `empty_scan_pairs.tsv`). Pfam is `hmg_homeo.hmm` (HMG_box, HMG_box_2, Homeodomain, GA cutoff). + +PM leads (gene under each detector hit, tested with Pfam): +| genome | matMc gene | HMG-box | matPi gene | homeodomain | +|---|---|---|---|---| +| *Protomyces inouyei* | F7C0A940_005637 | yes | no gene under the hit | n/a | +| *P. lactucae-debilis* NRRL YB-4353 | F21A9957_003986 | yes | no gene under the hit | n/a | +| *P. lactucae-debilis* 12-1054 | F003EF48_006292 | yes | no gene under the hit | n/a | +| *P. macrosporus* | no gene under the hit | n/a | FCFD2032_003005 | no | +| *Taphrina confusa* | F57803F5_005977 | yes | no gene under the hit | n/a | +- In no genome do a matMc gene and a matPi gene sit next to each other. The two-gene `PM` structure is not confirmed anywhere. The matMc genes are HMG-box genes; the matPi hit has no Pfam homeodomain in *P. macrosporus* and no predicted gene in the other four. **[RETRACTED 2026-11-14, see the genome-level matPi search below: matPi is unannotated, not absent; a homeodomain region lies 7 to 14 kb from the matMc-like gene in 4 of these genomes]** +- The Protomyces hits are not specific. The matMc hits are 44% identical, and the ten genomes with no call also have HMG genes that match the curated mat1-Mc at 46 to 49% (for example *P. gravidus* 46.1%, *P. pachydermus* 48.6%). The Protomyces `PM` calls are indistinguishable from background HMG genes in the same genomes. **[RETRACTED 2026-11-14, see the genome-level matPi search below: the HMG gene is generic, but its adjacency to a homeodomain region is not background]** +- *T. confusa* is different: its matMc gene is 69.2% identical to the curated *T. deformans* matMc. + +Rescan of the 10 genomes with no call (Pfam plus diamond, E 1e-3, against the 14 curated PM and mat1 proteins): +- Each genome has 5 to 7 HMG-box genes and 2 to 7 homeodomain genes (domain genes per genome 7 to 14). No genome has an HMG and a homeodomain gene, or two domain genes, within 5 genes of each other (`scan_pairs` is empty). +- *Taphrina wiesneri* CBS 275.28 has a strong matMc-like gene (72.5% identity, E 7.6e-110) that the detector did not report as a locus, because no second gene was found next to it. No other genome has a hit above 50% identity to matMc. +- Best matPi hits (31 to 55% identity) are generic homeodomain genes that every genome has; they carry no locus information. + +Conclusion, with limits: no Taphrinomycotina genome tested shows a two-gene PM locus. A matMc-like gene (about 70% identity to *T. deformans*) is present in *T. confusa* and *T. wiesneri* CBS 275.28 with no partner nearby; the 3 other *Taphrina* genomes with no call have no such gene. I did not look for a matPi that sits far from matMc (the curated record places matMc and matPi on separate contigs of the old assembly), and the layout **[RETRACTED 2026-11-14, see the genome-level matPi search below: a matMc-like HMG gene with a homeodomain region next to it exists in 6 genomes]** +test cannot see a locus split over contigs. The probe finds no new candidate to curate; the only lead worth keeping is the matMc-like gene in the two *Taphrina* genomes. **[RETRACTED 2026-11-14, see the genome-level matPi search below: the leads are the HMG + homeodomain pairs below]** + +## matPi search and positive control (added 2026-11-14) +Scan of the 5 PM-lead genomes, the 10 no-call genomes and the 4 *T. deformans* genomes for homeodomain genes similar to the curated matPi (job 32091046, 32091068; tables `pm_genomes_scan_genes.tsv`, `taphrina_deformans_scan_genes.tsv`, `empty_scan_genes.tsv`). +- Positive control: in all 4 *T. deformans* genomes the curated matMc matches an HMG-box gene at 100% identity. The curated matPi matches no gene better than 49.2%, a generic homeodomain gene on a different contig from the matMc gene. The curated *T. deformans* matPi has no exact match in any *T. deformans* genome. The record already says matPi is unresolved; this is a second reason to review it. I did not trace where the curated matPi sequence comes from. +- Every *Taphrina* genome has one homeodomain gene at 47.6 to 50.0% identity to the curated matPi, including the 3 genomes with no matMc-like gene. *T. confusa* (50.0%) and *T. wiesneri* CBS 275.28 (50.0%) have it on a different contig from the matMc-like gene, as in *T. deformans*. Identity cannot tell a matPi ortholog from the other homeodomain genes (the top hit stays within 2 points of the *T. deformans* value), so I cannot say whether these genes are matPi. No homeodomain gene is closer than 55.2% to the curated matPi in any genome tested (*Protomyces arabidopsidicola* 55.2%). +- Protomyces genomes with a PM call have no homeodomain gene above the scan threshold for matPi (E 1e-3), apart from the *P. arabidopsidicola* hit above. + +## Follow-up of the leads in the other lineages (added 2026-11-14) +Chance test (`scripts/adjacent_pair_null.py`, 500 random placements per genome; `gap_adjacent_pair_null.tsv`). With 6 lineages and 3 pair types, 18 tests were run: one p of 0.05 or below is expected by chance. + +| lineage | pair type | observed genomes | expected mean (max) | p | +|---|---|---|---|---| +| Microsporidia (132) | 2xHomeo | 65 | 19.0 (30) | 0.002 (floor of 500 draws) | +| Microsporidia | HMG+Homeo | 0 | 4.5 (10) | 1.0 | +| Monoblepharomycota (3) | 2xHMG | 2 | 0.2 (2) | 0.014 | +| Rozellomycota clade (1) | HMG+Homeo | 1 | 0.0 (1) | 0.050 | +| Calcarisporiellomycota (1) | HMG+Homeo | 1 | 0.5 (1) | 0.46 | +| Aphelidiomycota (2), Olpidiomycota (1) | all | 0 | 0.0 to 0.0 | 1.0 | + +- **Microsporidia 2xHomeo** is a real excess (65 against 19.0). 55.4% of the pairs are on the same strand and 104 of 154 neighbours have no gene between them. This fits a tandem-duplicated family and not one locus per genome. Not followed further. +- **Monoblepharomycota 2xHMG** comes from *Hyaloraphidium curvatum* (one adjacent same-strand HMG pair) and *Gonapodya prolifera* (4 separate HMG pairs on 4 contigs). Four pairs in one genome point to a repeated family, not one MAT locus. All genes are annotated as hypothetical proteins. The other *Gonapodya* genome has no pair. +- **Rozellomycota clade (*Paramicrosporidium saccamoebae* KSL3)**: HMG-box gene FE6F46FC_001951 and homeodomain gene FE6F46FC_001954 on MTSL01000117.1 with two genes between them (the HMG gene on `-`, the homeodomain gene on `+`, divergent). Neither has a hit to the AMF HD1/HD2 or the Mucorales sexM/sexP controls at E 1e-5. This is the only compact HMG+homeodomain arrangement among the new lineages; it is one genome, uncorrected p = 0.05, and cannot be tested across genomes. Not a candidate record. +- **Calcarisporiella**: pair not above chance. +- **Aphelidiomycota, Olpidiomycota**: no pair. + +## Strategy status (checked against the five steps above) +| step | status | +|---|---| +| 1. Detector probe with curated families | done for Taphrinomycotina (33 genomes) and Antarctolithica earlier | +| 2. Structural verification of leads | done for PM leads (Pfam, gene order, positive control) and for the new-lineage leads (gene order, products, chance test). Result: no lead survives except the matMc-like gene in two *Taphrina* genomes and the single *Paramicrosporidium* pair | +| 3. Population signal | done for Bd (negative) | +| 4. Small-genome-count lineages | done for Allomyces (negative against a random-gene baseline) | +| 5. Record unsearched lineages | done to the limit set by the data (see the coverage recount and the annotation-free search at the end); the 48 fragmentary assemblies were searched without gene models, with no pair found, which is weak evidence | +Open: a curator check of the matPi reference of the *T. deformans* record; any test of the *Paramicrosporidium* pair needs a second genome of that clade. + +## Genomes that were not in any scan, and what was done (added 2026-11-14) +The first survey left 65 genomes (target phyla only) outside the 496 + 141 scanned genomes. A name-matching fix and a look at each folder (table `unscanned_genomes_status.tsv`) gave (65 genomes: 3 annotated + 48 skipped + 10 without folder + 4 without proteome; 58 stay unscanned): + +| status | genomes | action | +|---|---|---| +| annotated, scannable | 3 | stage 1 run (job 32091100): *Homolaphlyctis polyrhiza*, *Vavraia culicis*, *Rhizophagus irregularis* DAOM_181602. Only the Rhizophagus genome has an HD1+HD2 locus: the known AMF locus, so it works as a positive control | +| BFD annotation skipped (`skipped_too_small`) | 48 | 4 assemblies (three of 11 to 24 Mb in 44 to 495 contigs, and a 1.9 Mb *Synchytrium endobioticum* assembly in 203 contigs) got Augustus gene prediction and stage 1 (below). The other 44 are fragments; they include *Globomyces pollinis-pini* Arg68 (21.4 Mb in 983 contigs, about 22 kb per contig), which I did not predict of hundreds to thousands of contigs (13 Kickxellomycota at about 8 Mb in 1,600 to 2,000 contigs; Microsporidia 0.7 to 7.5 Mb in 278 to 2,245 contigs; Sanchytriomycota 4.2 and 6.3 Mb in 549 and 897 contigs) and were not scanned. A flank-first scan needs several genes per contig | +| no annotation folder | 10 (Chytridiomycota 4, Entomophthoromycota 2, Glomeromycota 2, Microsporidia 1, one unclassified) | not scanned: no gene models. Includes a *Batrachochytrium dendrobatidis* genome, *Entomophthora muscae*, *Massospora cicadina*, *Gigaspora margarita*, *Mitosporidium daphniae* | +| folder without proteome | 4 (Entomophthoromycota 1, Microsporidia 3) | not scanned | + +Augustus gene prediction (`scripts/augustus_gene_predict.slurm`, `scripts/augustus_proteins.py`, model `rhizopus_oryzae`, not trained on these lineages; jobs 32092338, stage 1 job 32092954; table `augustus_genomes_candidates.tsv`): +| genome | contigs | genes predicted | HMG/Homeodomain candidates | result | +|---|---|---|---|---| +| *Amoeboaphelidium protococcarum* FD95 | 44 | 4,898 | 4 | no HD1+HD2, no HMG+flank, no pair | +| *A. protococcarum* X5 | 155 | 9,397 | 5 | same | +| *Rozella allomycis* CSF55 | 495 | 3,527 | 9 | same | +| *Synchytrium endobioticum* 18_T1 | 203 (1.9 Mb assembly) | 821 | 2 | partial assembly; too little sequence to test | +The summary count for the four genomes: HD1+HD2 0, HMG+flank 0, 2xHomeo 0, HMG+Homeo 0, sexM/sexP control hits in 2 genomes. The total candidate counts in stage 1 (domain hits plus control hits; 11, 17, 15 and 2) are lower than in BFD-annotated genomes of related lineages (13 to 71: *Olpidium bornovanus* 13, *Aphelidium insulamus* 19, *Gonapodya* 31 and 47, *Calcarisporiella thermophila* 71). That is what a mismatched Augustus model would give, but I did not test it. It suggests that these predicted gene sets miss domain genes, so a negative here is weak evidence. The *Synchytrium* assembly is only 1.9 Mb, so it says nothing about the species. A proper test needs BFD-style annotation of these assemblies (funannotate) or RNA-based gene models. + +Coverage conclusion: of the genomes in the target phyla that I could map, every one with gene models has been through at least one stage-1 scan, apart from those listed as not scanned above (58). The lineage conclusions stand only for those. In particular, for Sanchytriomycota, Kickxellomycota fragments, Microsporidia fragments and the Entomophthoromycota without annotation, nothing was tested. + +## Coverage recount and final status (added 2026-11-14; supersedes the counts of the two sections above) +Recount by locus tag (the `LOCUSTAG` column of `samples.csv` against the gene IDs in all stage-1 outputs), which does not depend on folder names. The earlier name-based counts (58 unscanned; 10 genomes without an annotation folder) were partly a naming artefact: for example *Entomophthora muscae*, *Massospora cicadina*, *Gigaspora margarita* and a *Chytridiomycetes* sp. had been scanned in the first run under another folder name. +- Target phyla in `samples.csv`: 699 samples. After the first two scans, 61 had no stage-1 output by locus tag; 4 of these were the Augustus genomes of the previous section, so 57 were truly unscanned. All 57 lack BFD gene models (`unscanned_by_locustag.tsv`). Every target-phylum genome that has BFD gene models has been through stage 1. +- Contiguity of the 57 (`unscanned_assembly_stats.tsv`): N50 of 50 kb or more in 5, 20 kb or more in 9; one has no genome file. +- Seven more assemblies were given Augustus gene models (same caveat: `rhizopus_oryzae` model, not trained on these lineages) and stage 1: both *Globomyces* assemblies (chytrids), two *Mitosporidium daphniae* assemblies and three *Spraguea lophii* assemblies (jobs 32093014, 32093248; stage 1 jobs 32093239, 32093330). + +| genome | contigs / N50 | genes | candidates | result | +|---|---|---|---|---| +| *Globomyces pollinis-pini* Arg68 | 983 / 51 kb | 8,406 | 17 HMG, 3 Homeodomain | 2xHMG pairs, conserved HMG cluster (below) | +| *Globomyces* sp. JEL0801 | 800 / 46 kb | 5,960 | 10 HMG, 2 Homeodomain | 2xHMG pairs, same cluster | +| *Mitosporidium daphniae* (ASM5257605) | 10 / 864 kb | 2,420 | 4 Homeodomain | no HMG gene, no pair | +| *M. daphniae* UGP1 | 273 / 35 kb | 2,359 | 7 | no pair | +| *Spraguea lophii* x3 | 143 to 158 / 97 to 99 kb | 356 to 362 | 0 | gene sets far too small (a microsporidian of 5.6 Mb should have about 2,000 genes); not testable | + +Globomyces (chytrid) follow-up, with the one genus where two genomes can be compared (`flank_idiomorph_probe.py --ann`, tables `globomyces_probe.tsv`, `globomyces_baseline.tsv`): +- 32 HMG/Homeodomain candidates; 21 testable; 6 not conserved (0.29) against 112 of 728 random genes (0.15). Six against about 3 expected; I did not compute an exact p (a rough binomial tail is about 0.1), so this is not significant. +- The 2xHMG excess (2 of 3 genomes, p 0.008 in `adjacent_pair_null_aug2.tsv`) rests on 3 genomes and several tests and is not taken as evidence. +- The conserved block with an HMG cluster (Glopol1 MU621598.1 genes 7540 to 7545; JEL0801 JADGIX010000364.1 genes 5331 to 5335) holds two HMG gene types. The long type (263 aa) is 99.2% identical between the species and in the same position. The short type (138 aa) is 76.8% identical between the species and occurs as two copies 97.8% identical to each other in Glopol1 and one copy in JEL0801: a species-specific tandem duplication. Both species carry both genes. The cluster is not idiomorph-like. Two of its genes have a weak sexM hit (E about 1e-7); I do not treat that as MAT evidence. + +Final coverage: 50 target-phylum genomes remain unscanned (fragmentary assemblies, no genome file, or small N50) and 3 more (*Spraguea* sets) were run but are untestable: 53 genomes with no usable result, and the 1.9 Mb *Synchytrium* assembly (11 genomes in total went through Augustus). The unscanned set is mostly Microsporidia (about 25 after the five run here), 13 Kickxellomycota fragments, and a few Entomophthoromycota, Chytridiomycota and Sanchytriomycota genomes. The lineage conclusions of this note hold for scanned genomes only. A test of the rest needs BFD-style annotation (funannotate) or RNA-based gene models, and assemblies with an N50 below 20 kb are unlikely to help even then. + +Validation of the strategy: step 2 (structural verification) was applied in 5 lineages. In Taphrinomycotina it removed the Protomyces leads, in Allomyces it found no excess against a random baseline, in *Globomyces* it explained an apparent difference as a tandem duplication, and in the other new lineages (Rozellomycota, Monoblepharomycota, Microsporidia, Calcarisporiellomycota) it could not test the leads across genomes, because each lineage has one genome or the arrangement looks like a tandem family. For those lineages the claims stay "no evidence", not "absent". + +### Why the last 50 genomes are not scanned (checked 2026-11-14) +`unscanned_assembly_stats.tsv`: of the 50 genomes not run, the median N50 is 5.4 kb (maximum 41 kb) and the median assembly has 938 contigs; one has no genome file. Only three have an N50 above 15 kb: a 0.5 Mb *Vairimorpha* sp. fragment (12 contigs), the *Pleurotus ostreatus* x *Saccharomyces cerevisiae* fusant (not a lineage without a defined MAT) and *Metchnikovella incurvata* (4.6 Mb, N50 17.6 kb). A flank-first scan needs about 11 genes on one contig (a window of 5 on each side), which is a contig of 20 kb or more in these gene-poor genomes. Annotating these assemblies (funannotate or otherwise) would give gene models but not the contiguity the method needs. This is a limit of the assemblies, so the coverage statement stays: no usable result for these 50 genomes. + +## Genome-level matPi search: the PM-like pair is present in 6 of 17 genomes (added 2026-11-14; corrects statements above) +The BFD gene models do not include the homeodomain gene of this locus (the record of *T. deformans* says the same). The curated *T. deformans* matPi is a 181 aa partial protein from the old assembly, and its homeodomain region has no gene model in the BFD annotation either. So an annotation-based search misses it. I searched the assemblies directly. + +Scripts: `matpi_tblastn.py` (tblastn of the 4 curated matPi proteins against each assembly), `region_pfam_check.py` (six-frame translation of a region and Pfam), `matpi_hmg_adjacency.py` (distance of every HMG-box gene to the homeodomain-like regions, with a permutation null). Jobs: tblastn and region checks run on the HPCC 2026-11-14; tests in `tests/test_region_pfam_check.py` (4 tests). Tables: `matpi_genome_search_hits.tsv`, `matpi_region_pfam.tsv`, `matpi_hmg_adjacency_pairs.tsv`, `matpi_hmg_adjacency_summary.tsv`, `matpi_hmg_adjacency_null.tsv`. 17 genomes gave hits (3 *T. deformans*, other *Taphrina* 5, *Protomyces* 7, *Savitreella*, *Saitoella*); *T. deformans* JCM22205 has no genome file in the library, and *Schizosaccharomyces lindneri* gave no hit. + +- Positive control: in all three *T. deformans* genomes with a genome file the curated matPi matches an unannotated region at 100% identity (E 1e-119). In A2 it lies on the same scaffold as the matMc gene, 40,370 bp away (RHGF01000006.1: matPi 51,688 to 52,236, matMc 92,606 to 93,298). In CBS 355.35 and PYCC 5710 the two sit on different contigs. +- The top-ranked matPi-like region lies on the same contig as an HMG-box gene in: + +| genome | HMG gene | region (identity, E) | distance | Pfam in the region (six-frame ORF) | +|---|---|---|---|---| +| *Protomyces inouyei* | F7C0A940_005637 | 45.2%, 2e-18 | 7,165 bp | Homeodomain, 167 aa, E 1.1e-10 | +| *P. lactucae-debilis* NRRL YB-4353 | F21A9957_003986 | 45.2%, 2e-18 | 7,164 bp | Homeodomain, 151 aa, E 1e-10 | +| *P. lactucae-debilis* 12-1054 | F003EF48_006292 | 45.2%, 2e-18 | 7,152 bp | Homeodomain, 151 aa, E 1e-10 | +| *Taphrina confusa* | F57803F5_005977 | 46.5%, 2e-46 | 14,057 bp | Homeodomain, 168 aa, E 1.1e-8 | +| *T. communis* | F8DCC00A_005608 | 52.4%, 8e-54 | 18,060 bp | Homeodomain, 184 aa, E 1.5e-9 | +| *T. betulina* | FC6B0312_004634 | 43.0%, 2e-26 | 10,297 bp | no Pfam ORF of 40 aa or more in the region: weaker | +| *T. deformans* A2 (control) | F891DC7E_001655 | 100%, 1e-119 | 40,370 bp | Homeodomain, 189 aa, E 1.5e-9 | +Negative control, a 549 bp stretch 20 kb from the A2 hit: no Pfam ORF. *Savitreella* has a pair at 39 kb (not within 20 kb). +- Permutation null (`matpi_hmg_adjacency_null.tsv`): an HMG gene within 20 kb of a matPi-like region in 6 of 17 genomes; random placement of the same number of HMG genes at random gene positions gives a mean of 0.71 genomes (maximum 5 in 2,000 draws), p = 0.0005 (the floor with 2,000 draws). The genomes are not independent: there are two *P. lactucae-debilis* assemblies, and the three Protomyces offsets are the same (7.15 to 7.17 kb), which is what a conserved locus would give but also what one lineage would give. +- The 20 kb result includes genomes with no detector call (*T. communis*, *T. betulina*): the detector missed them because only one of the two genes had a model. +- Not adjacent: *P. macrosporus*, *P. arabidopsidicola*, *P. gravidus*, *P. pachydermus*, *Taphrina* sp. SM11, *T. wiesneri*, *Saitoella*, and two *T. deformans* assemblies (contigs may be broken at the locus). + +What this means, with limits. A homeodomain gene is present in these genomes whether or not an HMG gene is next to it (for example *P. gravidus*, *T. communis* have unannotated homeodomain ORFs), so the homeodomain gene alone is not MAT evidence. The evidence is the conserved physical pairing of an HMG-box gene and a homeodomain gene, which is the arrangement of the curated *T. deformans* locus (matMc plus matPi) and of the Pneumocystis PM locus. The HMG genes in Protomyces are only 44 to 49% identical to the curated matMc and could be any HMG gene; the pairing, not the HMG identity, carries the evidence. I did not test that the HMG genes are orthologous across genomes, I did not look at expression, and the mating-type role of this locus in these species is not shown. The candidate set, for a curator: *P. inouyei*, *P. lactucae-debilis* (two assemblies), *T. confusa*, *T. communis* and *T. betulina* (weaker); the orthology section below narrows it to *P. inouyei*, *P. lactucae-debilis* and *T. confusa*. +Next test (done in the orthology section below): gene models and orthology of both genes. + +## Cross-genome orthology of the HMG + homeodomain pair (added 2026-11-14; closes step 2 for Taphrinomycotina) +Scripts: `pm_locus_models.py` (exonerate gene models and a diamond reciprocal-best-hit test; tests in `tests/test_pm_locus_models.py`). Tables: `pm_locus_homeodomain_models.tsv`, `pm_locus_orthology.tsv`, `pm_locus_orthology_proteins.faa`, `matpi_region_pfam.tsv` (refreshed). A bug found on the way: the ORF end coordinate in `region_pfam_check.py` was one base too high (exclusive reported as inclusive), which shifted the frame when re-extracting a reverse-strand ORF; fixed and tested, and `matpi_region_pfam.tsv` was regenerated. The Pfam hits themselves were unaffected. + +Gene models of the homeodomain gene (exonerate protein2genome against the curated matPi proteins; the BFD annotation has none): +| genome | strand | CDS | aa | exons | Pfam | +|---|---|---|---|---|---| +| *T. deformans* A2 (control) | + | 51,694 to 52,236 | 181 | 1 | Homeodomain; reproduces the curated partial matPi | +| *T. confusa* | - | 181,602 to 182,084 | 161 | 1 | Homeodomain | +| *T. communis* | - | 80,258 to 80,794 | 179 | 1 | Homeodomain | +| *T. betulina* | + | 16,268 to 16,750 | 161 | 1 | none | +| *Protomyces inouyei*, *P. lactucae-debilis* x2 | +/- | 59 aa homeodomain core only | 59 | 1 | Homeodomain | +The Protomyces models cover only the homeodomain core; the full stop-free ORFs of 151 to 167 aa (six-frame) were used for the orthology test. None of these models has an intron model beyond what exonerate found, and none is supported by RNA. + +Orthology test: for each locus protein (the HMG gene next to the homeodomain region, and the homeodomain ORF), the best hit in every other genome among that genome's proteins of the same domain class (all Pfam HMG-box genes, or all homeodomain genes, plus the locus protein), and whether that best hit is the other genome's locus protein and reciprocal. Genomes: 3 Protomyces assemblies, *T. confusa*, *T. communis*, *T. betulina*, *T. deformans* A2. +- Homeodomain locus protein (6 genomes with a locus ORF; *T. betulina* has none): in all 30 comparisons among these six the best hit is the other genome's locus protein and it is reciprocal. Identity 32 to 53% over 139 to 171 aa: *T. deformans* A2 against Protomyces 32.5 to 34.0%, against *T. confusa* 43.3%, against *T. communis* 52.6%; the Protomyces assemblies are 100% identical to each other over 151 aa. So the unannotated homeodomain gene beside the HMG gene is the same gene in all six genomes, and it is the gene of the curated *T. deformans* matPi region. +- HMG locus protein: among the Protomyces assemblies, *T. confusa* and *T. deformans* A2 the locus HMG protein is the reciprocal best hit of the others' locus protein in all 20 comparisons: A2 against Protomyces 43.4 to 45.0%, against *T. confusa* 69.2%; *P. inouyei* against the *P. lactucae-debilis* assemblies 99 to 100%. It is also the best hit among the genome's other 5 to 6 HMG genes. So it is the ortholog of the curated *T. deformans* matMc, although the Protomyces identity (44%) is low. +- *T. communis* and *T. betulina* are different: their adjacent HMG proteins are reciprocal best hits of each other (41.4%) but have no hit (E 1e-3) to the matMc orthologs in the other genomes. The HMG gene next to the conserved homeodomain gene there is not the matMc ortholog (or has diverged beyond detection). The *T. communis* homeodomain gene is orthologous (A2 52.6%). + +Result with limits. A matMc-ortholog HMG gene and a matPi-ortholog homeodomain gene lie 7 to 14 kb apart on one contig in three Protomyces assemblies and *T. confusa*, and 40 kb apart in *T. deformans* A2, which matches the fused PM arrangement in the curated *T. deformans* record and in Pneumocystis. This is the structural verification that the detector call lacked. It does not show a mating-type function. What is not shown: expression; that the locus is fused in one copy per strain (homothallic-like) as opposed to two alleles (no allele difference was seen: *P. inouyei* and the two *P. lactucae-debilis* assemblies are 99 to 100% identical at both genes); that the pair is the only copy (the genomes have 5 to 7 HMG genes and 2 to 7 homeodomain-hit genes). *P. inouyei* contig QXDQ01000433.1 is only 36.8 kb long and the HMG gene ends 0.5 kb from its end, so the locus is cut at that contig end. The *P. lactucae-debilis* assemblies are two assemblies of one species and are not independent. Candidate loci for a curator: *P. inouyei*, *P. lactucae-debilis* (two assemblies), *T. confusa* (matMc and matPi orthologs). *T. communis* has the matPi ortholog beside a different HMG gene and *T. betulina* has no Pfam homeodomain ORF there: both are not confirmed. + +## Expression of the HMG + homeodomain pair (added 2026-11-14) +Public RNA-seq exists for two genomes that carry the locus (ENA, library source TRANSCRIPTOMIC): *T. deformans* A2 (SRR8132818, 27,496,815 read pairs, unstranded) and *P. lactucae-debilis* 12-1054 (SRR5576147, 79,174,280 read pairs). Both runs were fetched with `prefetch`, converted with `fasterq-dump`, and both mates matched the ENA read count exactly. Reads were mapped with hisat2 (`--dta`, introns up to 5 kb); depth over every annotated gene and over the unannotated homeodomain region comes from `samtools bedcov`. Scripts: `rnaseq_locus_expression.slurm`, `locus_expression.py` (tests in `tests/test_locus_expression.py`); jobs 32093453 and 32093454; tables `rnaseq_*_locus_expression.tsv`, `rnaseq_*_spliced.tsv`. + +| genome (run) | overall alignment | HMG gene (matMc ortholog) | unannotated homeodomain region | spliced reads in the region | +|---|---|---|---|---| +| *T. deformans* A2 (SRR8132818) | 91.1% | F891DC7E_001655: 664x, 82.6th percentile | RHGF01000006.1:51,685 to 52,252: 215x, 53.3rd percentile | 66 of 1,676 reads | +| *P. lactucae-debilis* 12-1054 (SRR5576147) | 56.2% | F003EF48_006292: 1,388x, 79.1st percentile | NW_024468021.1:38,146 to 38,599: 1,432x, 79.8th percentile | 157 of 5,477 reads | +The percentile is the share of annotated genes of 300 bp or more with a lower mean depth in the same library; mean depth is not corrected for gene length effects or library size, so it only compares genes within one library. +- Both loci are transcribed in both species. The unannotated homeodomain region is covered at every base (801 of 801 in A2, 551 of 551 in 12-1054) at a depth at or above the median gene. So the homeodomain gene is a real transcribed region that BFD did not annotate, in the genome that carries the curated *T. deformans* matPi and in *Protomyces*. +- *T. deformans* A2: four short introns (43 to 60 bp; 1,361 to 2,427 reads each) lie 100 to 470 bp downstream of the homeodomain exon (52,342 to 52,392; 52,465 to 52,507; 52,555 to 52,614; 52,658 to 52,710), with depth peaks at 52,300 to 52,400. The run is unstranded, so I cannot say whether these exons belong to the same gene. The curated protein has its homeodomain at the C-terminus, which would put further exons upstream; my single-exon model is therefore not verified, and the full gene structure is open. +- *P. lactucae-debilis* 12-1054: the strongest junctions in the 4 kb window (39,067 to 40,515) lie 1 to 2 kb from the homeodomain ORF and belong to other genes. +- Limits: one library per species, conditions unknown; the 12-1054 run aligns at 56.2% (a mixed sample or divergence; not examined); this shows transcription, not a mating role, and no comparison between mating types or conditions was made. + +### Transcript assembly at the locus (added 2026-11-14) +StringTie 3.0.3 on the two alignments (4,910 transcripts in A2, 3,326 in 12-1054), spliced sequences with `gffread -w`, and `scripts/locus_transcripts.py` (Pfam on every ORF of 30 aa or more in the six frames; tests in `tests/test_locus_expression.py`); table `rnaseq_locus_transcripts.tsv`. +- *P. lactucae-debilis* 12-1054: three minus-strand transcripts (3, 5 and 7 exons; 34,271 to 38,767 or 40,155; spliced length 4.3 to 5.6 kb) span the homeodomain region (38,146 to 38,599). Each contains a homeodomain ORF (135 to 151 aa, E 3 to 5e-10) in a frame of the transcript as written, so the homeodomain ORF is on the same strand as the assembled transcript. The longest ORF of these transcripts (462 aa) carries no Pfam domain. So the homeodomain ORF is part of a spliced transcript, not an isolated exon. +- *T. deformans* A2: two minus-strand transcripts (4 and 5 exons; 50,131 to 52,842; 2.5 kb spliced) span the region. They contain a 189 aa homeodomain ORF (E 3.3e-9) in the reverse frame (-1) of the transcript as written, that is, on the strand opposite to the assembled transcript. The run is unstranded, so StringTie takes the strand from splice motifs. Two readings fit the data: a plus-strand homeodomain gene overlapped by a minus-strand gene, or a strand mis-assignment. I cannot choose between them. A stranded library, or a long-read transcript, would. +- A separate plus-strand transcript (38,896 to 39,637; 208 aa ORF) in 12-1054 carries no Pfam domain. +- What this settles: the homeodomain region is spliced into multi-exon transcripts in both genomes and the homeodomain ORF is present in the spliced sequence. What it does not settle: the strand and the exact exons of the homeodomain gene in A2, the full-length protein in either genome, and whether the transcripts correspond to the matPi gene of Pneumocystis (whose homeodomain is C-terminal). + +### Where the curated *T. deformans* matPi sequence comes from (traced 2026-11-14) +`db/Ascomycota/Taphrinales/5011_unknown-1_PM_combined/proteins.faa` holds a 181 aa matPi. It is identical, residue for residue, to the plus-strand translation of GCA_005281805.1 RHGF01000006.1:51,694 to 52,236 (543 bp, no stop codon, first residue Leu). That span is the tblastn subject range recorded in the record's own 2026-09-18 note. So the curated matPi is the translation of a homology-hit region, not a Met-initiated gene model, which is what the record says ("only a homology-confirmed homeodomain-encoding region was localised"). Consequences: (1) it matches no BFD gene model, because BFD did not annotate this gene; (2) it matches the matPi of Pneumocystis only over the homeodomain (31 to 43% identity, as the record states); (3) the RNA-seq of this note shows the region is transcribed and spliced, so a real gene exists here; its start and strand are not resolved. The record's matPi therefore stays a partial, region-derived sequence. Any change to the record (replace it with a transcript-derived protein, or mark it region-derived) is a curator decision; I changed nothing in `db/`. + +### Strand of the homeodomain gene in *P. lactucae-debilis* 12-1054 resolved; A2 still open (added 2026-11-14) +The public data for these genera are all Illumina (ENA: *Taphrina* 35 runs, *Protomyces* 1 run; no long reads). Strandedness is not recorded in ENA, so I measured it (`scripts/infer_strandedness.py`; test in `tests/test_locus_expression.py`): the orientation of read 1 over 100 to 400 isolated annotated genes of 1 kb or more. +- *T. deformans* A2 (SRR8132818): unstranded (50.2% of read 1 on the gene strand). The strand of the A2 homeodomain gene cannot be set from this run. +- *P. lactucae-debilis* 12-1054 (SRR5576147): reverse-stranded (95.4 to 95.8% of read 1 on the strand opposite to the gene, depending on the gene sample). Method check: the annotated minus-strand HMG gene F003EF48_006292 gives 3,039 read-1 forward and 246 reverse, implied strand `-` (92.5%). +- Over the homeodomain ORF (NW_024468021.1:38,146 to 38,599): 2,748 read-1 forward and 354 reverse, implied strand `-` (88.6%). The upstream 1 kb gives the same strand (1,341 against 478). So in 12-1054 the homeodomain gene is on the minus strand, the same strand as its reverse-strand ORF and the StringTie transcripts, and the same strand as the HMG gene: both genes are transcribed in the same orientation, 7.15 kb apart. Table `rnaseq_Plact_12-1054_strand_check.txt`. +- Open after this: the exact exons and full-length protein of the homeodomain gene in 12-1054 (the transcripts of the previous section give a candidate), and the strand in A2. A stranded *Taphrina* library or long-read transcripts for either genus would close these; none is public. + +### Annotation-free search of the fragmentary assemblies (added 2026-11-14) +The 48 target-phylum assemblies with a genome file that were not scanned by any gene-order method (Microsporidia 25, Kickxellomycota 13, Entomophthoromycota 3, Chytridiomycota 2, Sanchytriomycota 2, Glomeromycota 1, Neocallimastigomycota 1, one unclassified; the Pleurotus x Saccharomyces fusant and the genome without a file are not included) were searched directly with `scripts/unannotated_genome_search.py` (tests in `tests/test_unannotated_genome_search.py`): tblastn (E 1e-5, SEG off) of 22 HMG-class controls (curated sexM, sexP, matMc, mat1-Mc, matMi) and 87 homeodomain-class controls (Ropars HD1-like and HD2, curated matPi, mat1-Pc, mat1-Pi) against each assembly; hits of one class closer than 2 kb were merged; a pair is an HMG region and a homeodomain region on one contig no more than 20 kb apart. Tables: `annotfree_summary.tsv`, `annotfree_regions.tsv`. +- 239 HMG regions in 18 genomes (169 of them in one *Gigaspora margarita* assembly, an AMF with a large HMG-box family, as in the Rhizophagus controls) and 47 homeodomain regions in 21 genomes. +- No genome has an HMG region and a homeodomain region on one contig within 20 kb: 0 of 48 genomes. Per group: Kickxellomycota (13) median 5 HMG and 0 homeodomain regions; Microsporidia (25) median 0 HMG and 2 homeodomain regions; Entomophthoromycota (3) median 2 and 1; Chytridiomycota (2), Sanchytriomycota (2) and Neocallimastigomycota (1) have no or almost no regions. +- The strongest hits are a *Gigaspora margarita* homeodomain region (E 2.6e-47, 33% identity to a Ropars query), a *Hepatospora eriocheir* region (52%, E 3.9e-13) and the Gigaspora HMG regions (45 to 51%). +- Limits: the assemblies are fragmented (median N50 5.4 kb), so most contigs are shorter than the pair distance and a pair could not be seen even if the genes were adjacent; the controls come from Mucoromycota and Taphrinomycotina and detect divergent HMG or homeodomain families only weakly in Microsporidia (which have reduced genomes); there is no chance expectation for pairs on fragments. So this result adds presence information for 48 more genomes but is not a test of absence of a MAT-like locus: for these genomes the finding stays "no evidence". diff --git a/docs/notes/2026-11-14_mat-discovery-tables/adjacent_pair_null_aug2.tsv b/docs/notes/2026-11-14_mat-discovery-tables/adjacent_pair_null_aug2.tsv new file mode 100644 index 00000000..d74c59a3 --- /dev/null +++ b/docs/notes/2026-11-14_mat-discovery-tables/adjacent_pair_null_aug2.tsv @@ -0,0 +1,4 @@ +lineage pair_type genomes observed_genomes expected_mean expected_max p share_same_strand +Aug2_3genomes HMG+Homeo 3 0 0.1 1 1.0000 NA +Aug2_3genomes 2xHomeo 3 1 0.0 1 0.0299 0.0 +Aug2_3genomes 2xHMG 3 2 0.2 2 0.0080 0.333 diff --git a/docs/notes/2026-11-14_mat-discovery-tables/adjacent_pair_null_aug3.tsv b/docs/notes/2026-11-14_mat-discovery-tables/adjacent_pair_null_aug3.tsv new file mode 100644 index 00000000..830114c6 --- /dev/null +++ b/docs/notes/2026-11-14_mat-discovery-tables/adjacent_pair_null_aug3.tsv @@ -0,0 +1,4 @@ +lineage pair_type genomes observed_genomes expected_mean expected_max p share_same_strand +Aug3_4genomes HMG+Homeo 4 0 0.0 0 1.0000 NA +Aug3_4genomes 2xHomeo 4 0 0.0 1 1.0000 NA +Aug3_4genomes 2xHMG 4 0 0.0 0 1.0000 NA diff --git a/docs/notes/2026-11-14_mat-discovery-tables/allomyces_baseline.tsv b/docs/notes/2026-11-14_mat-discovery-tables/allomyces_baseline.tsv new file mode 100644 index 00000000..1deccb4c --- /dev/null +++ b/docs/notes/2026-11-14_mat-discovery-tables/allomyces_baseline.tsv @@ -0,0 +1,19 @@ +genome_A genome_B class genes +Allomyces_arbusculus_Burma_1F Allomyces_javanicus_California_12 conserved 399 +Allomyces_arbusculus_Burma_1F Allomyces_javanicus_California_12 no_synteny 41 +Allomyces_arbusculus_Burma_1F Allomyces_javanicus_California_12 not_conserved 60 +Allomyces_arbusculus_Burma_1F Allomyces_macrogynus_ATCC_38327 conserved 266 +Allomyces_arbusculus_Burma_1F Allomyces_macrogynus_ATCC_38327 no_synteny 24 +Allomyces_arbusculus_Burma_1F Allomyces_macrogynus_ATCC_38327 not_conserved 210 +Allomyces_javanicus_California_12 Allomyces_arbusculus_Burma_1F conserved 363 +Allomyces_javanicus_California_12 Allomyces_arbusculus_Burma_1F no_synteny 48 +Allomyces_javanicus_California_12 Allomyces_arbusculus_Burma_1F not_conserved 89 +Allomyces_javanicus_California_12 Allomyces_macrogynus_ATCC_38327 conserved 198 +Allomyces_javanicus_California_12 Allomyces_macrogynus_ATCC_38327 no_synteny 85 +Allomyces_javanicus_California_12 Allomyces_macrogynus_ATCC_38327 not_conserved 217 +Allomyces_macrogynus_ATCC_38327 Allomyces_arbusculus_Burma_1F conserved 194 +Allomyces_macrogynus_ATCC_38327 Allomyces_arbusculus_Burma_1F no_synteny 131 +Allomyces_macrogynus_ATCC_38327 Allomyces_arbusculus_Burma_1F not_conserved 175 +Allomyces_macrogynus_ATCC_38327 Allomyces_javanicus_California_12 conserved 165 +Allomyces_macrogynus_ATCC_38327 Allomyces_javanicus_California_12 no_synteny 142 +Allomyces_macrogynus_ATCC_38327 Allomyces_javanicus_California_12 not_conserved 193 diff --git a/docs/notes/2026-11-14_mat-discovery-tables/allomyces_probe.tsv b/docs/notes/2026-11-14_mat-discovery-tables/allomyces_probe.tsv new file mode 100644 index 00000000..0420350c --- /dev/null +++ b/docs/notes/2026-11-14_mat-discovery-tables/allomyces_probe.tsv @@ -0,0 +1,169 @@ +genome_A gene domain genome_B class flank_mapped region_contig region_span +Allomyces_arbusculus_Burma_1F FA629528_000471 Homeodomain Allomyces_javanicus_California_12 conserved 10 JADHYU010000013.1 1581-1591 +Allomyces_arbusculus_Burma_1F FA629528_000695 HMG_box Allomyces_javanicus_California_12 conserved 9 JADHYU010000004.1 617-625 +Allomyces_arbusculus_Burma_1F FA629528_000770 HMG_box Allomyces_javanicus_California_12 conserved 9 JADHYU010000004.1 687-702 +Allomyces_arbusculus_Burma_1F FA629528_001301 HMG_box Allomyces_javanicus_California_12 conserved 10 JADHYU010000015.1 1758-1768 +Allomyces_arbusculus_Burma_1F FA629528_002006 HMG_box Allomyces_javanicus_California_12 conserved 10 JADHYU010000009.1 1224-1234 +Allomyces_arbusculus_Burma_1F FA629528_002248 Homeodomain Allomyces_javanicus_California_12 conserved 10 JADHYU010000034.1 2949-2960 +Allomyces_arbusculus_Burma_1F FA629528_002316 HMG_box Allomyces_javanicus_California_12 absent 8 JADHYU010000001.1 224-227 +Allomyces_arbusculus_Burma_1F FA629528_002370 Homeodomain Allomyces_javanicus_California_12 conserved 9 JADHYU010000038.1 3124-3133 +Allomyces_arbusculus_Burma_1F FA629528_002856 Homeodomain Allomyces_javanicus_California_12 conserved 7 JADHYU010000270.1 8898-8908 +Allomyces_arbusculus_Burma_1F FA629528_002972 HMG_box Allomyces_javanicus_California_12 conserved 10 JADHYU010000002.1 342-360 +Allomyces_arbusculus_Burma_1F FA629528_003412 Homeodomain Allomyces_javanicus_California_12 absent 10 JADHYU010000178.1 7550-7554 +Allomyces_arbusculus_Burma_1F FA629528_004436 Homeodomain Allomyces_javanicus_California_12 conserved 10 JADHYU010000001.1 187-197 +Allomyces_arbusculus_Burma_1F FA629528_004651 Homeodomain Allomyces_javanicus_California_12 conserved 10 JADHYU010000084.1 5126-5144 +Allomyces_arbusculus_Burma_1F FA629528_004909 HMG_box Allomyces_javanicus_California_12 conserved 6 JADHYU010000042.1 3276-3288 +Allomyces_arbusculus_Burma_1F FA629528_006029 HMG_box Allomyces_javanicus_California_12 conserved 9 JADHYU010000180.1 7573-7585 +Allomyces_arbusculus_Burma_1F FA629528_007241 HMG_box Allomyces_javanicus_California_12 conserved 8 JADHYU010000014.1 1680-1688 +Allomyces_arbusculus_Burma_1F FA629528_007273 Homeodomain Allomyces_javanicus_California_12 absent 3 JADHYU010000258.1 8753-8762 +Allomyces_arbusculus_Burma_1F FA629528_007501 Homeodomain Allomyces_javanicus_California_12 conserved 10 JADHYU010000208.1 8079-8088 +Allomyces_arbusculus_Burma_1F FA629528_007805 Homeodomain Allomyces_javanicus_California_12 conserved 5 JADHYU010000079.1 4939-4943 +Allomyces_arbusculus_Burma_1F FA629528_008236 HMG_box Allomyces_javanicus_California_12 other_domain 6 JADHYU010000189.1 7741-7745 +Allomyces_arbusculus_Burma_1F FA629528_008543 HMG_box Allomyces_javanicus_California_12 no_synteny 3 +Allomyces_arbusculus_Burma_1F FA629528_008632 HMG_box Allomyces_javanicus_California_12 conserved 4 JADHYU010000292.1 9145-9148 +Allomyces_arbusculus_Burma_1F FA629528_000471 Homeodomain Allomyces_macrogynus_ATCC_38327 other_domain 9 GG745329.1 1598-1606 +Allomyces_arbusculus_Burma_1F FA629528_000695 HMG_box Allomyces_macrogynus_ATCC_38327 other_domain 8 GG745338.1 6744-6752 +Allomyces_arbusculus_Burma_1F FA629528_000770 HMG_box Allomyces_macrogynus_ATCC_38327 conserved 9 GG745338.1 6674-6683 +Allomyces_arbusculus_Burma_1F FA629528_001301 HMG_box Allomyces_macrogynus_ATCC_38327 conserved 10 GG745328.1 719-729 +Allomyces_arbusculus_Burma_1F FA629528_002006 HMG_box Allomyces_macrogynus_ATCC_38327 conserved 10 GG745375.1 15222-15238 +Allomyces_arbusculus_Burma_1F FA629528_002248 Homeodomain Allomyces_macrogynus_ATCC_38327 conserved 10 GG745328.1 256-267 +Allomyces_arbusculus_Burma_1F FA629528_002316 HMG_box Allomyces_macrogynus_ATCC_38327 conserved 9 GG745328.1 327-335 +Allomyces_arbusculus_Burma_1F FA629528_002370 Homeodomain Allomyces_macrogynus_ATCC_38327 conserved 8 GG745342.1 8105-8112 +Allomyces_arbusculus_Burma_1F FA629528_002856 Homeodomain Allomyces_macrogynus_ATCC_38327 conserved 5 GG745333.1 4466-4473 +Allomyces_arbusculus_Burma_1F FA629528_002972 HMG_box Allomyces_macrogynus_ATCC_38327 conserved 10 GG745337.1 6486-6495 +Allomyces_arbusculus_Burma_1F FA629528_003412 Homeodomain Allomyces_macrogynus_ATCC_38327 other_domain 10 GG745335.1 5222-5231 +Allomyces_arbusculus_Burma_1F FA629528_004436 Homeodomain Allomyces_macrogynus_ATCC_38327 conserved 10 GG745328.1 363-372 +Allomyces_arbusculus_Burma_1F FA629528_004651 Homeodomain Allomyces_macrogynus_ATCC_38327 conserved 10 GG745339.1 7063-7073 +Allomyces_arbusculus_Burma_1F FA629528_004909 HMG_box Allomyces_macrogynus_ATCC_38327 conserved 7 GG745381.1 15898-15904 +Allomyces_arbusculus_Burma_1F FA629528_006029 HMG_box Allomyces_macrogynus_ATCC_38327 absent 8 GG745331.1 3212-3220 +Allomyces_arbusculus_Burma_1F FA629528_007241 HMG_box Allomyces_macrogynus_ATCC_38327 conserved 7 GG745358.1 12640-12647 +Allomyces_arbusculus_Burma_1F FA629528_007273 Homeodomain Allomyces_macrogynus_ATCC_38327 conserved 9 GG745342.1 8051-8056 +Allomyces_arbusculus_Burma_1F FA629528_007501 Homeodomain Allomyces_macrogynus_ATCC_38327 conserved 10 GG745352.1 11108-11115 +Allomyces_arbusculus_Burma_1F FA629528_007805 Homeodomain Allomyces_macrogynus_ATCC_38327 other_domain 5 GG745347.1 9377-9379 +Allomyces_arbusculus_Burma_1F FA629528_008236 HMG_box Allomyces_macrogynus_ATCC_38327 other_domain 6 GG745331.1 2541-2544 +Allomyces_arbusculus_Burma_1F FA629528_008543 HMG_box Allomyces_macrogynus_ATCC_38327 absent 4 GG745337.1 6239-6262 +Allomyces_arbusculus_Burma_1F FA629528_008632 HMG_box Allomyces_macrogynus_ATCC_38327 conserved 5 GG745359.1 12835-12837 +Allomyces_javanicus_California_12 FAFF0595_000193 Homeodomain Allomyces_arbusculus_Burma_1F conserved 10 JADHYV010000024.1 4430-4440 +Allomyces_javanicus_California_12 FAFF0595_000342 HMG_box Allomyces_arbusculus_Burma_1F other_domain 7 JADHYV010000013.1 2953-2970 +Allomyces_javanicus_California_12 FAFF0595_000356 HMG_box Allomyces_arbusculus_Burma_1F conserved 4 JADHYV010000013.1 2955-2972 +Allomyces_javanicus_California_12 FAFF0595_000621 HMG_box Allomyces_arbusculus_Burma_1F conserved 9 JADHYV010000003.1 691-699 +Allomyces_javanicus_California_12 FAFF0595_000694 HMG_box Allomyces_arbusculus_Burma_1F conserved 7 JADHYV010000003.1 765-772 +Allomyces_javanicus_California_12 FAFF0595_001587 Homeodomain Allomyces_arbusculus_Burma_1F conserved 10 JADHYV010000002.1 465-475 +Allomyces_javanicus_California_12 FAFF0595_001686 HMG_box Allomyces_arbusculus_Burma_1F conserved 8 JADHYV010000068.1 7235-7244 +Allomyces_javanicus_California_12 FAFF0595_001764 HMG_box Allomyces_arbusculus_Burma_1F conserved 10 JADHYV010000004.1 1295-1305 +Allomyces_javanicus_California_12 FAFF0595_002955 Homeodomain Allomyces_arbusculus_Burma_1F conserved 9 JADHYV010000009.1 2242-2251 +Allomyces_javanicus_California_12 FAFF0595_003130 Homeodomain Allomyces_arbusculus_Burma_1F conserved 9 JADHYV010000010.1 2364-2374 +Allomyces_javanicus_California_12 FAFF0595_003281 HMG_box Allomyces_arbusculus_Burma_1F conserved 9 JADHYV010000029.1 4904-4918 +Allomyces_javanicus_California_12 FAFF0595_003869 HMG_box Allomyces_arbusculus_Burma_1F conserved 10 JADHYV010000004.1 1147-1157 +Allomyces_javanicus_California_12 FAFF0595_004939 Homeodomain Allomyces_arbusculus_Burma_1F absent 10 JADHYV010000153.1 8686-8690 +Allomyces_javanicus_California_12 FAFF0595_005132 Homeodomain Allomyces_arbusculus_Burma_1F other_domain 7 JADHYV010000026.1 4645-4655 +Allomyces_javanicus_California_12 FAFF0595_005141 Homeodomain Allomyces_arbusculus_Burma_1F conserved 5 JADHYV010000026.1 4651-4657 +Allomyces_javanicus_California_12 FAFF0595_005618 HMG_box Allomyces_arbusculus_Burma_1F no_synteny 2 +Allomyces_javanicus_California_12 FAFF0595_007343 Homeodomain Allomyces_arbusculus_Burma_1F absent 4 JADHYV010000012.1 2792-2797 +Allomyces_javanicus_California_12 FAFF0595_007578 HMG_box Allomyces_arbusculus_Burma_1F conserved 9 JADHYV010000041.1 6020-6032 +Allomyces_javanicus_California_12 FAFF0595_007741 HMG_box Allomyces_arbusculus_Burma_1F other_domain 6 JADHYV010000112.1 8236-8240 +Allomyces_javanicus_California_12 FAFF0595_008084 Homeodomain Allomyces_arbusculus_Burma_1F conserved 8 JADHYV010000076.1 7497-7505 +Allomyces_javanicus_California_12 FAFF0595_008621 HMG_box Allomyces_arbusculus_Burma_1F absent 5 JADHYV010000172.1 8803-8805 +Allomyces_javanicus_California_12 FAFF0595_008906 Homeodomain Allomyces_arbusculus_Burma_1F conserved 7 JADHYV010000012.1 2848-2858 +Allomyces_javanicus_California_12 FAFF0595_009145 HMG_box Allomyces_arbusculus_Burma_1F conserved 7 JADHYV010000145.1 8625-8630 +Allomyces_javanicus_California_12 FAFF0595_009571 HMG_box Allomyces_arbusculus_Burma_1F other_domain 4 JADHYV010000009.1 2313-2316 +Allomyces_javanicus_California_12 FAFF0595_009572 HMG_box Allomyces_arbusculus_Burma_1F conserved 3 JADHYV010000009.1 2313-2316 +Allomyces_javanicus_California_12 FAFF0595_000193 Homeodomain Allomyces_macrogynus_ATCC_38327 conserved 10 GG745330.1 1840-1847 +Allomyces_javanicus_California_12 FAFF0595_000342 HMG_box Allomyces_macrogynus_ATCC_38327 other_domain 6 GG745337.1 6473-6490 +Allomyces_javanicus_California_12 FAFF0595_000356 HMG_box Allomyces_macrogynus_ATCC_38327 conserved 5 GG745337.1 6475-6492 +Allomyces_javanicus_California_12 FAFF0595_000621 HMG_box Allomyces_macrogynus_ATCC_38327 other_domain 9 GG745338.1 6744-6753 +Allomyces_javanicus_California_12 FAFF0595_000694 HMG_box Allomyces_macrogynus_ATCC_38327 conserved 9 GG745338.1 6672-6682 +Allomyces_javanicus_California_12 FAFF0595_001587 Homeodomain Allomyces_macrogynus_ATCC_38327 other_domain 9 GG745329.1 1598-1606 +Allomyces_javanicus_California_12 FAFF0595_001686 HMG_box Allomyces_macrogynus_ATCC_38327 conserved 9 GG745358.1 12640-12647 +Allomyces_javanicus_California_12 FAFF0595_001764 HMG_box Allomyces_macrogynus_ATCC_38327 conserved 10 GG745328.1 720-729 +Allomyces_javanicus_California_12 FAFF0595_002955 Homeodomain Allomyces_macrogynus_ATCC_38327 conserved 10 GG745328.1 256-266 +Allomyces_javanicus_California_12 FAFF0595_003130 Homeodomain Allomyces_macrogynus_ATCC_38327 conserved 8 GG745345.1 9191-9198 +Allomyces_javanicus_California_12 FAFF0595_003281 HMG_box Allomyces_macrogynus_ATCC_38327 other_domain 9 GG745342.1 7889-7897 +Allomyces_javanicus_California_12 FAFF0595_003869 HMG_box Allomyces_macrogynus_ATCC_38327 other_domain 8 GG745330.1 2346-2350 +Allomyces_javanicus_California_12 FAFF0595_004939 Homeodomain Allomyces_macrogynus_ATCC_38327 other_domain 10 GG745350.1 10348-10356 +Allomyces_javanicus_California_12 FAFF0595_005132 Homeodomain Allomyces_macrogynus_ATCC_38327 conserved 8 GG745339.1 7063-7073 +Allomyces_javanicus_California_12 FAFF0595_005141 Homeodomain Allomyces_macrogynus_ATCC_38327 other_domain 4 GG745339.1 7061-7066 +Allomyces_javanicus_California_12 FAFF0595_005618 HMG_box Allomyces_macrogynus_ATCC_38327 no_synteny 2 +Allomyces_javanicus_California_12 FAFF0595_007343 Homeodomain Allomyces_macrogynus_ATCC_38327 no_synteny 2 +Allomyces_javanicus_California_12 FAFF0595_007578 HMG_box Allomyces_macrogynus_ATCC_38327 absent 8 GG745331.1 3209-3220 +Allomyces_javanicus_California_12 FAFF0595_007741 HMG_box Allomyces_macrogynus_ATCC_38327 other_domain 6 GG745338.1 6834-6838 +Allomyces_javanicus_California_12 FAFF0595_008084 Homeodomain Allomyces_macrogynus_ATCC_38327 conserved 6 GG745352.1 11108-11114 +Allomyces_javanicus_California_12 FAFF0595_008621 HMG_box Allomyces_macrogynus_ATCC_38327 conserved 5 GG745337.1 6261-6273 +Allomyces_javanicus_California_12 FAFF0595_008906 Homeodomain Allomyces_macrogynus_ATCC_38327 conserved 6 GG745333.1 4467-4473 +Allomyces_javanicus_California_12 FAFF0595_009145 HMG_box Allomyces_macrogynus_ATCC_38327 conserved 6 GG745359.1 12833-12839 +Allomyces_javanicus_California_12 FAFF0595_009571 HMG_box Allomyces_macrogynus_ATCC_38327 no_synteny 3 +Allomyces_javanicus_California_12 FAFF0595_009572 HMG_box Allomyces_macrogynus_ATCC_38327 no_synteny 2 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_000262 Homeodomain Allomyces_arbusculus_Burma_1F conserved 8 JADHYV010000009.1 2242-2251 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_000331 HMG_box Allomyces_arbusculus_Burma_1F conserved 7 JADHYV010000009.1 2311-2320 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_000369 Homeodomain Allomyces_arbusculus_Burma_1F conserved 8 JADHYV010000024.1 4430-4440 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_000725 HMG_box Allomyces_arbusculus_Burma_1F conserved 6 JADHYV010000004.1 1295-1305 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_001048 Homeodomain Allomyces_arbusculus_Burma_1F other_domain 3 JADHYV010000016.1 3409-3416 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_001604 Homeodomain Allomyces_arbusculus_Burma_1F other_domain 5 JADHYV010000002.1 466-475 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_001844 Homeodomain Allomyces_arbusculus_Burma_1F other_domain 5 JADHYV010000024.1 4429-4442 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_002201 HMG_box Allomyces_arbusculus_Burma_1F other_domain 4 JADHYV010000004.1 1296-1303 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_002352 HMG_box Allomyces_arbusculus_Burma_1F absent 4 JADHYV010000004.1 1146-1157 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_002543 HMG_box Allomyces_arbusculus_Burma_1F absent 6 JADHYV010000105.1 8121-8123 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_002626 HMG_box Allomyces_arbusculus_Burma_1F conserved 5 JADHYV010000003.1 692-698 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_004133 Homeodomain Allomyces_arbusculus_Burma_1F conserved 7 JADHYV010000002.1 467-479 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_004473 Homeodomain Allomyces_arbusculus_Burma_1F conserved 4 JADHYV010000012.1 2848-2856 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_005228 Homeodomain Allomyces_arbusculus_Burma_1F other_domain 7 JADHYV010000016.1 3406-3415 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_005716 Homeodomain Allomyces_arbusculus_Burma_1F other_domain 4 JADHYV010000076.1 7496-7506 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_006268 HMG_box Allomyces_arbusculus_Burma_1F no_synteny 3 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_006492 HMG_box Allomyces_arbusculus_Burma_1F conserved 8 JADHYV010000013.1 2966-2974 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_006678 HMG_box Allomyces_arbusculus_Burma_1F conserved 5 JADHYV010000003.1 765-771 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_006750 HMG_box Allomyces_arbusculus_Burma_1F other_domain 5 JADHYV010000003.1 691-699 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_006840 HMG_box Allomyces_arbusculus_Burma_1F absent 3 JADHYV010000112.1 8238-8240 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_007069 Homeodomain Allomyces_arbusculus_Burma_1F conserved 10 JADHYV010000026.1 4645-4655 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_007894 HMG_box Allomyces_arbusculus_Burma_1F other_domain 5 JADHYV010000029.1 4904-4918 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_007902 HMG_box Allomyces_arbusculus_Burma_1F absent 4 JADHYV010000029.1 4915-4923 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_008056 Homeodomain Allomyces_arbusculus_Burma_1F conserved 5 JADHYV010000069.1 7271-7276 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_008109 Homeodomain Allomyces_arbusculus_Burma_1F conserved 6 JADHYV010000010.1 2361-2373 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_008423 HMG_box Allomyces_arbusculus_Burma_1F other_domain 4 JADHYV010000008.1 2001-2008 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_009141 Homeodomain Allomyces_arbusculus_Burma_1F other_domain 5 JADHYV010000069.1 7267-7270 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_009194 Homeodomain Allomyces_arbusculus_Burma_1F other_domain 5 JADHYV010000010.1 2363-2374 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_009381 Homeodomain Allomyces_arbusculus_Burma_1F other_domain 6 JADHYV010000089.1 7805-7807 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_010354 Homeodomain Allomyces_arbusculus_Burma_1F no_synteny 4 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_011113 Homeodomain Allomyces_arbusculus_Burma_1F conserved 8 JADHYV010000076.1 7497-7507 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_012645 HMG_box Allomyces_arbusculus_Burma_1F conserved 8 JADHYV010000068.1 7234-7244 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_012835 HMG_box Allomyces_arbusculus_Burma_1F conserved 7 JADHYV010000145.1 8625-8629 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_013092 HMG_box Allomyces_arbusculus_Burma_1F no_synteny 1 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_015225 HMG_box Allomyces_arbusculus_Burma_1F conserved 6 JADHYV010000008.1 2002-2011 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_015902 HMG_box Allomyces_arbusculus_Burma_1F conserved 7 JADHYV010000029.1 4905-4914 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_016404 HMG_box Allomyces_arbusculus_Burma_1F no_synteny 3 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_000262 Homeodomain Allomyces_javanicus_California_12 conserved 9 JADHYU010000034.1 2949-2959 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_000331 HMG_box Allomyces_javanicus_California_12 no_synteny 3 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_000369 Homeodomain Allomyces_javanicus_California_12 other_domain 5 JADHYU010000001.1 189-196 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_000725 HMG_box Allomyces_javanicus_California_12 conserved 6 JADHYU010000015.1 1758-1767 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_001048 Homeodomain Allomyces_javanicus_California_12 absent 5 JADHYU010000169.1 7350-7353 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_001604 Homeodomain Allomyces_javanicus_California_12 other_domain 5 JADHYU010000013.1 1582-1591 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_001844 Homeodomain Allomyces_javanicus_California_12 conserved 8 JADHYU010000001.1 186-199 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_002201 HMG_box Allomyces_javanicus_California_12 other_domain 3 JADHYU010000015.1 1762-1766 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_002352 HMG_box Allomyces_javanicus_California_12 other_domain 5 JADHYU010000054.1 3863-3874 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_002543 HMG_box Allomyces_javanicus_California_12 conserved 6 JADHYU010000099.1 5619-5623 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_002626 HMG_box Allomyces_javanicus_California_12 conserved 3 JADHYU010000004.1 614-624 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_004133 Homeodomain Allomyces_javanicus_California_12 conserved 4 JADHYU010000013.1 1583-1595 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_004473 Homeodomain Allomyces_javanicus_California_12 conserved 5 JADHYU010000270.1 8900-8906 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_005228 Homeodomain Allomyces_javanicus_California_12 absent 6 JADHYU010000178.1 7550-7554 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_005716 Homeodomain Allomyces_javanicus_California_12 no_synteny 2 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_006268 HMG_box Allomyces_javanicus_California_12 conserved 3 JADHYU010000247.1 8621-8624 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_006492 HMG_box Allomyces_javanicus_California_12 conserved 9 JADHYU010000002.1 342-360 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_006678 HMG_box Allomyces_javanicus_California_12 conserved 6 JADHYU010000004.1 688-697 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_006750 HMG_box Allomyces_javanicus_California_12 other_domain 7 JADHYU010000004.1 616-625 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_006840 HMG_box Allomyces_javanicus_California_12 other_domain 4 JADHYU010000189.1 7741-7745 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_007069 Homeodomain Allomyces_javanicus_California_12 conserved 10 JADHYU010000084.1 5126-5144 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_007894 HMG_box Allomyces_javanicus_California_12 other_domain 6 JADHYU010000042.1 3276-3284 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_007902 HMG_box Allomyces_javanicus_California_12 absent 4 JADHYU010000042.1 3283-3292 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_008056 Homeodomain Allomyces_javanicus_California_12 no_synteny 3 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_008109 Homeodomain Allomyces_javanicus_California_12 other_domain 6 JADHYU010000038.1 3125-3137 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_008423 HMG_box Allomyces_javanicus_California_12 absent 6 JADHYU010000009.1 1225-1233 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_009141 Homeodomain Allomyces_javanicus_California_12 no_synteny 0 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_009194 Homeodomain Allomyces_javanicus_California_12 conserved 5 JADHYU010000038.1 3124-3135 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_009381 Homeodomain Allomyces_javanicus_California_12 conserved 4 JADHYU010000079.1 4933-4941 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_010354 Homeodomain Allomyces_javanicus_California_12 other_domain 6 JADHYU010000079.1 4935-4943 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_011113 Homeodomain Allomyces_javanicus_California_12 conserved 8 JADHYU010000208.1 8081-8088 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_012645 HMG_box Allomyces_javanicus_California_12 conserved 7 JADHYU010000014.1 1679-1688 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_012835 HMG_box Allomyces_javanicus_California_12 conserved 4 JADHYU010000292.1 9142-9149 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_013092 HMG_box Allomyces_javanicus_California_12 no_synteny 3 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_015225 HMG_box Allomyces_javanicus_California_12 conserved 4 JADHYU010000009.1 1223-1232 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_015902 HMG_box Allomyces_javanicus_California_12 conserved 5 JADHYU010000042.1 3278-3288 +Allomyces_macrogynus_ATCC_38327 F5BE82F7_016404 HMG_box Allomyces_javanicus_California_12 no_synteny 5 diff --git a/docs/notes/2026-11-14_mat-discovery-tables/allomyces_summary.tsv b/docs/notes/2026-11-14_mat-discovery-tables/allomyces_summary.tsv new file mode 100644 index 00000000..62a3d554 --- /dev/null +++ b/docs/notes/2026-11-14_mat-discovery-tables/allomyces_summary.tsv @@ -0,0 +1,24 @@ +genome_A genome_B class genes +Allomyces_arbusculus_Burma_1F Allomyces_javanicus_California_12 absent 3 +Allomyces_arbusculus_Burma_1F Allomyces_javanicus_California_12 conserved 17 +Allomyces_arbusculus_Burma_1F Allomyces_javanicus_California_12 no_synteny 1 +Allomyces_arbusculus_Burma_1F Allomyces_javanicus_California_12 other_domain 1 +Allomyces_arbusculus_Burma_1F Allomyces_macrogynus_ATCC_38327 absent 2 +Allomyces_arbusculus_Burma_1F Allomyces_macrogynus_ATCC_38327 conserved 15 +Allomyces_arbusculus_Burma_1F Allomyces_macrogynus_ATCC_38327 other_domain 5 +Allomyces_javanicus_California_12 Allomyces_arbusculus_Burma_1F absent 3 +Allomyces_javanicus_California_12 Allomyces_arbusculus_Burma_1F conserved 17 +Allomyces_javanicus_California_12 Allomyces_arbusculus_Burma_1F no_synteny 1 +Allomyces_javanicus_California_12 Allomyces_arbusculus_Burma_1F other_domain 4 +Allomyces_javanicus_California_12 Allomyces_macrogynus_ATCC_38327 absent 1 +Allomyces_javanicus_California_12 Allomyces_macrogynus_ATCC_38327 conserved 12 +Allomyces_javanicus_California_12 Allomyces_macrogynus_ATCC_38327 no_synteny 4 +Allomyces_javanicus_California_12 Allomyces_macrogynus_ATCC_38327 other_domain 8 +Allomyces_macrogynus_ATCC_38327 Allomyces_arbusculus_Burma_1F absent 4 +Allomyces_macrogynus_ATCC_38327 Allomyces_arbusculus_Burma_1F conserved 17 +Allomyces_macrogynus_ATCC_38327 Allomyces_arbusculus_Burma_1F no_synteny 4 +Allomyces_macrogynus_ATCC_38327 Allomyces_arbusculus_Burma_1F other_domain 12 +Allomyces_macrogynus_ATCC_38327 Allomyces_javanicus_California_12 absent 4 +Allomyces_macrogynus_ATCC_38327 Allomyces_javanicus_California_12 conserved 18 +Allomyces_macrogynus_ATCC_38327 Allomyces_javanicus_California_12 no_synteny 6 +Allomyces_macrogynus_ATCC_38327 Allomyces_javanicus_California_12 other_domain 9 diff --git a/docs/notes/2026-11-14_mat-discovery-tables/annotfree_regions.tsv b/docs/notes/2026-11-14_mat-discovery-tables/annotfree_regions.tsv new file mode 100644 index 00000000..f8e1b134 --- /dev/null +++ b/docs/notes/2026-11-14_mat-discovery-tables/annotfree_regions.tsv @@ -0,0 +1,287 @@ +genome class contig start end identity evalue bitscore +Tubulinosema_ratisbonensis|GCA_004000155.1_ASM400015v1 HD RCSS01000177.1 339 773 53.125 3.14e-06 235.5 +Tubulinosema_ratisbonensis|GCA_004000155.1_ASM400015v1 HD RCSS01000254.1 92 670 50.0 3.88e-11 261.09999999999997 +Vairimorpha_ceranae_BRL01|GCF_000182985.1_ASM18298v1 HD NW_003313922.1 3505 3663 52.83 4.53e-14 281.5 +Vairimorpha_ceranae_BRL01|GCF_000182985.1_ASM18298v1 HD NW_003314129.1 3849 4361 46.0 2.73e-10 162.9 +Vairimorpha_ceranae_BRL01|GCF_000182985.1_ASM18298v1 HD NW_003314238.1 4241 4399 37.736 8.07e-06 320.6 +Spraguea_lophii|GCA_011076965.1_ASM1107696v1 HD JAABPO010000047.1 12624 13936 55.556 1.52e-14 506.40000000000003 +Spraguea_lophii|GCA_011076965.1_ASM1107696v1 HD JAABPO010000465.1 230 367 53.488 1.43e-10 261.0 +Spraguea_lophii|GCA_011076965.1_ASM1107696v1 HD JAABPO010000754.1 268 363 62.5 9.32e-06 42.0 +Spraguea_lophii|GCA_011074935.1_ASM1107493v1 HD JAABPM010000064.1 12518 13830 55.556 1.52e-14 506.40000000000003 +Spraguea_lophii|GCA_011074935.1_ASM1107493v1 HD JAABPM010000364.1 230 367 53.488 1.47e-10 261.0 +Spraguea_lophii|GCA_011074935.1_ASM1107493v1 HD JAABPM010000756.1 1930 2025 62.5 9.38e-06 42.0 +Spraguea_lophii|GCA_011076975.1_ASM1107697v1 HD JAABPN010000054.1 12623 13935 55.556 1.53e-14 506.40000000000003 +Spraguea_lophii|GCA_011076975.1_ASM1107697v1 HD JAABPN010000489.1 3090 3227 53.488 1.29e-10 261.8 +Spraguea_lophii|GCA_011074965.1_ASM1107496v1 HD JAABPL010000046.1 12624 13936 55.556 1.48e-14 506.40000000000003 +Spraguea_lophii|GCA_011074965.1_ASM1107496v1 HD JAABPL010000457.1 230 367 53.488 1.4e-10 261.0 +Spraguea_lophii|GCA_011074965.1_ASM1107496v1 HD JAABPL010000745.1 1930 2025 62.5 9.13e-06 42.0 +Spraguea_lophii|GCA_011074945.1_ASM1107494v1 HD JAABPK010000044.1 12639 13951 55.556 1.5e-14 506.40000000000003 +Spraguea_lophii|GCA_011074945.1_ASM1107494v1 HD JAABPK010000468.1 230 367 53.488 1.42e-10 261.0 +Spraguea_lophii|GCA_011074945.1_ASM1107494v1 HD JAABPK010000753.1 268 363 62.5 9.21e-06 42.0 +Spraguea_lophii|GCA_011076955.1_ASM1107695v1 HD JAABPP010000063.1 12518 13830 55.556 1.51e-14 506.40000000000003 +Spraguea_lophii|GCA_011076955.1_ASM1107695v1 HD JAABPP010000354.1 230 367 53.488 1.46e-10 261.0 +Spraguea_lophii|GCA_011076955.1_ASM1107695v1 HD JAABPP010000598.1 2471 2566 62.5 9.53e-06 42.0 +Spraguea_lophii|GCA_011074975.1_ASM1107497v1 HD JAABPJ010000062.1 12518 13830 55.556 1.5e-14 506.40000000000003 +Spraguea_lophii|GCA_011074975.1_ASM1107497v1 HD JAABPJ010000352.1 230 367 53.488 1.46e-10 261.0 +Spraguea_lophii|GCA_011074975.1_ASM1107497v1 HD JAABPJ010000765.1 268 363 62.5 9.29e-06 42.0 +Pseudoloma_neurophilia|GCA_001432165.1_ASM143216v1 HD LGUB01000056.1 12639 13154 49.231 3.75e-14 193.0 +Pseudoloma_neurophilia|GCA_001432165.1_ASM143216v1 HD LGUB01000143.1 3567 3848 50.0 1.28e-09 258.5 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010000003.1 12579 12971 38.75 3.37e-09 439.40000000000003 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010000016.1 23514 24002 39.744 6.95e-11 407.1 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010000017.1 756 1067 36.364 4.58e-06 100.2 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010000032.1 18425 18790 27.66 7.6e-09 218.7 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010000104.1 18912 19379 49.398 7.27e-18 858.1 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010000110.1 22065 22676 48.78 1.23e-16 756.4 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010000135.1 5997 6413 38.961 1.14e-08 365.1 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010000135.1 10223 10636 39.474 1.18e-08 485.09999999999997 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010000135.1 17666 18082 32.941 4.42e-10 112.80000000000001 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010000198.1 5178 5387 49.123 2.09e-07 259.9 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010000216.1 3223 3558 37.778 9.25e-08 316.6 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010000285.1 2846 3382 34.091 1.64e-08 423.9 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010000318.1 10949 11323 44.776 2.25e-09 260.8 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010000486.1 3962 4120 45.283 7.7e-07 51.6 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010000495.1 11867 12265 35.294 5.3e-07 203.70000000000002 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010000602.1 12553 12756 32.353 7.19e-06 50.1 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010000603.1 17650 17892 38.961 8.05e-06 99.80000000000001 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010000630.1 6666 7241 39.726 1e-14 667.8 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010000814.1 4026 4394 39.08 6.67e-15 739.5000000000001 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010000879.1 267 755 48.052 1.5e-16 897.6999999999999 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010000879.1 4741 5121 36.364 3.35e-07 103.6 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010001126.1 19520 19791 50.0 4.29e-07 144.8 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010001150.1 9553 9990 43.333 7.14e-09 438.6 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010001155.1 15913 16350 37.5 6.83e-11 543.8 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010001215.1 13170 13652 44.737 2.81e-16 988.3 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010001232.1 477 806 35.714 2.03e-07 53.5 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010001382.1 11847 12110 37.895 1.25e-08 57.8 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010001422.1 5011 5334 48.052 8.02e-19 873.0999999999999 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010001480.1 2227 2631 40.789 3.12e-11 419.70000000000005 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010001493.1 13047 13403 41.25 2.34e-10 372.5 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010001720.1 2221 2691 44.737 2.82e-17 1029.1999999999998 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010001769.1 12181 12777 50.649 1.38e-30 1315.9999999999998 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010001798.1 6667 6981 39.535 7.32e-13 527.1 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010001830.1 1404 1699 52.381 2.14e-08 222.6 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010001952.1 7693 8196 32.11 2.68e-10 276.6 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010002280.1 5736 6248 49.351 1.28e-19 913.8 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010002280.1 9733 10160 60.0 4.86e-10 477.7000000000001 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010002491.1 11746 12066 40.0 1.48e-08 380.8 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010002638.1 12765 13130 35.833 6.3e-07 103.6 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010002641.1 13110 13335 91.667 2.38e-06 428.19999999999993 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010002842.1 5491 5925 34.545 4.25e-12 343.90000000000003 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010003149.1 14963 15205 37.5 1.68e-08 270.7 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010003161.1 5220 5567 35.227 4e-07 409.6 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010003207.1 6736 7104 36.082 4.42e-09 327.7 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010003442.1 9472 9744 36.25 1.16e-08 263.0 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010003794.1 2632 3087 27.068 2.14e-09 235.0 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010003805.1 11779 12249 45.0 6.47e-11 444.7 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010003811.1 10049 10540 36.364 6.26e-12 562.6999999999999 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010004346.1 4604 4954 43.038 3.76e-10 448.20000000000005 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010004540.1 5750 6286 39.474 6.64e-09 377.4 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010005231.1 9911 10648 50.0 6.1e-20 1046.1 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010005630.1 501 908 41.026 1.03e-13 793.4000000000002 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010005805.1 3349 3633 37.349 2.51e-07 264.6 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010005839.1 4252 4656 44.304 6.16e-16 953.1999999999999 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010005967.1 3490 3873 39.437 8.69e-11 677.8 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010006146.1 3522 3902 48.052 5.54e-16 799.4999999999999 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010006322.1 3127 3585 34.0 1.19e-09 114.7 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010006501.1 5568 5948 26.154 3.28e-06 50.1 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010006531.1 7841 8527 44.737 1.49e-30 1309.1999999999998 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010006923.1 11275 11730 42.353 2.02e-11 645.5 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010007193.1 2027 2419 33.333 1.95e-07 206.79999999999998 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010007193.1 8314 8856 29.323 2e-09 218.39999999999998 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010007217.1 5774 6088 35.714 1.03e-10 222.2 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010007374.1 7331 7633 36.047 3.02e-10 514.5 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010007628.1 9174 9398 42.857 4.11e-08 55.5 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010008320.1 1261 1656 38.462 3.97e-13 890.7000000000002 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010008701.1 921 2504 49.333 1.89e-18 1136.8 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010009208.1 8186 8701 32.911 3.83e-16 438.0 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010009432.1 1292 1675 35.106 3.2e-10 489.6000000000001 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010009624.1 8834 9211 48.684 1.4e-15 734.8000000000001 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010010504.1 4657 5004 36.986 4.3e-10 392.8 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010010856.1 7459 8034 33.083 1e-08 261.40000000000003 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010010878.1 467 781 40.964 1.48e-11 357.4 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010011047.1 2852 3156 51.22 5.62e-07 216.00000000000003 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010011150.1 4768 5100 38.889 1.45e-09 422.0 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010011210.1 3127 3630 48.611 8.18e-17 880.9 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010011534.1 5917 6450 45.57 1.67e-13 887.6999999999998 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010011647.1 3469 3699 39.241 2.38e-08 160.60000000000002 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010012033.1 2257 2748 38.806 1.7e-11 742.4 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010012364.1 1283 1639 43.038 1.21e-12 729.8000000000001 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010012537.1 5036 5338 40.26 6.79e-11 865.8000000000001 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010012539.1 1278 1721 45.205 1.96e-16 831.4999999999999 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010012560.1 5256 5666 37.037 9.09e-11 291.6 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010012947.1 1011 1445 30.201 2.43e-09 109.0 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010013546.1 4871 5113 29.07 6.9e-06 49.7 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010013877.1 2910 3188 44.156 6.62e-13 504.80000000000007 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010014558.1 608 1144 48.684 4.82e-17 887.3 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010014684.1 5261 5611 38.158 9.71e-07 202.9 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010015199.1 522 905 34.568 4.33e-10 328.1 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010015544.1 4019 4432 43.243 1.55e-14 647.8000000000001 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010015701.1 1392 2003 53.623 2.55e-17 763.0 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010015842.1 4512 4655 54.167 4.58e-07 52.4 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010017636.1 5834 6175 37.143 9.32e-08 311.90000000000003 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010018678.1 2581 3192 29.703 3.81e-06 99.69999999999999 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010019430.1 2249 2578 35.227 1.16e-08 160.60000000000002 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010020813.1 5155 5616 36.842 5.38e-09 436.7 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010020863.1 514 645 36.364 4.34e-06 49.3 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010021049.1 3684 4154 41.573 2.98e-15 678.3 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010021083.1 5220 5621 33.735 1.17e-09 268.8 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010021900.1 5369 5629 36.709 4.94e-08 267.4 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010023106.1 1192 1614 31.579 6.32e-07 52.8 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010024817.1 1854 2219 32.584 2.03e-09 110.5 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010025481.1 696 1118 35.484 1.15e-06 254.1 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010026114.1 215 619 44.444 2.9e-15 866.1 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010027411.1 3274 3630 35.714 2.05e-09 375.9 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010027719.1 702 1220 45.946 7.84e-17 685.6 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010028766.1 3958 4425 44.872 1.87e-12 558.9 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010029431.1 2249 2566 41.558 3e-09 710.8000000000001 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010030791.1 1762 2226 42.308 1.53e-12 900.7 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010030967.1 1607 2110 48.148 8.77e-19 1038.5 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010031419.1 3068 3310 35.443 9.91e-07 100.1 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010031783.1 3201 3416 44.444 2.44e-11 66.2 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010032668.1 3503 3928 42.697 1.09e-13 816.9000000000001 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010033009.1 3467 3898 45.333 2.19e-15 757.9 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010033502.1 2568 3317 44.872 9.06e-14 995.9000000000002 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010034252.1 284 622 32.673 4.81e-09 115.5 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010034707.1 1616 1870 32.941 9.56e-06 49.7 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010035227.1 2740 3171 23.741 2.58e-10 114.4 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010035278.1 351 790 55.556 4.58e-10 462.6 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010035455.1 2025 2498 41.096 7.59e-11 566.5999999999999 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010035558.1 1944 2501 39.474 2.03e-12 469.79999999999995 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010036099.1 3180 3587 42.857 1.65e-13 790.2 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010036161.1 675 1028 40.0 1.65e-11 524.2 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010036347.1 3478 3990 43.662 2.11e-13 754.0 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010038517.1 1457 2047 38.462 1e-13 797.7 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010038660.1 2537 2968 51.389 2.22e-15 850.5000000000001 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010039282.1 1890 2405 45.946 5.99e-15 1009.3 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010039933.1 2284 2625 33.962 2.76e-12 241.89999999999998 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010040538.1 3298 3801 36.634 9.4e-11 281.5 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010041232.1 3804 4091 38.961 7.27e-07 201.5 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010042131.1 1505 1735 31.169 8.35e-06 48.5 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010043110.1 1310 1939 43.373 1.58e-12 762.8 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010043147.1 796 1206 39.683 2.76e-11 665.1 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010044070.1 2193 2503 53.846 3.09e-06 211.60000000000002 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010045530.1 1083 1679 39.474 6.19e-13 772.7000000000002 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010045677.1 8 151 50.0 8.2e-06 50.1 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010046676.1 1248 1820 38.356 2.81e-12 694.1999999999998 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010047696.1 1346 1783 41.429 3.51e-11 729.5 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010048326.1 913 1533 42.857 3.84e-13 777.1 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010048500.1 2237 2533 39.474 6.32e-13 531.1000000000001 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010050051.1 1422 1733 45.07 1.08e-14 706.0 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010052294.1 2934 3293 43.75 9.21e-14 968.0999999999999 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010052567.1 1484 2113 44.304 4.53e-13 974.3 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010052811.1 2023 2649 40.449 9.92e-14 877.9999999999999 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010052873.1 2690 2884 34.848 5.73e-06 49.7 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010053271.1 2401 2892 41.026 1.23e-14 990.5 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010054391.1 704 1314 100.0 6.36e-08 526.2 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010057856.1 1858 2382 43.836 1.14e-13 951.3 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010058109.1 1025 1492 37.975 4.77e-11 724.4000000000001 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010059547.1 364 918 42.254 2.33e-14 1075.3999999999999 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010060774.1 331 726 41.096 2.13e-13 898.5000000000001 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010061323.1 865 1431 41.558 9.3e-12 713.1999999999999 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010062465.1 2015 2260 54.545 3.01e-21 898.6999999999999 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010063162.1 1105 1509 41.892 5.2e-10 570.1000000000001 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010063888.1 923 1396 42.683 1.07e-15 926.2 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010065297.1 1799 2164 47.945 3.22e-15 765.0999999999999 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010066738.1 2404 2586 41.818 8.08e-08 104.8 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010066878.1 1172 1596 41.667 4.22e-07 127.1 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010067818.1 445 942 41.892 6.11e-11 736.3 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010071430.1 1208 1384 45.763 3.94e-08 56.2 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010072267.1 944 1438 41.026 2.22e-12 763.3000000000001 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010072402.1 69 497 42.857 1.15e-11 903.6 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010072924.1 775 1104 30.392 1.8e-07 209.5 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010074222.1 1746 2093 39.744 1.35e-11 520.2 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010077430.1 1118 1690 42.308 8.56e-14 1134.5 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010077935.1 490 1134 40.0 2.16e-15 1126.8999999999999 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010079378.1 3 440 41.892 1.44e-10 846.4 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010080089.1 1048 1683 39.726 3.51e-12 891.0 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HMG CAJVQB010082264.1 139 435 48.101 9.16e-13 556.0999999999999 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HD CAJVQB010000837.1 13738 13887 50.0 2.65e-09 178.4 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HD CAJVQB010003192.1 13168 14685 32.634 2.59e-47 6556.0 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HD CAJVQB010003463.1 2733 3536 40.824 3.1e-46 6298.0 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HD CAJVQB010003754.1 12317 12619 48.889 8.55e-09 222.9 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 HD CAJVQB010005229.1 8271 8540 52.0 1.57e-10 184.4 +Spraguea_lophii_42_110|GCA_000430065.1_Sprlop1.0 HD ATCN01000054.1 2588 3091 51.163 1.27e-10 250.29999999999998 +Spraguea_lophii_42_110|GCA_000430065.1_Sprlop1.0 HD ATCN01000214.1 9877 11189 55.556 1.11e-14 548.3999999999999 +Spraguea_lophii_42_110|GCA_000430065.1_Sprlop1.0 HD ATCN01001389.1 913 1431 30.0 1.59e-07 2026.7999999999993 +Microsporidia_sp._MB|GCA_049634765.1_KEMRI_ICIPE_Tes0708gam HD JBMNCT010008263.1 842 1351 52.381 1.29e-14 285.8 +Microsporidia_sp._MB|GCA_032191455.1_ICIPE_MspMB_1.0 HD JAVKTW010000901.1 951 1460 52.381 1.13e-14 285.79999999999995 +Coemansia_sp._RSA_2524|GCA_027578135.1_UCR_CoemRSA2524_1.0 HMG JANBSK010000004.1 104019 104354 43.396 3.16e-10 515.8 +Coemansia_sp._RSA_2524|GCA_027578135.1_UCR_CoemRSA2524_1.0 HMG JANBSK010000297.1 4510 4845 38.596 1.41e-09 247.89999999999998 +Coemansia_sp._RSA_2524|GCA_027578135.1_UCR_CoemRSA2524_1.0 HMG JANBSK010000788.1 194 346 43.137 1.78e-07 49.3 +Coemansia_sp._RSA_2524|GCA_027578135.1_UCR_CoemRSA2524_1.0 HMG JANBSK010001112.1 1723 2145 42.373 1.36e-09 144.0 +Coemansia_sp._RSA_2524|GCA_027578135.1_UCR_CoemRSA2524_1.0 HMG JANBSK010001177.1 1509 1946 33.645 8.69e-07 94.7 +Coemansia_sp._RSA_2524|GCA_027578135.1_UCR_CoemRSA2524_1.0 HMG JANBSK010001274.1 3 140 74.194 1.49e-09 212.89999999999998 +Coemansia_sp._RSA_2524|GCA_027578135.1_UCR_CoemRSA2524_1.0 HD JANBSK010001037.1 1330 1551 35.821 1.07e-06 89.3 +Coemansia_sp._RSA_551|GCA_027577555.1_UCR_CoemRSA551_1.0 HMG JANBRC010000032.1 18733 19068 43.396 3.23e-10 515.8 +Coemansia_sp._RSA_551|GCA_027577555.1_UCR_CoemRSA551_1.0 HMG JANBRC010001001.1 118 555 33.645 1.33e-06 93.9 +Coemansia_sp._RSA_921|GCA_027577315.1_UCR_CoemRSA921_1.0 HMG JANBQT010000001.1 39629 40051 42.373 1.66e-09 145.2 +Coemansia_sp._RSA_921|GCA_027577315.1_UCR_CoemRSA921_1.0 HMG JANBQT010000001.1 80214 80549 42.373 1.19e-10 211.10000000000002 +Coemansia_sp._RSA_921|GCA_027577315.1_UCR_CoemRSA921_1.0 HMG JANBQT010000009.1 18369 18665 36.25 1.77e-11 650.8 +Coemansia_sp._RSA_921|GCA_027577315.1_UCR_CoemRSA921_1.0 HMG JANBQT010000009.1 25473 25787 54.545 1.09e-25 1253.3999999999999 +Coemansia_sp._RSA_921|GCA_027577315.1_UCR_CoemRSA921_1.0 HMG JANBQT010000030.1 9050 9535 33.645 3.48e-07 96.7 +Coemansia_sp._RSA_921|GCA_027577315.1_UCR_CoemRSA921_1.0 HMG JANBQT010000529.1 2121 2456 43.396 1.9e-10 517.3 +Hepatospora_eriocheir|GCA_002087875.1_ASM208787v1 HD LTAI01000236.1 443 730 47.727 7.71e-11 259.2 +Hepatospora_eriocheir|GCA_002087875.1_ASM208787v1 HD LTAI01000281.1 3076 3324 37.234 9.44e-07 800.4999999999999 +Hepatospora_eriocheir|GCA_002087875.1_ASM208787v1 HD LTAI01000442.1 370 2837 52.273 3.93e-13 2182.4000000000005 +Coemansia_sp._RSA_1287|GCA_027578735.1_UCR_CoemRSA1287_1.0 HMG JANBTP010000011.1 42629 42817 34.921 3.38e-06 46.2 +Coemansia_sp._RSA_1287|GCA_027578735.1_UCR_CoemRSA1287_1.0 HMG JANBTP010000023.1 18739 19074 42.373 8.91e-11 211.10000000000002 +Coemansia_sp._RSA_1287|GCA_027578735.1_UCR_CoemRSA1287_1.0 HMG JANBTP010000089.1 69 506 33.645 1.42e-06 94.0 +Coemansia_sp._RSA_1287|GCA_027578735.1_UCR_CoemRSA1287_1.0 HMG JANBTP010000120.1 3451 3936 38.596 7.98e-11 342.0 +Coemansia_sp._RSA_1287|GCA_027578735.1_UCR_CoemRSA1287_1.0 HMG JANBTP010000278.1 1541 1876 43.396 2.29e-10 515.8 +Coemansia_sp._RSA_1287|GCA_027578735.1_UCR_CoemRSA1287_1.0 HMG JANBTP010000846.1 834 1130 36.25 1.23e-11 650.8 +Coemansia_aciculifera|GCA_027579955.1_UCR_CoacBCRC34181_1.0 HMG JANBVC010000013.1 8507 8653 38.776 2.54e-06 45.1 +Coemansia_aciculifera|GCA_027579955.1_UCR_CoacBCRC34181_1.0 HMG JANBVC010000280.1 4386 4943 55.0 1.29e-24 1207.7 +Coemansia_aciculifera|GCA_027579955.1_UCR_CoacBCRC34181_1.0 HMG JANBVC010000609.1 2043 2480 28.125 1.79e-06 45.4 +Coemansia_aciculifera|GCA_027579955.1_UCR_CoacBCRC34181_1.0 HMG JANBVC010000763.1 414 926 42.105 7.02e-10 336.7 +Coemansia_aciculifera|GCA_027579955.1_UCR_CoacBCRC34181_1.0 HMG JANBVC010001553.1 1095 1298 36.538 1.04e-07 95.9 +Coemansia_aciculifera|GCA_027579955.1_UCR_CoacBCRC34181_1.0 HMG JANBVC010001600.1 7 663 43.636 1.57e-10 309.59999999999997 +Coemansia_sp._RSA_475|GCA_027577635.1_UCR_CoemRSA475_1.0 HMG JANBRL010000002.1 17512 17934 42.373 1.71e-09 145.2 +Coemansia_sp._RSA_475|GCA_027577635.1_UCR_CoemRSA475_1.0 HMG JANBRL010000002.1 60745 61080 42.373 1.17e-10 211.10000000000002 +Coemansia_sp._RSA_475|GCA_027577635.1_UCR_CoemRSA475_1.0 HMG JANBRL010000016.1 18525 18860 43.396 2.18e-10 516.9 +Coemansia_sp._RSA_475|GCA_027577635.1_UCR_CoemRSA475_1.0 HMG JANBRL010000664.1 1339 1527 34.921 4.03e-06 46.2 +Coemansia_sp._RSA_475|GCA_027577635.1_UCR_CoemRSA475_1.0 HMG JANBRL010001784.1 921 1313 32.558 6.88e-09 193.0 +Coemansia_sp._RSA_475|GCA_027577635.1_UCR_CoemRSA475_1.0 HD JANBRL010000910.1 979 1200 35.821 1.06e-06 89.69999999999999 +Coemansia_sp._RSA_530|GCA_027577795.1_UCR_CoemRSA530_1.0 HMG JANBRE010000002.1 135263 135598 43.396 2e-10 517.3 +Coemansia_sp._RSA_530|GCA_027577795.1_UCR_CoemRSA530_1.0 HMG JANBRE010000131.1 2456 5313 38.596 9.88e-11 446.0 +Coemansia_sp._RSA_530|GCA_027577795.1_UCR_CoemRSA530_1.0 HMG JANBRE010001197.1 257 694 33.645 1.39e-06 94.0 +Coemansia_sp._RSA_1937|GCA_027578435.1_UCR_CoemRSA1937_1.0 HMG JANBSY010000004.1 16146 16481 42.373 1.04e-10 211.1 +Coemansia_sp._RSA_1937|GCA_027578435.1_UCR_CoemRSA1937_1.0 HMG JANBSY010000004.1 56644 57066 42.373 1.45e-09 145.2 +Coemansia_sp._RSA_1937|GCA_027578435.1_UCR_CoemRSA1937_1.0 HMG JANBSY010000026.1 24973 25458 33.645 3.04e-07 96.7 +Coemansia_sp._RSA_1937|GCA_027578435.1_UCR_CoemRSA1937_1.0 HMG JANBSY010000068.1 523 675 43.137 1.94e-07 49.3 +Coemansia_sp._RSA_788|GCA_027577475.1_UCR_CoemRSA788_1.0 HMG JANBQU010000001.1 144677 145012 43.396 2.05e-10 517.3 +Coemansia_sp._RSA_788|GCA_027577475.1_UCR_CoemRSA788_1.0 HMG JANBQU010000141.1 1768 4619 38.596 1.02e-10 446.0 +Coemansia_sp._RSA_788|GCA_027577475.1_UCR_CoemRSA788_1.0 HMG JANBQU010000404.1 316 651 42.373 9.75e-11 211.89999999999998 +Coemansia_sp._RSA_788|GCA_027577475.1_UCR_CoemRSA788_1.0 HMG JANBQU010001535.1 1 285 36.264 7.53e-11 450.3 +Coemansia_sp._RSA_788|GCA_027577475.1_UCR_CoemRSA788_1.0 HMG JANBQU010001541.1 931 1092 41.176 1.86e-07 93.9 +Coemansia_sp._RSA_2052|GCA_027578455.1_UCR_CoemRSA2052_1.0 HMG JANBST010000123.1 5450 5809 37.179 1.86e-10 581.6 +Coemansia_sp._RSA_2052|GCA_027578455.1_UCR_CoemRSA2052_1.0 HMG JANBST010000287.1 205 393 38.095 8.17e-08 49.3 +Coemansia_sp._RSA_2052|GCA_027578455.1_UCR_CoemRSA2052_1.0 HMG JANBST010000338.1 1 132 47.727 2.42e-07 93.2 +Coemansia_sp._RSA_2052|GCA_027578455.1_UCR_CoemRSA2052_1.0 HMG JANBST010000471.1 3276 3467 30.137 8.84e-06 45.4 +Coemansia_sp._RSA_2052|GCA_027578455.1_UCR_CoemRSA2052_1.0 HMG JANBST010000712.1 3053 3217 44.828 5.7e-06 45.8 +Coemansia_sp._RSA_2052|GCA_027578455.1_UCR_CoemRSA2052_1.0 HMG JANBST010001496.1 1583 2086 55.0 3.51e-25 1245.8999999999999 +Coemansia_sp._RSA_2052|GCA_027578455.1_UCR_CoemRSA2052_1.0 HMG JANBST010001825.1 554 1069 41.667 6.18e-09 330.90000000000003 +Coemansia_sp._RSA_2052|GCA_027578455.1_UCR_CoemRSA2052_1.0 HMG JANBST010001843.1 286 528 30.864 9.78e-06 43.1 +Massospora_cicadina|GCA_006912075.1_UMICH_Mcic_1 HMG QMCF01060181.1 1866 2354 40.541 1.31e-09 621.3 +Massospora_cicadina|GCA_006912075.1_UMICH_Mcic_1 HMG QMCF01089905.1 1283 1729 40.0 6.41e-13 684.3 +Massospora_cicadina|GCA_006912075.1_UMICH_Mcic_1 HD QMCF01026385.1 858 1229 27.273 6.15e-06 317.1 +Coemansia_sp._RSA_1836|GCA_027578595.1_UCR_CoemRSA1836_1.0 HMG JANBTD010000479.1 153 722 40.385 1.77e-08 524.6 +Coemansia_sp._RSA_1836|GCA_027578595.1_UCR_CoemRSA1836_1.0 HMG JANBTD010000612.1 157 681 55.0 2.62e-25 1254.0 +Coemansia_sp._RSA_1694|GCA_027578655.1_UCR_CoemRSA1694_1.0 HMG JANBTL010000004.1 13365 13934 40.385 1.82e-08 527.9 +Coemansia_sp._RSA_1694|GCA_027578655.1_UCR_CoemRSA1694_1.0 HMG JANBTL010000348.1 475 834 37.179 1.91e-10 581.2 +Coemansia_sp._RSA_1694|GCA_027578655.1_UCR_CoemRSA1694_1.0 HMG JANBTL010000350.1 4162 4353 30.137 9.99e-06 45.1 +Coemansia_sp._RSA_1694|GCA_027578655.1_UCR_CoemRSA1694_1.0 HMG JANBTL010001016.1 2687 2851 44.828 4.71e-06 45.8 +Coemansia_sp._RSA_1694|GCA_027578655.1_UCR_CoemRSA1694_1.0 HMG JANBTL010001693.1 343 711 38.462 7.25e-08 189.9 +Coemansia_sp._RSA_1694|GCA_027578655.1_UCR_CoemRSA1694_1.0 HMG JANBTL010002007.1 679 930 35.294 5.92e-06 90.8 +Coemansia_sp._RSA_25|GCA_027478835.1_UCR_CoemRSA25_1.0 HMG JANJYR010000172.1 1796 2155 37.179 1.54e-10 580.8 +Coemansia_sp._RSA_25|GCA_027478835.1_UCR_CoemRSA25_1.0 HMG JANJYR010000388.1 1255 1623 38.462 7.37e-08 189.5 +Coemansia_sp._RSA_25|GCA_027478835.1_UCR_CoemRSA25_1.0 HMG JANJYR010000742.1 495 746 35.294 4.07e-06 91.19999999999999 +Coemansia_sp._RSA_25|GCA_027478835.1_UCR_CoemRSA25_1.0 HMG JANJYR010000968.1 255 671 40.351 2.35e-08 233.3 +Coemansia_sp._RSA_25|GCA_027478835.1_UCR_CoemRSA25_1.0 HMG JANJYR010001005.1 1056 1220 44.828 3.68e-06 45.8 +Agmasoma_carcini_nom._nud.|GCA_029231695.1_Cm_Agmasoma_carcini_1 HD JAOXFJ010000012.1 381 518 45.652 4.77e-06 44.3 +Agmasoma_carcini_nom._nud.|GCA_029231695.1_Cm_Agmasoma_carcini_1 HD JAOXFJ010000031.1 2456 2833 56.818 2.03e-13 288.9 +Massospora_platypediae|GCA_006912095.1_Mplat_NP02_megahit HMG QKRY011115577.1 651 1001 44.578 3.99e-16 791.4 +Massospora_platypediae|GCA_006912095.1_Mplat_NP02_megahit HMG QKRY011271659.1 2507 3157 40.0 3.37e-12 697.8000000000001 +Massospora_platypediae|GCA_006912095.1_Mplat_NP02_megahit HD QKRY011380830.1 3051 3209 49.057 2.3e-08 165.6 +Entomophthora_muscae|GCA_900018355.1_Em_KVL-14-118 HMG FCOS01011921.1 378 974 35.065 3.98e-10 354.70000000000005 +Entomophthora_muscae|GCA_900018355.1_Em_KVL-14-118 HD FCOS01006535.1 92 427 53.061 1.21e-09 247.3 +Chytridiomycetes_sp.|GCA_023347045.1_ASM2334704v1 HMG JAJQPJ010000053.1 1321 1704 38.158 9.28e-15 846.5000000000001 diff --git a/docs/notes/2026-11-14_mat-discovery-tables/annotfree_summary.tsv b/docs/notes/2026-11-14_mat-discovery-tables/annotfree_summary.tsv new file mode 100644 index 00000000..35ebf309 --- /dev/null +++ b/docs/notes/2026-11-14_mat-discovery-tables/annotfree_summary.tsv @@ -0,0 +1,49 @@ +genome contigs bp hmg_regions hd_regions pairs contigs_with_pair longest_pair_contig_bp +Vairimorpha_sp._gmOTU17_SAN00002588|GCA_986194575.1_ilOchDupl1.microsporidian_1.1 12 467395 0 0 0 0 0 +Metchnikovella_incurvata|GCA_003600395.1_ASM360039v1 422 4611157 0 0 0 0 0 +Tubulinosema_ratisbonensis|GCA_004000155.1_ASM400015v1 781 7301063 0 2 0 0 0 +Amoeboradix_gromovi|GCA_018985225.1_ASM1898522v1 549 4221620 0 0 0 0 0 +Vairimorpha_ceranae_BRL01|GCF_000182985.1_ASM18298v1 639 4343874 0 3 0 0 0 +Spraguea_lophii|GCA_011076965.1_ASM1107696v1 847 5510003 0 3 0 0 0 +Spraguea_lophii|GCA_011074935.1_ASM1107493v1 851 5544380 0 3 0 0 0 +Sanchytrium_tribonematis|GCA_018985235.1_ASM1898523v1 897 6251251 0 0 0 0 0 +Spraguea_lophii|GCA_011076975.1_ASM1107697v1 864 5569531 0 2 0 0 0 +Spraguea_lophii|GCA_011074965.1_ASM1107496v1 840 5393868 0 3 0 0 0 +Spraguea_lophii|GCA_011074945.1_ASM1107494v1 844 5442871 0 3 0 0 0 +Spraguea_lophii|GCA_011076955.1_ASM1107695v1 864 5502253 0 3 0 0 0 +Spraguea_lophii|GCA_011074975.1_ASM1107497v1 863 5492815 0 3 0 0 0 +Pseudoloma_neurophilia|GCA_001432165.1_ASM143216v1 654 4254243 0 2 0 0 0 +fungal_sp.|GCA_023347065.1_ASM2334706v1 386 2777346 0 0 0 0 0 +Gigaspora_margarita|GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 82485 477110750 169 5 0 0 0 +Spraguea_lophii_42_110|GCA_000430065.1_Sprlop1.0 746 4271025 0 3 0 0 0 +Microsporidia_sp._MB|GCA_050230985.1_KEMRI_ICIPE_ABN394 938 5163565 0 0 0 0 0 +Microsporidia_sp._MB|GCA_049634765.1_KEMRI_ICIPE_Tes0708gam 1135 6052440 0 1 0 0 0 +Microsporidia_sp._MB|GCA_032191455.1_ICIPE_MspMB_1.0 979 5119153 0 1 0 0 0 +Siphonaria_sp._JEL0065|GCA_027596065.1_ASM2759606v1 681 3658752 0 0 0 0 0 +Coemansia_sp._RSA_2524|GCA_027578135.1_UCR_CoemRSA2524_1.0 1593 8304496 6 1 0 0 0 +Coemansia_sp._RSA_551|GCA_027577555.1_UCR_CoemRSA551_1.0 1625 8564016 2 0 0 0 0 +Microsporidia_sp._MB|GCA_049634785.1_KEMRI_ICIPE_Tes094gam 1198 5703600 0 0 0 0 0 +Coemansia_sp._RSA_921|GCA_027577315.1_UCR_CoemRSA921_1.0 1702 8528317 6 0 0 0 0 +Hepatospora_eriocheir|GCA_002087875.1_ASM208787v1 691 3239267 0 3 0 0 0 +Coemansia_sp._RSA_1287|GCA_027578735.1_UCR_CoemRSA1287_1.0 1347 6467358 6 0 0 0 0 +Coemansia_aciculifera|GCA_027579955.1_UCR_CoacBCRC34181_1.0 1888 8968546 6 0 0 0 0 +Coemansia_sp._RSA_475|GCA_027577635.1_UCR_CoemRSA475_1.0 1831 8821283 5 1 0 0 0 +Coemansia_sp._RSA_530|GCA_027577795.1_UCR_CoemRSA530_1.0 1768 8120245 3 0 0 0 0 +Coemansia_sp._RSA_1937|GCA_027578435.1_UCR_CoemRSA1937_1.0 1622 7474678 4 0 0 0 0 +Coemansia_sp._RSA_788|GCA_027577475.1_UCR_CoemRSA788_1.0 1855 8355062 5 0 0 0 0 +Nosema_rusticus|GCA_046563365.1_FR26_Nr_1 1452 6197048 0 0 0 0 0 +Coemansia_sp._RSA_2052|GCA_027578455.1_UCR_CoemRSA2052_1.0 2097 8900158 8 0 0 0 0 +Massospora_cicadina|GCA_006912075.1_UMICH_Mcic_1 144784 584366494 2 1 0 0 0 +Coemansia_sp._RSA_1836|GCA_027578595.1_UCR_CoemRSA1836_1.0 1795 7263336 2 0 0 0 0 +Coemansia_sp._RSA_1694|GCA_027578655.1_UCR_CoemRSA1694_1.0 2055 8354744 6 0 0 0 0 +Dictyocoela_roeselum|GCA_016255985.1_ASM1625598v1 383 1398123 0 0 0 0 0 +Coemansia_sp._RSA_25|GCA_027478835.1_UCR_CoemRSA25_1.0 1749 6626621 5 0 0 0 0 +Areospora_rohanae|GCA_056822185.1_ASM5682218v1 1428 5284787 0 0 0 0 0 +Anncaliia_algerae|GCA_000313815.1_ASM31381v1 2245 7547728 0 0 0 0 0 +Alternosema_astaquatica|GCA_030386735.1_Fv_Alternosema1 319 1077699 0 0 0 0 0 +Agmasoma_carcini_nom._nud.|GCA_029231695.1_Cm_Agmasoma_carcini_1 305 975333 0 2 0 0 0 +Massospora_platypediae|GCA_006912095.1_Mplat_NP02_megahit 241057 750606274 2 1 0 0 0 +Entomophthora_muscae|GCA_900018355.1_Em_KVL-14-118 2615 7761280 1 1 0 0 0 +Hamiltosporidium_tvaerminnensis|GCA_000180835.1_ASM18083v1 278 720977 0 0 0 0 0 +Neocallimastix_californiae|GCA_975848665.1_SNW_BASALT_bin1877_ASM_v1 101 254788 0 0 0 0 0 +Chytridiomycetes_sp.|GCA_023347045.1_ASM2334704v1 279 707884 1 0 0 0 0 diff --git a/docs/notes/2026-11-14_mat-discovery-tables/augustus_genomes_2_3_candidates.tsv b/docs/notes/2026-11-14_mat-discovery-tables/augustus_genomes_2_3_candidates.tsv new file mode 100644 index 00000000..8048c976 --- /dev/null +++ b/docs/notes/2026-11-14_mat-discovery-tables/augustus_genomes_2_3_candidates.tsv @@ -0,0 +1,61 @@ +Globomyces_pollinis-pini_Glopol1 g17 MU621090.1 16 rnhA 86630_cbs357-93_MAT_Minus|gene1|rnhA 1.04e-07 +Globomyces_pollinis-pini_Glopol1 g281 MU621093.1 280 Homeodomain 1.2e-17 +Globomyces_pollinis-pini_Glopol1 g286 MU621093.1 285 Homeodomain 3.5e-18 +Globomyces_pollinis-pini_Glopol1 g321 MU621094.1 320 HMG_box 6.8e-13 +Globomyces_pollinis-pini_Glopol1 g540 MU621097.1 539 choline AMM63120.1 5.55e-58 +Globomyces_pollinis-pini_Glopol1 g829 MU621102.1 828 HMG_box 3.8e-11 +Globomyces_pollinis-pini_Glopol1 g1449 MU621115.1 1448 HMG_box 8.9e-13 +Globomyces_pollinis-pini_Glopol1 g1676 MU621120.1 1675 rnhA 29922_cbs109-16_MAT_Minus|gene2|rnhA 5.87e-33 +Globomyces_pollinis-pini_Glopol1 g1874 MU621125.1 1873 Homeodomain 2.5e-19 +Globomyces_pollinis-pini_Glopol1 g2478 MU621144.1 2477 HMG_box 5.4e-14 sexP 3108396_ai-2023a_MAT_Plus|gene2|sexP 8.82e-10 +Globomyces_pollinis-pini_Glopol1 g2979 MU621161.1 2978 HMG_box 1e-12 sexM 4837_nrrl1555_MAT_Minus|gene1|sexM 1.4e-07 +Globomyces_pollinis-pini_Glopol1 g3739 MU621191.1 3738 tptA 3108396_ai-2023a_MAT_Plus|gene1|tptA 8.09e-16 +Globomyces_pollinis-pini_Glopol1 g3940 MU621201.1 3939 HMG_box 1.8e-14 +Globomyces_pollinis-pini_Glopol1 g4421 MU621225.1 4420 HMG_box 1.6e-15 +Globomyces_pollinis-pini_Glopol1 g4450 MU621227.1 4449 glrA 86630_cbs357-93_MAT_Minus|gene2|glrA 4.86e-115 +Globomyces_pollinis-pini_Glopol1 g4511 MU621230.1 4510 HMG_box 9.8e-08 +Globomyces_pollinis-pini_Glopol1 g4923 MU621256.1 4922 HMG_box 2e-13 +Globomyces_pollinis-pini_Glopol1 g4928 MU621256.1 4927 HMG_box 1.7e-13 +Globomyces_pollinis-pini_Glopol1 g5065 MU621265.1 5064 rnhA 3108396_ai-2023a_MAT_Plus|gene3|rnhA 5.53e-32 +Globomyces_pollinis-pini_Glopol1 g5474 MU621297.1 5473 choline AMM63120.1 7.48e-64 +Globomyces_pollinis-pini_Glopol1 g5476 MU621297.1 5475 choline AMM63120.1 4.32e-43 +Globomyces_pollinis-pini_Glopol1 g5561 MU621304.1 5560 rnhA 86630_cbs357-93_MAT_Minus|gene1|rnhA 6.1e-26 +Globomyces_pollinis-pini_Glopol1 g5896 MU621335.1 5895 rnhA 3108396_ai-2023a_MAT_Plus|gene3|rnhA 8.54e-27 +Globomyces_pollinis-pini_Glopol1 g6538 MU621409.1 6537 HMG_box 9.8e-09 +Globomyces_pollinis-pini_Glopol1 g6733 MU621435.1 6732 HMG_box 1.9e-10 +Globomyces_pollinis-pini_Glopol1 g6855 MU621454.1 6854 HMG_box 5.3e-11 sexM 4837_nrrl1555_MAT_Minus|gene1|sexM 2.33e-07 +Globomyces_pollinis-pini_Glopol1 g7055 MU621488.1 7054 HMG_box 1.1e-14 +Globomyces_pollinis-pini_Glopol1 g7541 MU621598.1 7540 HMG_box 9.1e-11 sexM 4837_nrrl1555_MAT_Minus|gene1|sexM 4.06e-07 +Globomyces_pollinis-pini_Glopol1 g7543 MU621598.1 7542 HMG_box 1e-09 +Globomyces_pollinis-pini_Glopol1 g7544 MU621598.1 7543 HMG_box 7.2e-11 sexM 4837_nrrl1555_MAT_Minus|gene1|sexM 2.97e-07 +Globomyces_sp_JEL0801_ASM2759588 g794 JADGIX010000014.1 793 Homeodomain 8.4e-18 +Globomyces_sp_JEL0801_ASM2759588 g801 JADGIX010000014.1 800 Homeodomain 2.5e-18 +Globomyces_sp_JEL0801_ASM2759588 g2165 JADGIX010000060.1 2164 HMG_box 2.6e-14 +Globomyces_sp_JEL0801_ASM2759588 g2253 JADGIX010000063.1 2252 HMG_box 7.1e-13 sexM 4837_nrrl1555_MAT_Minus|gene1|sexM 1.4e-07 +Globomyces_sp_JEL0801_ASM2759588 g2256 JADGIX010000063.1 2255 HMG_box 7.1e-13 sexM 4837_nrrl1555_MAT_Minus|gene1|sexM 1.4e-07 +Globomyces_sp_JEL0801_ASM2759588 g2335 JADGIX010000067.1 2334 HMG_box 4.1e-14 sexP 3108396_ai-2023a_MAT_Plus|gene2|sexP 8.69e-10 +Globomyces_sp_JEL0801_ASM2759588 g2515 JADGIX010000075.1 2514 rnhA 29922_cbs109-16_MAT_Minus|gene2|rnhA 5.83e-33 +Globomyces_sp_JEL0801_ASM2759588 g2873 JADGIX010000094.1 2872 choline AMM63111.1 8.84e-60 +Globomyces_sp_JEL0801_ASM2759588 g3757 JADGIX010000152.1 3756 rnhA 101119_atcc11807_MAT_Minus|gene1|rnhA 6.03e-31 +Globomyces_sp_JEL0801_ASM2759588 g4138 JADGIX010000183.1 4137 rnhA 86630_cbs357-93_MAT_Minus|gene1|rnhA 3e-18 +Globomyces_sp_JEL0801_ASM2759588 g4690 JADGIX010000243.1 4689 HMG_box 1.4e-10 +Globomyces_sp_JEL0801_ASM2759588 g4706 JADGIX010000245.1 4705 HMG_box 1.1e-15 +Globomyces_sp_JEL0801_ASM2759588 g5334 JADGIX010000364.1 5333 HMG_box 4.3e-11 sexM 4837_nrrl1555_MAT_Minus|gene1|sexM 9.06e-08 +Globomyces_sp_JEL0801_ASM2759588 g5335 JADGIX010000364.1 5334 HMG_box 7.5e-10 +Globomyces_sp_JEL0801_ASM2759588 g5364 JADGIX010000374.1 5363 HMG_box 1.6e-09 +Globomyces_sp_JEL0801_ASM2759588 g5894 JADGIX010000741.1 5893 HMG_box 1.4e-13 +Mitosporidium_daphniae_ASM5257605 g56 JBLVQJ010000001.1 55 Homeodomain 1.6e-15 +Mitosporidium_daphniae_ASM5257605 g98 JBLVQJ010000001.1 97 Homeodomain 1.4e-16 +Mitosporidium_daphniae_ASM5257605 g332 JBLVQJ010000001.1 331 glrA 3108396_ai-2023a_MAT_Plus|gene4|glrA 1.26e-83 +Mitosporidium_daphniae_ASM5257605 g700 JBLVQJ010000002.1 699 Homeodomain 1.5e-20 +Mitosporidium_daphniae_ASM5257605 g1043 JBLVQJ010000003.1 1042 rnhA 3108396_ai-2023a_MAT_Plus|gene3|rnhA 7.32e-30 +Mitosporidium_daphniae_ASM5257605 g1911 JBLVQJ010000006.1 1910 rnhA 64495_cbs110-17_MAT_Minus|gene2|rnhA 9.19e-21 +Mitosporidium_daphniae_ASM5257605 g2087 JBLVQJ010000007.1 2086 choline AMM63120.1 3.95e-42 +Mitosporidium_daphniae_ASM5257605 g2138 JBLVQJ010000007.1 2137 Homeodomain 6.4e-08 +Mitosporidium_daphniae_UGP1 g426 NW_013546154.1 425 choline AMM63120.1 3.95e-42 +Mitosporidium_daphniae_UGP1 g474 NW_013546159.1 473 rnhA 64495_cbs110-17_MAT_Minus|gene2|rnhA 9.19e-21 +Mitosporidium_daphniae_UGP1 g1733 NW_013546648.1 1732 rnhA 3108396_ai-2023a_MAT_Plus|gene3|rnhA 7.32e-30 +Mitosporidium_daphniae_UGP1 g1879 NW_013546678.1 1878 Homeodomain 1.6e-15 +Mitosporidium_daphniae_UGP1 g1927 NW_013546685.1 1926 Homeodomain 6.2e-08 +Mitosporidium_daphniae_UGP1 g2014 NW_013546695.1 2013 glrA 3108396_ai-2023a_MAT_Plus|gene4|glrA 1.26e-83 +Mitosporidium_daphniae_UGP1 g2158 NW_013546711.1 2157 Homeodomain 1.4e-16 diff --git a/docs/notes/2026-11-14_mat-discovery-tables/augustus_genomes_candidates.tsv b/docs/notes/2026-11-14_mat-discovery-tables/augustus_genomes_candidates.tsv new file mode 100644 index 00000000..10b75036 --- /dev/null +++ b/docs/notes/2026-11-14_mat-discovery-tables/augustus_genomes_candidates.tsv @@ -0,0 +1,45 @@ +Amoeboaphelidium_protococcarum_FD95 g2494 JALECJ010000004.1 159 HMG_box 8.5e-12 sexM 4850_vkm-f-921_MAT_Minus|gene0|sexM 2.23e-11 +Amoeboaphelidium_protococcarum_FD95 g2513 JALECJ010000004.1 178 glrA 86630_cbs357-93_MAT_Minus|gene2|glrA 1.98e-20 +Amoeboaphelidium_protococcarum_FD95 g2515 JALECJ010000004.1 180 HMG_box 9.3e-08 +Amoeboaphelidium_protococcarum_FD95 g2877 JALECJ010000004.1 542 rnhA 86630_cbs357-93_MAT_Minus|gene1|rnhA 3.52e-18 +Amoeboaphelidium_protococcarum_FD95 g102 JALECJ010000006.1 758 HMG_box 8.5e-45 +Amoeboaphelidium_protococcarum_FD95 g3333 JALECJ010000020.1 1029 glrA 3108396_ai-2023a_MAT_Plus|gene4|glrA 2.82e-11 +Amoeboaphelidium_protococcarum_FD95 g3712 JALECJ010000020.1 1408 tptA 4837_nrrl1555_MAT_Minus|gene0|tptA 2.58e-07 +Amoeboaphelidium_protococcarum_FD95 g2127 JALECJ010000254.1 2385 HMG_box 9.9e-08 +Amoeboaphelidium_protococcarum_FD95 g733 JALECJ010000257.1 4169 choline AMM63120.1 1.27e-07 +Amoeboaphelidium_protococcarum_FD95 g846 JALECJ010000257.1 4282 choline AMM63120.1 5.55e-24 +Amoeboaphelidium_protococcarum_FD95 g1416 JALECJ010000257.1 4852 Homeodomain 8.6e-11 +Amoeboaphelidium_protococcarum_X5 g83 JALDTO010000013.1 82 tptA 64495_cbs346-36_MAT_Plus|gene0|tptA 6.55e-07 +Amoeboaphelidium_protococcarum_X5 g1379 JALDTO010000098.1 1378 HMG_box 9.4e-08 +Amoeboaphelidium_protococcarum_X5 g1954 JALDTO010000142.1 1953 rnhA 86630_cbs357-93_MAT_Minus|gene1|rnhA 2.98e-19 +Amoeboaphelidium_protococcarum_X5 g2558 JALDTO010000146.1 2557 HMG_box 6.1e-44 +Amoeboaphelidium_protococcarum_X5 g3432 JALDTO010000155.1 3431 glrA 86630_cbs357-93_MAT_Minus|gene2|glrA 8.33e-24 +Amoeboaphelidium_protococcarum_X5 g3658 JALDTO010000158.1 3657 HMG_box 1.8e-07 +Amoeboaphelidium_protococcarum_X5 g3661 JALDTO010000158.1 3660 glrA 86630_cbs357-93_MAT_Minus|gene2|glrA 1.98e-20 +Amoeboaphelidium_protococcarum_X5 g3686 JALDTO010000158.1 3685 HMG_box 4.3e-12 sexM 4850_vkm-f-921_MAT_Minus|gene0|sexM 3.77e-12 +Amoeboaphelidium_protococcarum_X5 g4437 JALDTO010000181.1 4436 glrA 3108396_ai-2023a_MAT_Plus|gene4|glrA 4.25e-12 +Amoeboaphelidium_protococcarum_X5 g4789 JALDTO010000192.1 4788 choline AMM63120.1 2.49e-24 +Amoeboaphelidium_protococcarum_X5 g4877 JALDTO010000200.1 4876 glrA 101119_atcc11807_MAT_Plus|gene1|glrA 9.89e-48 +Amoeboaphelidium_protococcarum_X5 g5240 JALDTO010000206.1 5239 Homeodomain 1.4e-16 +Amoeboaphelidium_protococcarum_X5 g5317 JALDTO010000206.1 5316 rnhA 64495_cbs110-17_MAT_Minus|gene2|rnhA 2.12e-16 +Amoeboaphelidium_protococcarum_X5 g6130 JALDTO010000213.1 6129 choline AMM63120.1 1.41e-13 +Amoeboaphelidium_protococcarum_X5 g6238 JALDTO010000213.1 6237 choline AMM63120.1 2.49e-08 +Amoeboaphelidium_protococcarum_X5 g8595 JALDTO010000266.1 8594 choline AMM63120.1 1.04e-07 +Amoeboaphelidium_protococcarum_X5 g8857 JALDTO010000266.1 8856 HMG_box 2e-06 +Rozella_allomycis_CSF55 g238 KE560505.1 237 HMG_box 1.9e-19 +Rozella_allomycis_CSF55 g461 KE560636.1 460 HMG_box 1.8e-11 +Rozella_allomycis_CSF55 g517 KE560662.1 516 Homeodomain 1e-09 +Rozella_allomycis_CSF55 g564 KE560700.1 563 Homeodomain 1.6e-19 +Rozella_allomycis_CSF55 g738 KE560785.1 737 Homeodomain 5.3e-18 +Rozella_allomycis_CSF55 g1503 KE560959.1 1502 HMG_box 1.7e-06 +Rozella_allomycis_CSF55 g1708 KE561019.1 1707 rnhA 64495_cbs110-17_MAT_Minus|gene2|rnhA 1.42e-14 +Rozella_allomycis_CSF55 g1851 KE561045.1 1850 glrA 101119_atcc11807_MAT_Plus|gene1|glrA 1.87e-19 +Rozella_allomycis_CSF55 g1945 KE561047.1 1944 rnhA 86630_cbs357-93_MAT_Minus|gene1|rnhA 9.68e-34 +Rozella_allomycis_CSF55 g2116 KE561068.1 2115 Homeodomain 3.7e-12 +Rozella_allomycis_CSF55 g2374 KE561117.1 2373 rnhA 64495_cbs110-17_MAT_Minus|gene2|rnhA 4.25e-66 +Rozella_allomycis_CSF55 g2504 KE561139.1 2503 choline AMM63119.1 1.44e-77 +Rozella_allomycis_CSF55 g2542 KE561145.1 2541 glrA 86630_cbs357-93_MAT_Minus|gene2|glrA 2.54e-123 +Rozella_allomycis_CSF55 g2710 KE561167.1 2709 Homeodomain 4.2e-09 +Rozella_allomycis_CSF55 g3485 KE561370.1 3484 HMG_box 6.7e-09 +Synchytrium_endobioticum_18_T1 g492 LDOR01000072.1 491 HMG_box 4.4e-09 +Synchytrium_endobioticum_18_T1 g730 LDOR01000148.1 729 HMG_box 2.4e-19 diff --git a/docs/notes/2026-11-14_mat-discovery-tables/empty_scan_genes.tsv b/docs/notes/2026-11-14_mat-discovery-tables/empty_scan_genes.tsv new file mode 100644 index 00000000..54a57a3e --- /dev/null +++ b/docs/notes/2026-11-14_mat-discovery-tables/empty_scan_genes.tsv @@ -0,0 +1,123 @@ +genome gene contig index strand domain best_control control_evalue control_identity +Protomyces_arabidopsidicola_C29 FB5CF295_003187 QXMI01000156.1 56 - HMG_box,HMG_box_2 +Protomyces_arabidopsidicola_C29 FB5CF295_003620 QXMI01000158.1 29 - HMG_box,HMG_box_2 mat1-Mc 2.39e-19 47.3 +Protomyces_arabidopsidicola_C29 FB5CF295_004315 QXMI01000171.1 6 + HMG_box,HMG_box_2 +Protomyces_arabidopsidicola_C29 FB5CF295_002914 QXMI01000153.1 44 + HMG_box,HMG_box_2 +Protomyces_arabidopsidicola_C29 FB5CF295_002288 QXMI01000125.1 27 + HMG_box,HMG_box_2 +Protomyces_arabidopsidicola_C29 FB5CF295_002678 QXMI01000151.1 49 + HMG_box,HMG_box_2 +Protomyces_arabidopsidicola_C29 FB5CF295_000707 QXMI01000042.1 51 - Homeodomain +Protomyces_arabidopsidicola_C29 FB5CF295_000240 QXMI01000021.1 18 + Homeodomain +Protomyces_arabidopsidicola_C29 FB5CF295_004088 QXMI01000168.1 196 + Homeodomain +Protomyces_arabidopsidicola_C29 FB5CF295_001530 QXMI01000092.1 113 + Homeodomain +Protomyces_arabidopsidicola_C29 FB5CF295_002391 QXMI01000125.1 130 + Homeodomain matPi 1.79e-19 55.2 +Protomyces_arabidopsidicola_C29 FB5CF295_003784 QXMI01000162.1 20 + Homeodomain +Protomyces_arabidopsidicola_C29 FB5CF295_002492 QXMI01000135.1 90 - Homeodomain +Protomyces_gravidus_NRRL_Y-17093 F88801A2_000932 QXDP01000077.1 112 + HMG_box,HMG_box_2 +Protomyces_gravidus_NRRL_Y-17093 F88801A2_003015 QXDP01000223.1 21 - HMG_box,HMG_box_2 mat1-Mc 4.86e-19 46.1 +Protomyces_gravidus_NRRL_Y-17093 F88801A2_004222 QXDP01000241.1 80 + HMG_box,HMG_box_2 +Protomyces_gravidus_NRRL_Y-17093 F88801A2_001018 QXDP01000087.1 85 + HMG_box,HMG_box_2 +Protomyces_gravidus_NRRL_Y-17093 F88801A2_005936 QXDP01000295.1 69 + HMG_box +Protomyces_gravidus_NRRL_Y-17093 F88801A2_001928 QXDP01000134.1 42 + HMG_box,HMG_box_2 +Protomyces_gravidus_NRRL_Y-17093 F88801A2_000169 QXDP01000022.1 13 + Homeodomain +Protomyces_gravidus_NRRL_Y-17093 F88801A2_003104 QXDP01000224.1 44 - Homeodomain +Protomyces_gravidus_NRRL_Y-17093 F88801A2_002493 QXDP01000205.1 32 - Homeodomain +Protomyces_gravidus_NRRL_Y-17093 F88801A2_003356 QXDP01000229.1 27 + Homeodomain +Protomyces_gravidus_NRRL_Y-17093 F88801A2_005815 QXDP01000284.1 146 + Homeodomain +Protomyces_pachydermus_NRRL_YB-4355 F1AD082B_004146 QXDU01000268.1 18 + HMG_box,HMG_box_2 +Protomyces_pachydermus_NRRL_YB-4355 F1AD082B_004825 QXDU01000283.1 0 + HMG_box,HMG_box_2 mat1-Mc 5.67e-20 48.6 +Protomyces_pachydermus_NRRL_YB-4355 F1AD082B_000170 QXDU01000011.1 166 + HMG_box,HMG_box_2 +Protomyces_pachydermus_NRRL_YB-4355 F1AD082B_002492 QXDU01000177.1 44 + HMG_box,HMG_box_2 +Protomyces_pachydermus_NRRL_YB-4355 F1AD082B_002636 QXDU01000197.1 4 + HMG_box,HMG_box_2 +Protomyces_pachydermus_NRRL_YB-4355 F1AD082B_002365 QXDU01000169.1 48 - HMG_box,HMG_box_2 +Protomyces_pachydermus_NRRL_YB-4355 F1AD082B_005216 QXDU01000297.1 51 - Homeodomain +Protomyces_pachydermus_NRRL_YB-4355 F1AD082B_003137 QXDU01000214.1 66 - Homeodomain +Protomyces_pachydermus_NRRL_YB-4355 F1AD082B_004594 QXDU01000275.1 148 + Homeodomain +Protomyces_pachydermus_NRRL_YB-4355 F1AD082B_004355 QXDU01000272.1 15 - Homeodomain +Protomyces_pachydermus_NRRL_YB-4355 F1AD082B_001889 QXDU01000121.1 86 - Homeodomain +Taphrina_sp._SM11_SM11 FE701F89_002486 RHDT01000177.1 75 - HMG_box,HMG_box_2 +Taphrina_sp._SM11_SM11 FE701F89_003070 RHDT01000209.1 208 - HMG_box,HMG_box_2 +Taphrina_sp._SM11_SM11 FE701F89_005246 RHDT01000298.1 18 - HMG_box,HMG_box_2 +Taphrina_sp._SM11_SM11 FE701F89_005907 RHDT01000320.1 108 - HMG_box,HMG_box_2 +Taphrina_sp._SM11_SM11 FE701F89_003968 RHDT01000277.1 54 - HMG_box,HMG_box_2 +Taphrina_sp._SM11_SM11 FE701F89_002270 RHDT01000158.1 74 + HMG_box,HMG_box_2 +Taphrina_sp._SM11_SM11 FE701F89_004203 RHDT01000278.1 60 - Homeodomain +Taphrina_sp._SM11_SM11 FE701F89_005748 RHDT01000310.1 177 - Homeodomain +Taphrina_sp._SM11_SM11 FE701F89_003870 RHDT01000276.1 20 - Homeodomain +Taphrina_sp._SM11_SM11 FE701F89_000756 RHDT01000055.1 127 - Homeodomain +Taphrina_sp._SM11_SM11 FE701F89_001314 RHDT01000098.1 118 - Homeodomain +Taphrina_sp._SM11_SM11 FE701F89_003773 RHDT01000274.1 73 - Homeodomain +Taphrina_sp._SM11_SM11 FE701F89_004046 RHDT01000277.1 132 + Homeodomain matPi 2.83e-17 47.7 +Taphrina_wiesneri_CBS_275.28 F929528F_001754 RHGK01000007.1 69 - HMG_box,HMG_box_2 +Taphrina_wiesneri_CBS_275.28 F929528F_006232 RHGK01000040.1 1 + HMG_box,HMG_box_2 matMc 7.58e-110 72.5 +Taphrina_wiesneri_CBS_275.28 F929528F_002443 RHGK01000010.1 72 - HMG_box,HMG_box_2 +Taphrina_wiesneri_CBS_275.28 F929528F_006331 RHGK01000042.1 26 + HMG_box,HMG_box_2 +Taphrina_wiesneri_CBS_275.28 F929528F_003515 RHGK01000015.1 94 - HMG_box +Taphrina_wiesneri_CBS_275.28 F929528F_001601 RHGK01000006.1 137 + HMG_box,HMG_box_2 +Taphrina_wiesneri_CBS_275.28 F929528F_004776 RHGK01000024.1 10 + HMG_box,HMG_box_2 +Taphrina_wiesneri_CBS_275.28 F929528F_000006 RHGK01000001.1 5 + Homeodomain +Taphrina_wiesneri_CBS_275.28 F929528F_002814 RHGK01000012.1 8 - Homeodomain +Taphrina_wiesneri_CBS_275.28 F929528F_004999 RHGK01000025.1 98 - Homeodomain +Taphrina_wiesneri_CBS_275.28 F929528F_004311 RHGK01000020.1 95 - Homeodomain +Taphrina_wiesneri_CBS_275.28 F929528F_004626 RHGK01000022.1 134 + Homeodomain +Taphrina_wiesneri_CBS_275.28 F929528F_004861 RHGK01000024.1 95 - Homeodomain +Taphrina_wiesneri_CBS_275.28 F929528F_002490 RHGK01000010.1 119 + Homeodomain matPi 3.18e-18 50.0 +Taphrina_communis_CBS_352.35 F8DCC00A_005415 RHGI01000033.1 20 + HMG_box,HMG_box_2 +Taphrina_communis_CBS_352.35 F8DCC00A_001803 RHGI01000006.1 205 + HMG_box,HMG_box_2 +Taphrina_communis_CBS_352.35 F8DCC00A_001525 RHGI01000005.1 173 + HMG_box,HMG_box_2 +Taphrina_communis_CBS_352.35 F8DCC00A_004874 RHGI01000028.1 95 - HMG_box +Taphrina_communis_CBS_352.35 F8DCC00A_002717 RHGI01000011.1 154 - HMG_box,HMG_box_2 +Taphrina_communis_CBS_352.35 F8DCC00A_004125 RHGI01000022.1 15 + HMG_box,HMG_box_2 +Taphrina_communis_CBS_352.35 F8DCC00A_005608 RHGI01000035.1 29 - HMG_box,HMG_box_2 +Taphrina_communis_CBS_352.35 F8DCC00A_000778 RHGI01000002.1 358 - Homeodomain +Taphrina_communis_CBS_352.35 F8DCC00A_005890 RHGI01000039.1 44 + Homeodomain +Taphrina_communis_CBS_352.35 F8DCC00A_004430 RHGI01000024.1 104 - Homeodomain +Taphrina_communis_CBS_352.35 F8DCC00A_003036 RHGI01000014.1 9 - Homeodomain +Taphrina_communis_CBS_352.35 F8DCC00A_001740 RHGI01000006.1 142 - Homeodomain +Taphrina_communis_CBS_352.35 F8DCC00A_002631 RHGI01000011.1 68 + Homeodomain +Taphrina_communis_CBS_352.35 F8DCC00A_001480 RHGI01000005.1 128 - Homeodomain matPi 6.85e-18 48.4 +Taphrina_betulina_UCD315 FC6B0312_004909 VWSI01000029.1 77 - HMG_box,HMG_box_2 +Taphrina_betulina_UCD315 FC6B0312_002103 VWSI01000009.1 150 - HMG_box,HMG_box_2 +Taphrina_betulina_UCD315 FC6B0312_001164 VWSI01000005.1 0 - HMG_box,HMG_box_2 +Taphrina_betulina_UCD315 FC6B0312_006079 VWSI01000048.1 25 + HMG_box,HMG_box_2 +Taphrina_betulina_UCD315 FC6B0312_004553 VWSI01000026.1 34 + HMG_box +Taphrina_betulina_UCD315 FC6B0312_005188 VWSI01000033.1 6 - HMG_box,HMG_box_2 +Taphrina_betulina_UCD315 FC6B0312_004634 VWSI01000027.1 2 - HMG_box +Taphrina_betulina_UCD315 FC6B0312_000540 VWSI01000002.1 195 + Homeodomain +Taphrina_betulina_UCD315 FC6B0312_006262 VWSI01000056.1 13 + Homeodomain +Taphrina_betulina_UCD315 FC6B0312_004330 VWSI01000024.1 41 - Homeodomain +Taphrina_betulina_UCD315 FC6B0312_000920 VWSI01000003.1 257 + Homeodomain +Taphrina_betulina_UCD315 FC6B0312_004101 VWSI01000022.1 46 + Homeodomain +Taphrina_betulina_UCD315 FC6B0312_001235 VWSI01000005.1 71 - Homeodomain +Taphrina_betulina_UCD315 FC6B0312_002074 VWSI01000009.1 121 - Homeodomain matPi 6.78e-16 47.6 +Schizosaccharomyces_lindneri_SZ1623-FG-A F602A758_002032 JARFMH010000012.1 99 + HMG_box,HMG_box_2 +Schizosaccharomyces_lindneri_SZ1623-FG-A F602A758_003075 JARFMH010000023.1 3 - HMG_box,HMG_box_2 +Schizosaccharomyces_lindneri_SZ1623-FG-A F602A758_004078 JARFMH010000038.1 42 - HMG_box mat1-Mc 2.66e-14 36.4 +Schizosaccharomyces_lindneri_SZ1623-FG-A F602A758_001962 JARFMH010000012.1 29 - HMG_box,HMG_box_2 +Schizosaccharomyces_lindneri_SZ1623-FG-A F602A758_002635 JARFMH010000018.1 31 - HMG_box,HMG_box_2 +Schizosaccharomyces_lindneri_SZ1623-FG-A F602A758_004890 JARFMH010000066.1 6 + Homeodomain +Schizosaccharomyces_lindneri_SZ1623-FG-A F602A758_002292 JARFMH010000014.1 112 - Homeodomain +Savitreella_phatthalungensis_PYCC_9005 FAD3C0EC_005693 AP039714.1 46 - HMG_box,HMG_box_2 +Savitreella_phatthalungensis_PYCC_9005 FAD3C0EC_002096 AP039694.1 32 - HMG_box mat1-Mc 7.59e-18 45.8 +Savitreella_phatthalungensis_PYCC_9005 FAD3C0EC_000256 AP039689.1 255 - HMG_box,HMG_box_2 +Savitreella_phatthalungensis_PYCC_9005 FAD3C0EC_004512 AP039704.1 44 - HMG_box,HMG_box_2 +Savitreella_phatthalungensis_PYCC_9005 FAD3C0EC_000516 AP039689.1 515 + HMG_box,HMG_box_2 +Savitreella_phatthalungensis_PYCC_9005 FAD3C0EC_004465 AP039703.1 178 + HMG_box,HMG_box_2 +Savitreella_phatthalungensis_PYCC_9005 FAD3C0EC_001063 AP039691.1 29 - Homeodomain +Savitreella_phatthalungensis_PYCC_9005 FAD3C0EC_001012 AP039690.1 421 - Homeodomain +Savitreella_phatthalungensis_PYCC_9005 FAD3C0EC_005451 AP039712.1 20 - Homeodomain +Savitreella_phatthalungensis_PYCC_9005 FAD3C0EC_005041 AP039708.1 71 + Homeodomain +Savitreella_phatthalungensis_PYCC_9005 FAD3C0EC_004577 AP039704.1 109 - Homeodomain +Savitreella_phatthalungensis_PYCC_9005 FAD3C0EC_000542 AP039689.1 541 - Homeodomain matPi 8.23e-15 52.0 +Savitreella_phatthalungensis_PYCC_9005 FAD3C0EC_005560 AP039713.1 22 - matPi 2.68e-18 50.9 +Saitoella_complicata_NRRL_Y-17804 F6365D46_006468 NW_017567021.1 71 + HMG_box,HMG_box_2 +Saitoella_complicata_NRRL_Y-17804 F6365D46_000992 NW_017566993.1 313 + HMG_box,HMG_box_2 +Saitoella_complicata_NRRL_Y-17804 F6365D46_006006 NW_017567017.1 89 - HMG_box mat1-Mc 2.48e-16 42.7 +Saitoella_complicata_NRRL_Y-17804 F6365D46_004653 NW_017567009.1 78 - HMG_box,HMG_box_2 +Saitoella_complicata_NRRL_Y-17804 F6365D46_000063 NW_017566992.1 62 - HMG_box,HMG_box_2 +Saitoella_complicata_NRRL_Y-17804 F6365D46_001996 NW_017566997.1 38 + Homeodomain +Saitoella_complicata_NRRL_Y-17804 F6365D46_000083 NW_017566992.1 82 - Homeodomain +Saitoella_complicata_NRRL_Y-17804 F6365D46_003678 NW_017567004.1 74 - Homeodomain +Saitoella_complicata_NRRL_Y-17804 F6365D46_000236 NW_017566992.1 235 - Homeodomain +Saitoella_complicata_NRRL_Y-17804 F6365D46_003912 NW_017567005.1 106 - Homeodomain +Saitoella_complicata_NRRL_Y-17804 F6365D46_002892 NW_017567000.1 178 - Homeodomain matPi 2.90e-16 49.1 +Saitoella_complicata_NRRL_Y-17804 F6365D46_005865 NW_017567016.1 99 + Homeodomain matPi 4.33e-23 31.6 diff --git a/docs/notes/2026-11-14_mat-discovery-tables/empty_scan_pairs.tsv b/docs/notes/2026-11-14_mat-discovery-tables/empty_scan_pairs.tsv new file mode 100644 index 00000000..8ba99823 --- /dev/null +++ b/docs/notes/2026-11-14_mat-discovery-tables/empty_scan_pairs.tsv @@ -0,0 +1 @@ +genome gene_a gene_b contig genes_between strand_relation domains diff --git a/docs/notes/2026-11-14_mat-discovery-tables/gap_adjacent_pair_null.tsv b/docs/notes/2026-11-14_mat-discovery-tables/gap_adjacent_pair_null.tsv new file mode 100644 index 00000000..8d9406c2 --- /dev/null +++ b/docs/notes/2026-11-14_mat-discovery-tables/gap_adjacent_pair_null.tsv @@ -0,0 +1,19 @@ +lineage pair_type genomes observed_genomes expected_mean expected_max p share_same_strand +SmallPhyla_9 HMG+Homeo 9 2 0.8 3 0.1796 0.5 +SmallPhyla_9 2xHomeo 9 0 0.5 2 1.0000 NA +SmallPhyla_9 2xHMG 9 2 0.5 3 0.0559 0.8 +Microsporidia_132 HMG+Homeo 132 0 4.5 10 1.0000 NA +Microsporidia_132 2xHomeo 132 65 19.0 30 0.0020 0.554 +Microsporidia_132 2xHMG 132 1 0.1 1 0.0778 1.0 +Aphelidiomycota HMG+Homeo 2 0 0.0 1 1.0000 NA +Aphelidiomycota 2xHomeo 2 0 0.0 1 1.0000 NA +Aphelidiomycota 2xHMG 2 0 0.0 1 1.0000 NA +Monoblepharomycota HMG+Homeo 3 0 0.2 2 1.0000 NA +Monoblepharomycota 2xHomeo 3 0 0.0 1 1.0000 NA +Monoblepharomycota 2xHMG 3 2 0.2 2 0.0140 0.8 +Calcarisporiellomycota HMG+Homeo 1 1 0.5 1 0.4631 1.0 +Calcarisporiellomycota 2xHomeo 1 0 0.4 1 1.0000 NA +Calcarisporiellomycota 2xHMG 1 0 0.1 1 1.0000 NA +Rozellomycota HMG+Homeo 1 1 0.0 1 0.0499 0.0 +Rozellomycota 2xHomeo 1 0 0.0 1 1.0000 NA +Rozellomycota 2xHMG 1 0 0.0 1 1.0000 NA diff --git a/docs/notes/2026-11-14_mat-discovery-tables/gap_lineages_summary.tsv b/docs/notes/2026-11-14_mat-discovery-tables/gap_lineages_summary.tsv new file mode 100644 index 00000000..a55d07a2 --- /dev/null +++ b/docs/notes/2026-11-14_mat-discovery-tables/gap_lineages_summary.tsv @@ -0,0 +1,8 @@ +lineage genomes with_stage1 HD1+HD2 sexM/sexP HMG+flank 2xHomeo HMG+Homeo +Aphelidiomycota 2 2 0 1 0 0 0 +Calcarisporiellomycota 1 1 0 1 0 0 1 +Monoblepharomycota 3 3 0 1 0 0 0 +Olpidiomycota 1 1 0 0 0 0 0 +Rozellomycota 1 1 0 0 0 0 1 +Unclassified 1 1 0 1 0 0 0 +Microsporidia 132 132 0 0 0 65 0 diff --git a/docs/notes/2026-11-14_mat-discovery-tables/globomyces_baseline.tsv b/docs/notes/2026-11-14_mat-discovery-tables/globomyces_baseline.tsv new file mode 100644 index 00000000..04b6e719 --- /dev/null +++ b/docs/notes/2026-11-14_mat-discovery-tables/globomyces_baseline.tsv @@ -0,0 +1,7 @@ +genome_A genome_B class genes +Globomyces_pollinis-pini_Glopol1 Globomyces_sp_JEL0801_ASM2759588 conserved 257 +Globomyces_pollinis-pini_Glopol1 Globomyces_sp_JEL0801_ASM2759588 no_synteny 192 +Globomyces_pollinis-pini_Glopol1 Globomyces_sp_JEL0801_ASM2759588 not_conserved 51 +Globomyces_sp_JEL0801_ASM2759588 Globomyces_pollinis-pini_Glopol1 conserved 359 +Globomyces_sp_JEL0801_ASM2759588 Globomyces_pollinis-pini_Glopol1 no_synteny 80 +Globomyces_sp_JEL0801_ASM2759588 Globomyces_pollinis-pini_Glopol1 not_conserved 61 diff --git a/docs/notes/2026-11-14_mat-discovery-tables/globomyces_probe.tsv b/docs/notes/2026-11-14_mat-discovery-tables/globomyces_probe.tsv new file mode 100644 index 00000000..02e4192f --- /dev/null +++ b/docs/notes/2026-11-14_mat-discovery-tables/globomyces_probe.tsv @@ -0,0 +1,33 @@ +genome_A gene domain genome_B class flank_mapped region_contig region_span +Globomyces_pollinis-pini_Glopol1 g281 Homeodomain Globomyces_sp_JEL0801_ASM2759588 conserved 10 JADGIX010000014.1 788-800 +Globomyces_pollinis-pini_Glopol1 g286 Homeodomain Globomyces_sp_JEL0801_ASM2759588 conserved 10 JADGIX010000014.1 793-805 +Globomyces_pollinis-pini_Glopol1 g321 HMG_box Globomyces_sp_JEL0801_ASM2759588 conserved 7 JADGIX010000060.1 2161-2169 +Globomyces_pollinis-pini_Glopol1 g829 HMG_box Globomyces_sp_JEL0801_ASM2759588 no_synteny 0 +Globomyces_pollinis-pini_Glopol1 g1449 HMG_box Globomyces_sp_JEL0801_ASM2759588 absent 8 JADGIX010000269.1 4868-4871 +Globomyces_pollinis-pini_Glopol1 g1874 Homeodomain Globomyces_sp_JEL0801_ASM2759588 no_synteny 0 +Globomyces_pollinis-pini_Glopol1 g2478 HMG_box Globomyces_sp_JEL0801_ASM2759588 conserved 10 JADGIX010000067.1 2329-2339 +Globomyces_pollinis-pini_Glopol1 g2979 HMG_box Globomyces_sp_JEL0801_ASM2759588 no_synteny 0 +Globomyces_pollinis-pini_Glopol1 g3940 HMG_box Globomyces_sp_JEL0801_ASM2759588 no_synteny 1 +Globomyces_pollinis-pini_Glopol1 g4421 HMG_box Globomyces_sp_JEL0801_ASM2759588 conserved 5 JADGIX010000245.1 4703-4708 +Globomyces_pollinis-pini_Glopol1 g4511 HMG_box Globomyces_sp_JEL0801_ASM2759588 conserved 7 JADGIX010000104.1 3042-3049 +Globomyces_pollinis-pini_Glopol1 g4923 HMG_box Globomyces_sp_JEL0801_ASM2759588 no_synteny 0 +Globomyces_pollinis-pini_Glopol1 g4928 HMG_box Globomyces_sp_JEL0801_ASM2759588 no_synteny 1 +Globomyces_pollinis-pini_Glopol1 g6538 HMG_box Globomyces_sp_JEL0801_ASM2759588 no_synteny 1 +Globomyces_pollinis-pini_Glopol1 g6733 HMG_box Globomyces_sp_JEL0801_ASM2759588 conserved 6 JADGIX010000243.1 4688-4694 +Globomyces_pollinis-pini_Glopol1 g6855 HMG_box Globomyces_sp_JEL0801_ASM2759588 absent 3 JADGIX010000292.1 5012-5014 +Globomyces_pollinis-pini_Glopol1 g7055 HMG_box Globomyces_sp_JEL0801_ASM2759588 no_synteny 0 +Globomyces_pollinis-pini_Glopol1 g7541 HMG_box Globomyces_sp_JEL0801_ASM2759588 other_domain 4 JADGIX010000364.1 5331-5335 +Globomyces_pollinis-pini_Glopol1 g7543 HMG_box Globomyces_sp_JEL0801_ASM2759588 conserved 3 JADGIX010000364.1 5331-5335 +Globomyces_pollinis-pini_Glopol1 g7544 HMG_box Globomyces_sp_JEL0801_ASM2759588 other_domain 4 JADGIX010000364.1 5331-5335 +Globomyces_sp_JEL0801_ASM2759588 g794 Homeodomain Globomyces_pollinis-pini_Glopol1 conserved 8 MU621093.1 275-283 +Globomyces_sp_JEL0801_ASM2759588 g801 Homeodomain Globomyces_pollinis-pini_Glopol1 conserved 8 MU621093.1 282-290 +Globomyces_sp_JEL0801_ASM2759588 g2165 HMG_box Globomyces_pollinis-pini_Glopol1 conserved 7 MU621094.1 318-325 +Globomyces_sp_JEL0801_ASM2759588 g2253 HMG_box Globomyces_pollinis-pini_Glopol1 absent 5 MU621161.1 3004-3009 +Globomyces_sp_JEL0801_ASM2759588 g2256 HMG_box Globomyces_pollinis-pini_Glopol1 no_synteny 3 +Globomyces_sp_JEL0801_ASM2759588 g2335 HMG_box Globomyces_pollinis-pini_Glopol1 conserved 10 MU621144.1 2472-2482 +Globomyces_sp_JEL0801_ASM2759588 g4690 HMG_box Globomyces_pollinis-pini_Glopol1 conserved 6 MU621435.1 6727-6733 +Globomyces_sp_JEL0801_ASM2759588 g4706 HMG_box Globomyces_pollinis-pini_Glopol1 conserved 5 MU621225.1 4418-4423 +Globomyces_sp_JEL0801_ASM2759588 g5334 HMG_box Globomyces_pollinis-pini_Glopol1 other_domain 4 MU621598.1 7541-7545 +Globomyces_sp_JEL0801_ASM2759588 g5335 HMG_box Globomyces_pollinis-pini_Glopol1 conserved 4 MU621598.1 7541-7545 +Globomyces_sp_JEL0801_ASM2759588 g5364 HMG_box Globomyces_pollinis-pini_Glopol1 no_synteny 2 +Globomyces_sp_JEL0801_ASM2759588 g5894 HMG_box Globomyces_pollinis-pini_Glopol1 no_synteny 0 diff --git a/docs/notes/2026-11-14_mat-discovery-tables/matpi_genome_search_hits.tsv b/docs/notes/2026-11-14_mat-discovery-tables/matpi_genome_search_hits.tsv new file mode 100644 index 00000000..0b224425 --- /dev/null +++ b/docs/notes/2026-11-14_mat-discovery-tables/matpi_genome_search_hits.tsv @@ -0,0 +1,36 @@ +genome rank contig start end best_identity best_evalue bitscore on_matMc_contig distance_to_matMc_bp overlapping_gene +Protomyces_inouyei_NRRL_YB-4354 1 QXDQ01000433.1 28095 28478 45.238 2.2e-18 234.1 yes 7165 - +Protomyces_inouyei_NRRL_YB-4354 2 QXDQ01000244.1 57755 57916 54.348 3.04e-12 226.1 no NA F7C0A940_003233 +Protomyces_macrosporus_NRRL_Y-12879 1 QXDT01000095.1 125508 125669 54.348 4.31e-12 231.2 no NA FCFD2032_001987 +Protomyces_macrosporus_NRRL_Y-12879 2 QXDT01000104.1 146491 146739 52.459 4.71e-16 220.7 no NA FCFD2032_003005 +Protomyces_lactucae-debilis_NRRL_YB-4353 1 QXDS01000345.1 101593 101979 45.238 2.17e-18 233.0 yes 7164 - +Protomyces_lactucae-debilis_NRRL_YB-4353 2 QXDS01000405.1 34146 34337 54.348 7.56e-13 230.0 no NA F21A9957_005482 +Taphrina_confusa_CBS_375.39 1 RHGJ01000026.1 181602 182075 46.479 2.19e-46 301.0 yes 14057 - +Taphrina_confusa_CBS_375.39 2 RHGJ01000014.1 247564 247836 54.348 4.74e-14 255.39999999999998 no NA F57803F5_004044 +Protomyces_lactucae-debilis_12-1054 1 NW_024468021.1 38152 38538 45.238 2.21e-18 233.0 yes 7152 - +Protomyces_lactucae-debilis_12-1054 2 NW_024467997.1 438246 438437 54.348 7.77e-13 230.0 no NA F003EF48_001800 +Protomyces_arabidopsidicola_C29 1 QXMI01000162.1 62546 62707 56.0 6.19e-13 227.60000000000002 no NA FB5CF295_003784 +Protomyces_arabidopsidicola_C29 2 QXMI01000125.1 203158 203487 41.667 9.31e-16 212.59999999999997 no NA FB5CF295_002391 +Protomyces_arabidopsidicola_C29 3 QXMI01000135.1 174500 174691 52.174 2.01e-12 181.0 no NA FB5CF295_002492 +Protomyces_gravidus_NRRL_Y-17093 1 QXDP01000295.1 280092 280418 47.619 2.66e-16 262.59999999999997 no NA - +Protomyces_gravidus_NRRL_Y-17093 2 QXDP01000284.1 244866 245315 49.057 9.97e-12 230.40000000000003 no NA F88801A2_005815 +Protomyces_pachydermus_NRRL_YB-4355 1 QXDU01000294.1 15623 16006 45.238 2.07e-18 234.5 no NA - +Protomyces_pachydermus_NRRL_YB-4355 2 QXDU01000121.1 163650 163847 54.348 2.41e-12 226.9 no NA F1AD082B_001889 +Taphrina_sp._SM11_SM11 1 RHDT01000277.1 272246 272452 54.0 1.14e-13 250.0 NA NA FE701F89_004046 +Taphrina_sp._SM11_SM11 2 RHDT01000219.1 24554 25030 42.424 4.27e-25 226.7 NA NA - +Taphrina_wiesneri_CBS_275.28 1 RHGK01000010.1 214844 215035 54.348 1.04e-13 253.5 no NA F929528F_002490 +Taphrina_communis_CBS_352.35 1 RHGI01000035.1 80258 80755 52.41 8.21e-54 328.0 NA NA - +Taphrina_communis_CBS_352.35 2 RHGI01000005.1 245837 246097 54.348 1.48e-13 254.60000000000002 NA NA F8DCC00A_001480 +Taphrina_betulina_UCD315 1 VWSI01000027.1 16268 16762 43.023 2.21e-26 249.0 NA NA - +Taphrina_betulina_UCD315 2 VWSI01000009.1 220061 220222 56.522 1.2e-12 242.70000000000002 NA NA FC6B0312_002074 +Taphrina_betulina_UCD315 3 VWSI01000018.1 4287 4493 45.283 4.93e-10 165.60000000000002 NA NA - +Savitreella_phatthalungensis_PYCC_9005 1 AP039689.1 1044038 1044199 52.0 9.96e-14 240.39999999999998 no NA FAD3C0EC_000542 +Savitreella_phatthalungensis_PYCC_9005 2 AP039713.1 46052 46267 50.877 4.26e-15 208.39999999999998 no NA FAD3C0EC_005560 +Saitoella_complicata_NRRL_Y-17804 1 NW_017567016.1 167097 167699 45.652 1.31e-22 293.8 no NA F6365D46_005865 +Saitoella_complicata_NRRL_Y-17804 2 NW_017567000.1 368619 368768 54.545 1.99e-12 187.5 no NA F6365D46_002892 +Taphrina_deformans_A2 1 RHGF01000006.1 51688 52236 100.0 1.13e-119 539.4 yes 40370 - +Taphrina_deformans_A2 2 RHGF01000011.1 218412 218606 54.0 6.36e-14 244.2 no NA F891DC7E_002798 +Taphrina_deformans_CBS_355.35 1 RHGG01000037.1 49436 49984 100.0 1.13e-119 539.4 no NA - +Taphrina_deformans_CBS_355.35 2 RHGG01000002.1 531461 531655 54.0 6.4e-14 244.2 no NA F7E28AAD_000825 +Taphrina_deformans_PYCC_5710 1 HE965097.1 49998 50546 100.0 1.13e-119 539.4 no NA - +Taphrina_deformans_PYCC_5710 2 HE965036.1 162351 162545 54.0 6.4e-14 244.20000000000002 no NA F282FB4B_000488 diff --git a/docs/notes/2026-11-14_mat-discovery-tables/matpi_hmg_adjacency_null.tsv b/docs/notes/2026-11-14_mat-discovery-tables/matpi_hmg_adjacency_null.tsv new file mode 100644 index 00000000..e7bcbacc --- /dev/null +++ b/docs/notes/2026-11-14_mat-discovery-tables/matpi_hmg_adjacency_null.tsv @@ -0,0 +1,2 @@ +max_dist_bp genomes observed_genomes expected_mean expected_max p +20000 17 6 0.71 5 0.0005 diff --git a/docs/notes/2026-11-14_mat-discovery-tables/matpi_hmg_adjacency_pairs.tsv b/docs/notes/2026-11-14_mat-discovery-tables/matpi_hmg_adjacency_pairs.tsv new file mode 100644 index 00000000..5e777bdd --- /dev/null +++ b/docs/notes/2026-11-14_mat-discovery-tables/matpi_hmg_adjacency_pairs.tsv @@ -0,0 +1,9 @@ +genome hmg_gene contig region_rank region_identity distance_bp +Protomyces_inouyei_NRRL_YB-4354 F7C0A940_005637 QXDQ01000433.1 1 45.238 7165 +Protomyces_lactucae-debilis_NRRL_YB-4353 F21A9957_003986 QXDS01000345.1 1 45.238 7164 +Taphrina_confusa_CBS_375.39 F57803F5_005977 RHGJ01000026.1 1 46.479 14057 +Protomyces_lactucae-debilis_12-1054 F003EF48_006292 NW_024468021.1 1 45.238 7152 +Taphrina_communis_CBS_352.35 F8DCC00A_005608 RHGI01000035.1 1 52.41 18060 +Taphrina_betulina_UCD315 FC6B0312_004634 VWSI01000027.1 1 43.023 10297 +Savitreella_phatthalungensis_PYCC_9005 FAD3C0EC_000516 AP039689.1 1 52.0 39362 +Taphrina_deformans_A2 F891DC7E_001655 RHGF01000006.1 1 100.0 40370 diff --git a/docs/notes/2026-11-14_mat-discovery-tables/matpi_hmg_adjacency_summary.tsv b/docs/notes/2026-11-14_mat-discovery-tables/matpi_hmg_adjacency_summary.tsv new file mode 100644 index 00000000..71816b9b --- /dev/null +++ b/docs/notes/2026-11-14_mat-discovery-tables/matpi_hmg_adjacency_summary.tsv @@ -0,0 +1,18 @@ +genome hmg_genes hmg_genes_near_region regions_tested +Protomyces_inouyei_NRRL_YB-4354 7 1 2 +Protomyces_macrosporus_NRRL_Y-12879 6 0 2 +Protomyces_lactucae-debilis_NRRL_YB-4353 7 1 2 +Taphrina_confusa_CBS_375.39 7 1 2 +Protomyces_lactucae-debilis_12-1054 7 1 2 +Protomyces_arabidopsidicola_C29 6 0 3 +Protomyces_gravidus_NRRL_Y-17093 6 0 2 +Protomyces_pachydermus_NRRL_YB-4355 6 0 2 +Taphrina_sp._SM11_SM11 6 0 2 +Taphrina_wiesneri_CBS_275.28 7 0 1 +Taphrina_communis_CBS_352.35 7 1 2 +Taphrina_betulina_UCD315 7 1 3 +Savitreella_phatthalungensis_PYCC_9005 6 1 2 +Saitoella_complicata_NRRL_Y-17804 5 0 2 +Taphrina_deformans_A2 7 1 2 +Taphrina_deformans_CBS_355.35 7 0 2 +Taphrina_deformans_PYCC_5710 7 0 2 diff --git a/docs/notes/2026-11-14_mat-discovery-tables/matpi_region_pfam.tsv b/docs/notes/2026-11-14_mat-discovery-tables/matpi_region_pfam.tsv new file mode 100644 index 00000000..36c7facd --- /dev/null +++ b/docs/notes/2026-11-14_mat-discovery-tables/matpi_region_pfam.tsv @@ -0,0 +1,10 @@ +name region orf_frame orf_start orf_end aa_len domain evalue +Protomyces_inouyei_NRRL_YB-4354|matPi_near_matMc QXDQ01000433.1:27495-29078 1 27984 28484 167 Homeodomain 1.1e-10 +Protomyces_lactucae-debilis_NRRL_YB-4353|matPi_near_matMc QXDS01000345.1:100993-102579 1 101533 101985 151 Homeodomain 1e-10 +Taphrina_confusa_CBS_375.39|matPi_near_matMc RHGJ01000026.1:181002-182675 -1 181587 182090 168 Homeodomain 1.1e-08 +Protomyces_lactucae-debilis_12-1054|matPi_near_matMc NW_024468021.1:37552-39138 -1 38146 38598 151 Homeodomain 1e-10 +Protomyces_gravidus_NRRL_Y-17093|matPi_unannotated_no_matMc_neighbour QXDP01000295.1:279492-281018 1 279948 280424 159 Homeodomain 8.4e-11 +Taphrina_communis_CBS_352.35|matPi_unannotated_no_matMc_neighbour RHGI01000035.1:79658-81355 -1 80243 80794 184 Homeodomain 1.5e-09 +Taphrina_betulina_UCD315|matPi_unannotated_no_matMc_neighbour VWSI01000027.1:15668-17362 none +Taphrina_deformans_A2|matPi_near_matMc RHGF01000006.1:51088-52836 1 51685 52251 189 Homeodomain 1.5e-09 +Taphrina_deformans_A2|negative_control_20kb_away RHGF01000006.1:71088-72836 none diff --git a/docs/notes/2026-11-14_mat-discovery-tables/pm_genomes_scan_genes.tsv b/docs/notes/2026-11-14_mat-discovery-tables/pm_genomes_scan_genes.tsv new file mode 100644 index 00000000..1d1cc33c --- /dev/null +++ b/docs/notes/2026-11-14_mat-discovery-tables/pm_genomes_scan_genes.tsv @@ -0,0 +1,62 @@ +genome gene contig index strand domain best_control control_evalue control_identity +Protomyces_inouyei_NRRL_YB-4354 F7C0A940_003944 QXDQ01000317.1 0 + HMG_box,HMG_box_2 +Protomyces_inouyei_NRRL_YB-4354 F7C0A940_005637 QXDQ01000433.1 18 + HMG_box,HMG_box_2 matMc 9.85e-47 45.0 +Protomyces_inouyei_NRRL_YB-4354 F7C0A940_001588 QXDQ01000108.1 271 + HMG_box,HMG_box_2 mat1-Mc 5.71e-20 48.6 +Protomyces_inouyei_NRRL_YB-4354 F7C0A940_003432 QXDQ01000279.1 2 - HMG_box,HMG_box_2 +Protomyces_inouyei_NRRL_YB-4354 F7C0A940_003008 QXDQ01000221.1 19 - HMG_box,HMG_box_2 +Protomyces_inouyei_NRRL_YB-4354 F7C0A940_001266 QXDQ01000107.1 84 + HMG_box,HMG_box_2 +Protomyces_inouyei_NRRL_YB-4354 F7C0A940_004761 QXDQ01000413.1 33 - HMG_box,HMG_box_2 +Protomyces_inouyei_NRRL_YB-4354 F7C0A940_005400 QXDQ01000429.1 50 - Homeodomain +Protomyces_inouyei_NRRL_YB-4354 F7C0A940_004297 QXDQ01000375.1 18 + Homeodomain +Protomyces_inouyei_NRRL_YB-4354 F7C0A940_004905 QXDQ01000418.1 10 - Homeodomain +Protomyces_inouyei_NRRL_YB-4354 F7C0A940_005340 QXDQ01000428.1 14 - Homeodomain +Protomyces_inouyei_NRRL_YB-4354 F7C0A940_003233 QXDQ01000244.1 28 - Homeodomain +Protomyces_macrosporus_NRRL_Y-12879 FCFD2032_000110 QXDT01000009.1 109 + HMG_box,HMG_box_2 +Protomyces_macrosporus_NRRL_Y-12879 FCFD2032_003884 QXDT01000114.1 19 - HMG_box,HMG_box_2 mat1-Mc 2.34e-20 48.7 +Protomyces_macrosporus_NRRL_Y-12879 FCFD2032_003553 QXDT01000108.1 64 - HMG_box,HMG_box_2 +Protomyces_macrosporus_NRRL_Y-12879 FCFD2032_004602 QXDT01000126.1 15 - HMG_box +Protomyces_macrosporus_NRRL_Y-12879 FCFD2032_005905 QXDT01000170.1 178 + HMG_box,HMG_box_2 +Protomyces_macrosporus_NRRL_Y-12879 FCFD2032_005774 QXDT01000170.1 47 + HMG_box,HMG_box_2 +Protomyces_macrosporus_NRRL_Y-12879 FCFD2032_006117 QXDT01000181.1 159 + Homeodomain +Protomyces_macrosporus_NRRL_Y-12879 FCFD2032_005509 QXDT01000159.1 18 + Homeodomain +Protomyces_macrosporus_NRRL_Y-12879 FCFD2032_003753 QXDT01000112.1 12 - Homeodomain +Protomyces_macrosporus_NRRL_Y-12879 FCFD2032_004535 QXDT01000124.1 20 + Homeodomain +Protomyces_macrosporus_NRRL_Y-12879 FCFD2032_001987 QXDT01000095.1 71 + Homeodomain +Protomyces_lactucae-debilis_NRRL_YB-4353 F21A9957_006289 QXDS01000428.1 90 + HMG_box,HMG_box_2 +Protomyces_lactucae-debilis_NRRL_YB-4353 F21A9957_003986 QXDS01000345.1 65 + HMG_box,HMG_box_2 matMc 5.55e-46 44.4 +Protomyces_lactucae-debilis_NRRL_YB-4353 F21A9957_002866 QXDS01000234.1 24 - HMG_box,HMG_box_2 mat1-Mc 5.67e-20 48.6 +Protomyces_lactucae-debilis_NRRL_YB-4353 F21A9957_006358 QXDS01000429.1 9 + HMG_box,HMG_box_2 +Protomyces_lactucae-debilis_NRRL_YB-4353 F21A9957_001070 QXDS01000087.1 61 - HMG_box,HMG_box_2 +Protomyces_lactucae-debilis_NRRL_YB-4353 F21A9957_004928 QXDS01000393.1 38 - HMG_box,HMG_box_2 +Protomyces_lactucae-debilis_NRRL_YB-4353 F21A9957_003047 QXDS01000251.1 52 + HMG_box,HMG_box_2 +Protomyces_lactucae-debilis_NRRL_YB-4353 F21A9957_000040 QXDS01000011.1 2 - Homeodomain +Protomyces_lactucae-debilis_NRRL_YB-4353 F21A9957_002544 QXDS01000215.1 17 + Homeodomain +Protomyces_lactucae-debilis_NRRL_YB-4353 F21A9957_004986 QXDS01000395.1 12 - Homeodomain +Protomyces_lactucae-debilis_NRRL_YB-4353 F21A9957_004156 QXDS01000380.1 14 - Homeodomain +Protomyces_lactucae-debilis_NRRL_YB-4353 F21A9957_005482 QXDS01000405.1 15 + Homeodomain +Taphrina_confusa_CBS_375.39 F57803F5_003754 RHGJ01000013.1 66 - HMG_box,HMG_box_2 +Taphrina_confusa_CBS_375.39 F57803F5_004161 RHGJ01000015.1 2 - HMG_box,HMG_box_2 +Taphrina_confusa_CBS_375.39 F57803F5_004000 RHGJ01000014.1 74 - HMG_box,HMG_box_2 +Taphrina_confusa_CBS_375.39 F57803F5_005977 RHGJ01000026.1 83 + HMG_box,HMG_box_2 matMc 6.93e-89 69.2 +Taphrina_confusa_CBS_375.39 F57803F5_002637 RHGJ01000008.1 225 - HMG_box +Taphrina_confusa_CBS_375.39 F57803F5_001127 RHGJ01000003.1 351 - HMG_box,HMG_box_2 +Taphrina_confusa_CBS_375.39 F57803F5_003604 RHGJ01000012.1 143 + HMG_box,HMG_box_2 +Taphrina_confusa_CBS_375.39 F57803F5_001137 RHGJ01000004.1 3 + Homeodomain +Taphrina_confusa_CBS_375.39 F57803F5_002097 RHGJ01000006.1 299 + Homeodomain +Taphrina_confusa_CBS_375.39 F57803F5_006117 RHGJ01000027.1 97 - Homeodomain +Taphrina_confusa_CBS_375.39 F57803F5_004223 RHGJ01000015.1 64 + Homeodomain +Taphrina_confusa_CBS_375.39 F57803F5_006217 RHGJ01000029.1 8 - Homeodomain +Taphrina_confusa_CBS_375.39 F57803F5_001039 RHGJ01000003.1 263 + Homeodomain +Taphrina_confusa_CBS_375.39 F57803F5_004044 RHGJ01000014.1 118 + Homeodomain matPi 1.59e-17 50.0 +Protomyces_lactucae-debilis_12-1054 F003EF48_000425 NW_024467993.1 424 + HMG_box,HMG_box_2 +Protomyces_lactucae-debilis_12-1054 F003EF48_006292 NW_024468021.1 12 - HMG_box,HMG_box_2 matMc 8.97e-46 44.4 +Protomyces_lactucae-debilis_12-1054 F003EF48_001932 NW_024467998.1 23 - HMG_box,HMG_box_2 mat1-Mc 5.67e-20 48.6 +Protomyces_lactucae-debilis_12-1054 F003EF48_001253 NW_024467995.1 358 + HMG_box,HMG_box_2 +Protomyces_lactucae-debilis_12-1054 F003EF48_000047 NW_024467993.1 46 + HMG_box,HMG_box_2 +Protomyces_lactucae-debilis_12-1054 F003EF48_005701 NW_024468014.1 71 - HMG_box,HMG_box_2 +Protomyces_lactucae-debilis_12-1054 F003EF48_000189 NW_024467993.1 188 + HMG_box,HMG_box_2 +Protomyces_lactucae-debilis_12-1054 F003EF48_000947 NW_024467995.1 52 - Homeodomain +Protomyces_lactucae-debilis_12-1054 F003EF48_004261 NW_024468006.1 17 + Homeodomain +Protomyces_lactucae-debilis_12-1054 F003EF48_000640 NW_024467994.1 154 + Homeodomain +Protomyces_lactucae-debilis_12-1054 F003EF48_005759 NW_024468015.1 14 - Homeodomain +Protomyces_lactucae-debilis_12-1054 F003EF48_001800 NW_024467997.1 199 + Homeodomain diff --git a/docs/notes/2026-11-14_mat-discovery-tables/pm_lead_genes.tsv b/docs/notes/2026-11-14_mat-discovery-tables/pm_lead_genes.tsv new file mode 100644 index 00000000..7adfedaa --- /dev/null +++ b/docs/notes/2026-11-14_mat-discovery-tables/pm_lead_genes.tsv @@ -0,0 +1,48 @@ +genome locus gene_index gene strand start end domain evidence +Protomyces_inouyei_NRRL_YB-4354 QXDQ01000433.1#0 13 F7C0A940_005632 - 24577 25071 +Protomyces_inouyei_NRRL_YB-4354 QXDQ01000433.1#0 14 F7C0A940_005633 + 25109 26086 +Protomyces_inouyei_NRRL_YB-4354 QXDQ01000433.1#0 15 F7C0A940_005634 + 26488 26929 +Protomyces_inouyei_NRRL_YB-4354 QXDQ01000433.1#0 16 F7C0A940_005635 - 26952 27714 +Protomyces_inouyei_NRRL_YB-4354 QXDQ01000433.1#0 17 F7C0A940_005636 + 30760 32228 +Protomyces_inouyei_NRRL_YB-4354 QXDQ01000433.1#0 18 F7C0A940_005637 + 35643 36275 HMG_box,HMG_box_2 matMc:44.71% id, 73.6% cov +Protomyces_inouyei_NRRL_YB-4354 QXDQ01000433.1#0 19 F7C0A940_005638 - 36357 36695 +Protomyces_macrosporus_NRRL_Y-12879 QXDT01000104.1#0 68 FCFD2032_003000 - 131384 131884 +Protomyces_macrosporus_NRRL_Y-12879 QXDT01000104.1#0 69 FCFD2032_003001 + 132005 132997 +Protomyces_macrosporus_NRRL_Y-12879 QXDT01000104.1#0 70 FCFD2032_003002 + 133410 133859 +Protomyces_macrosporus_NRRL_Y-12879 QXDT01000104.1#0 71 FCFD2032_003003 - 133928 134694 +Protomyces_macrosporus_NRRL_Y-12879 QXDT01000104.1#0 72 FCFD2032_003004 - 135912 136228 +Protomyces_macrosporus_NRRL_Y-12879 QXDT01000104.1#0 73 FCFD2032_003005 - 144915 146526 matPi:43.9% id, 36.1% cov +Protomyces_macrosporus_NRRL_Y-12879 QXDT01000104.1#0 74 FCFD2032_003006 + 149113 149517 +Protomyces_macrosporus_NRRL_Y-12879 QXDT01000104.1#0 75 FCFD2032_003007 + 150376 150993 +Protomyces_macrosporus_NRRL_Y-12879 QXDT01000104.1#0 76 FCFD2032_003008 + 155502 157029 +Protomyces_macrosporus_NRRL_Y-12879 QXDT01000104.1#0 77 FCFD2032_003009 - 158777 160318 +Protomyces_macrosporus_NRRL_Y-12879 QXDT01000104.1#0 78 FCFD2032_003010 - 161573 163600 +Protomyces_lactucae-debilis_NRRL_YB-4353 QXDS01000345.1#0 60 F21A9957_003981 + 98757 99599 +Protomyces_lactucae-debilis_NRRL_YB-4353 QXDS01000345.1#0 61 F21A9957_003982 + 100001 100442 +Protomyces_lactucae-debilis_NRRL_YB-4353 QXDS01000345.1#0 62 F21A9957_003983 - 100465 101230 +Protomyces_lactucae-debilis_NRRL_YB-4353 QXDS01000345.1#0 63 F21A9957_003984 + 104260 105728 +Protomyces_lactucae-debilis_NRRL_YB-4353 QXDS01000345.1#0 64 F21A9957_003985 - 106147 108212 +Protomyces_lactucae-debilis_NRRL_YB-4353 QXDS01000345.1#0 65 F21A9957_003986 + 109143 109775 HMG_box,HMG_box_2 matMc:44.12% id, 73.6% cov +Protomyces_lactucae-debilis_NRRL_YB-4353 QXDS01000345.1#0 66 F21A9957_003987 - 109857 110576 +Taphrina_confusa_CBS_375.39 RHGJ01000026.1#0 78 F57803F5_005972 - 143747 144315 +Taphrina_confusa_CBS_375.39 RHGJ01000026.1#0 79 F57803F5_005973 + 145732 146655 +Taphrina_confusa_CBS_375.39 RHGJ01000026.1#0 80 F57803F5_005974 - 161470 162516 +Taphrina_confusa_CBS_375.39 RHGJ01000026.1#0 81 F57803F5_005975 - 162983 163777 +Taphrina_confusa_CBS_375.39 RHGJ01000026.1#0 82 F57803F5_005976 + 165223 166019 +Taphrina_confusa_CBS_375.39 RHGJ01000026.1#0 83 F57803F5_005977 + 166886 167545 HMG_box,HMG_box_2 matMc:69.19% id, 74.5% cov +Taphrina_confusa_CBS_375.39 RHGJ01000026.1#0 84 F57803F5_005978 + 169362 169845 +Taphrina_confusa_CBS_375.39 RHGJ01000026.1#0 85 F57803F5_005979 - 170517 170994 +Taphrina_confusa_CBS_375.39 RHGJ01000026.1#0 86 F57803F5_005980 + 171994 173827 +Taphrina_confusa_CBS_375.39 RHGJ01000026.1#0 87 F57803F5_005981 - 174359 174804 +Taphrina_confusa_CBS_375.39 RHGJ01000026.1#0 88 F57803F5_005982 + 175407 176302 +Protomyces_lactucae-debilis_12-1054 NW_024468021.1#0 7 F003EF48_006287 + 18493 20451 +Protomyces_lactucae-debilis_12-1054 NW_024468021.1#0 8 F003EF48_006288 + 20891 21409 +Protomyces_lactucae-debilis_12-1054 NW_024468021.1#0 9 F003EF48_006289 - 22014 22420 +Protomyces_lactucae-debilis_12-1054 NW_024468021.1#0 10 F003EF48_006290 + 26856 28068 +Protomyces_lactucae-debilis_12-1054 NW_024468021.1#0 11 F003EF48_006291 + 28264 30274 +Protomyces_lactucae-debilis_12-1054 NW_024468021.1#0 12 F003EF48_006292 - 30356 31000 HMG_box,HMG_box_2 matMc:44.12% id, 73.6% cov +Protomyces_lactucae-debilis_12-1054 NW_024468021.1#0 13 F003EF48_006293 + 31919 33984 +Protomyces_lactucae-debilis_12-1054 NW_024468021.1#0 14 F003EF48_006294 - 34403 35871 +Protomyces_lactucae-debilis_12-1054 NW_024468021.1#0 15 F003EF48_006295 + 38904 39666 +Protomyces_lactucae-debilis_12-1054 NW_024468021.1#0 16 F003EF48_006296 - 39689 40130 +Protomyces_lactucae-debilis_12-1054 NW_024468021.1#0 17 F003EF48_006297 - 40532 41374 diff --git a/docs/notes/2026-11-14_mat-discovery-tables/pm_lead_summary.tsv b/docs/notes/2026-11-14_mat-discovery-tables/pm_lead_summary.tsv new file mode 100644 index 00000000..d8772029 --- /dev/null +++ b/docs/notes/2026-11-14_mat-discovery-tables/pm_lead_summary.tsv @@ -0,0 +1,6 @@ +genome contig matMc_gene matMc_domain matPi_gene matPi_domain genes_between strand_relation +Protomyces_inouyei_NRRL_YB-4354 QXDQ01000433.1 F7C0A940_005637 HMG_box,HMG_box_2 NA NA NA NA +Protomyces_macrosporus_NRRL_Y-12879 QXDT01000104.1 NA NA FCFD2032_003005 NA NA +Protomyces_lactucae-debilis_NRRL_YB-4353 QXDS01000345.1 F21A9957_003986 HMG_box,HMG_box_2 NA NA NA NA +Taphrina_confusa_CBS_375.39 RHGJ01000026.1 F57803F5_005977 HMG_box,HMG_box_2 NA NA NA NA +Protomyces_lactucae-debilis_12-1054 NW_024468021.1 F003EF48_006292 HMG_box,HMG_box_2 NA NA NA NA diff --git a/docs/notes/2026-11-14_mat-discovery-tables/pm_locus_homeodomain_models.tsv b/docs/notes/2026-11-14_mat-discovery-tables/pm_locus_homeodomain_models.tsv new file mode 100644 index 00000000..7152de81 --- /dev/null +++ b/docs/notes/2026-11-14_mat-discovery-tables/pm_locus_homeodomain_models.tsv @@ -0,0 +1,8 @@ +name contig strand cds_start cds_end exons aa_len score query domains +Protomyces_inouyei_NRRL_YB-4354 QXDQ01000433.1 + 28281 28457 1 59 174.0 5011_unknown-1_PM_combined|gene_index=0|name=matPi|role=core_MAT Homeodomain +Protomyces_lactucae-debilis_NRRL_YB-4353 QXDS01000345.1 + 101782 101958 1 59 174.0 5011_unknown-1_PM_combined|gene_index=0|name=matPi|role=core_MAT Homeodomain +Taphrina_confusa_CBS_375.39 RHGJ01000026.1 - 181602 182084 1 161 394.0 5011_unknown-1_PM_combined|gene_index=0|name=matPi|role=core_MAT Homeodomain +Protomyces_lactucae-debilis_12-1054 NW_024468021.1 - 38173 38349 1 59 174.0 5011_unknown-1_PM_combined|gene_index=0|name=matPi|role=core_MAT Homeodomain +Taphrina_communis_CBS_352.35 RHGI01000035.1 - 80258 80794 1 179 417.0 5011_unknown-1_PM_combined|gene_index=0|name=matPi|role=core_MAT Homeodomain +Taphrina_betulina_UCD315 VWSI01000027.1 + 16268 16750 1 161 223.0 5011_unknown-1_PM_combined|gene_index=0|name=matPi|role=core_MAT none +Taphrina_deformans_A2 RHGF01000006.1 + 51694 52236 1 181 908.0 5011_unknown-1_PM_combined|gene_index=0|name=matPi|role=core_MAT Homeodomain diff --git a/docs/notes/2026-11-14_mat-discovery-tables/pm_locus_orthology.tsv b/docs/notes/2026-11-14_mat-discovery-tables/pm_locus_orthology.tsv new file mode 100644 index 00000000..513a7fe0 --- /dev/null +++ b/docs/notes/2026-11-14_mat-discovery-tables/pm_locus_orthology.tsv @@ -0,0 +1,79 @@ +locus_protein other_genome best_hit hit_is_locus_protein identity aligned_aa reciprocal +P_inouyei_YB-4354|HMG_locus|F7C0A940_005637 P_lact_12-1054 P_lact_12-1054|HMG_locus|F003EF48_006292 True 99.0 197 True +P_inouyei_YB-4354|HMG_locus|F7C0A940_005637 P_lact_YB-4353 P_lact_YB-4353|HMG_locus|F21A9957_003986 True 99.0 197 True +P_inouyei_YB-4354|HMG_locus|F7C0A940_005637 T_betulina_315 T_betulina_315|HMG|FC6B0312_004553 False 38.4 73 False +P_inouyei_YB-4354|HMG_locus|F7C0A940_005637 T_communis_352.35 T_communis_352.35|HMG|F8DCC00A_004874 False 40.0 75 False +P_inouyei_YB-4354|HMG_locus|F7C0A940_005637 T_confusa_375.39 T_confusa_375.39|HMG_locus|F57803F5_005977 True 42.4 172 True +P_inouyei_YB-4354|HMG_locus|F7C0A940_005637 T_deformans_A2 T_deformans_A2|HMG_locus|F891DC7E_001655 True 45.0 171 True +P_inouyei_YB-4354|HD_locus|orf27984 P_lact_12-1054 P_lact_12-1054|HD_locus|orf38146 True 100.0 151 True +P_inouyei_YB-4354|HD_locus|orf27984 P_lact_YB-4353 P_lact_YB-4353|HD_locus|orf101533 True 100.0 151 True +P_inouyei_YB-4354|HD_locus|orf27984 T_betulina_315 T_betulina_315|HD|FC6B0312_002074 False 50.8 61 False +P_inouyei_YB-4354|HD_locus|orf27984 T_communis_352.35 T_communis_352.35|HD_locus|orf80243 True 36.0 139 True +P_inouyei_YB-4354|HD_locus|orf27984 T_confusa_375.39 T_confusa_375.39|HD_locus|orf181587 True 35.4 147 True +P_inouyei_YB-4354|HD_locus|orf27984 T_deformans_A2 T_deformans_A2|HD_locus|orf51685 True 32.5 151 True +P_lact_YB-4353|HMG_locus|F21A9957_003986 P_inouyei_YB-4354 P_inouyei_YB-4354|HMG_locus|F7C0A940_005637 True 99.0 197 True +P_lact_YB-4353|HMG_locus|F21A9957_003986 P_lact_12-1054 P_lact_12-1054|HMG_locus|F003EF48_006292 True 100.0 197 True +P_lact_YB-4353|HMG_locus|F21A9957_003986 T_betulina_315 T_betulina_315|HMG|FC6B0312_004553 False 38.4 73 False +P_lact_YB-4353|HMG_locus|F21A9957_003986 T_communis_352.35 T_communis_352.35|HMG|F8DCC00A_004874 False 40.0 75 False +P_lact_YB-4353|HMG_locus|F21A9957_003986 T_confusa_375.39 T_confusa_375.39|HMG_locus|F57803F5_005977 True 41.9 172 True +P_lact_YB-4353|HMG_locus|F21A9957_003986 T_deformans_A2 T_deformans_A2|HMG_locus|F891DC7E_001655 True 44.4 171 True +P_lact_YB-4353|HD_locus|orf101533 P_inouyei_YB-4354 P_inouyei_YB-4354|HD_locus|orf27984 True 100.0 151 True +P_lact_YB-4353|HD_locus|orf101533 P_lact_12-1054 P_lact_12-1054|HD_locus|orf38146 True 100.0 151 True +P_lact_YB-4353|HD_locus|orf101533 T_betulina_315 T_betulina_315|HD|FC6B0312_002074 False 50.8 61 False +P_lact_YB-4353|HD_locus|orf101533 T_communis_352.35 T_communis_352.35|HD_locus|orf80243 True 36.0 139 True +P_lact_YB-4353|HD_locus|orf101533 T_confusa_375.39 T_confusa_375.39|HD_locus|orf181587 True 35.4 147 True +P_lact_YB-4353|HD_locus|orf101533 T_deformans_A2 T_deformans_A2|HD_locus|orf51685 True 32.5 151 True +P_lact_12-1054|HMG_locus|F003EF48_006292 P_inouyei_YB-4354 P_inouyei_YB-4354|HMG_locus|F7C0A940_005637 True 99.0 197 True +P_lact_12-1054|HMG_locus|F003EF48_006292 P_lact_YB-4353 P_lact_YB-4353|HMG_locus|F21A9957_003986 True 100.0 197 True +P_lact_12-1054|HMG_locus|F003EF48_006292 T_betulina_315 T_betulina_315|HMG|FC6B0312_004553 False 38.4 73 False +P_lact_12-1054|HMG_locus|F003EF48_006292 T_communis_352.35 T_communis_352.35|HMG|F8DCC00A_004874 False 40.0 75 False +P_lact_12-1054|HMG_locus|F003EF48_006292 T_confusa_375.39 T_confusa_375.39|HMG_locus|F57803F5_005977 True 41.9 172 True +P_lact_12-1054|HMG_locus|F003EF48_006292 T_deformans_A2 T_deformans_A2|HMG_locus|F891DC7E_001655 True 44.4 171 True +P_lact_12-1054|HD_locus|orf38146 P_inouyei_YB-4354 P_inouyei_YB-4354|HD_locus|orf27984 True 100.0 151 True +P_lact_12-1054|HD_locus|orf38146 P_lact_YB-4353 P_lact_YB-4353|HD_locus|orf101533 True 100.0 151 True +P_lact_12-1054|HD_locus|orf38146 T_betulina_315 T_betulina_315|HD|FC6B0312_002074 False 50.8 61 False +P_lact_12-1054|HD_locus|orf38146 T_communis_352.35 T_communis_352.35|HD_locus|orf80243 True 36.0 139 True +P_lact_12-1054|HD_locus|orf38146 T_confusa_375.39 T_confusa_375.39|HD_locus|orf181587 True 35.4 147 True +P_lact_12-1054|HD_locus|orf38146 T_deformans_A2 T_deformans_A2|HD_locus|orf51685 True 32.5 151 True +T_confusa_375.39|HMG_locus|F57803F5_005977 P_inouyei_YB-4354 P_inouyei_YB-4354|HMG_locus|F7C0A940_005637 True 42.4 172 True +T_confusa_375.39|HMG_locus|F57803F5_005977 P_lact_12-1054 P_lact_12-1054|HMG_locus|F003EF48_006292 True 41.9 172 True +T_confusa_375.39|HMG_locus|F57803F5_005977 P_lact_YB-4353 P_lact_YB-4353|HMG_locus|F21A9957_003986 True 41.9 172 True +T_confusa_375.39|HMG_locus|F57803F5_005977 T_betulina_315 T_betulina_315|HMG|FC6B0312_004553 False 34.7 72 False +T_confusa_375.39|HMG_locus|F57803F5_005977 T_communis_352.35 T_communis_352.35|HMG|F8DCC00A_004874 False 36.1 72 False +T_confusa_375.39|HMG_locus|F57803F5_005977 T_deformans_A2 T_deformans_A2|HMG_locus|F891DC7E_001655 True 69.2 172 True +T_confusa_375.39|HD_locus|orf181587 P_inouyei_YB-4354 P_inouyei_YB-4354|HD_locus|orf27984 True 43.0 100 True +T_confusa_375.39|HD_locus|orf181587 P_lact_12-1054 P_lact_12-1054|HD_locus|orf38146 True 43.0 100 True +T_confusa_375.39|HD_locus|orf181587 P_lact_YB-4353 P_lact_YB-4353|HD_locus|orf101533 True 43.0 100 True +T_confusa_375.39|HD_locus|orf181587 T_betulina_315 T_betulina_315|HD|FC6B0312_002074 False 56.5 46 False +T_confusa_375.39|HD_locus|orf181587 T_communis_352.35 T_communis_352.35|HD_locus|orf80243 True 42.9 168 True +T_confusa_375.39|HD_locus|orf181587 T_deformans_A2 T_deformans_A2|HD_locus|orf51685 True 43.3 157 True +T_communis_352.35|HMG_locus|F8DCC00A_005608 P_inouyei_YB-4354 none +T_communis_352.35|HMG_locus|F8DCC00A_005608 P_lact_12-1054 none +T_communis_352.35|HMG_locus|F8DCC00A_005608 P_lact_YB-4353 none +T_communis_352.35|HMG_locus|F8DCC00A_005608 T_betulina_315 T_betulina_315|HMG_locus|FC6B0312_004634 True 41.4 116 True +T_communis_352.35|HMG_locus|F8DCC00A_005608 T_confusa_375.39 none +T_communis_352.35|HMG_locus|F8DCC00A_005608 T_deformans_A2 none +T_communis_352.35|HD_locus|orf80243 P_inouyei_YB-4354 P_inouyei_YB-4354|HD_locus|orf27984 True 36.0 139 True +T_communis_352.35|HD_locus|orf80243 P_lact_12-1054 P_lact_12-1054|HD_locus|orf38146 True 36.0 139 True +T_communis_352.35|HD_locus|orf80243 P_lact_YB-4353 P_lact_YB-4353|HD_locus|orf101533 True 36.0 139 True +T_communis_352.35|HD_locus|orf80243 T_betulina_315 T_betulina_315|HD|FC6B0312_002074 False 43.7 71 False +T_communis_352.35|HD_locus|orf80243 T_confusa_375.39 T_confusa_375.39|HD_locus|orf181587 True 42.9 168 True +T_communis_352.35|HD_locus|orf80243 T_deformans_A2 T_deformans_A2|HD_locus|orf51685 True 52.6 171 True +T_betulina_315|HMG_locus|FC6B0312_004634 P_inouyei_YB-4354 P_inouyei_YB-4354|HMG|F7C0A940_003944 False 38.5 52 False +T_betulina_315|HMG_locus|FC6B0312_004634 P_lact_12-1054 P_lact_12-1054|HMG|F003EF48_000425 False 38.5 52 False +T_betulina_315|HMG_locus|FC6B0312_004634 P_lact_YB-4353 P_lact_YB-4353|HMG|F21A9957_006289 False 38.5 52 False +T_betulina_315|HMG_locus|FC6B0312_004634 T_communis_352.35 T_communis_352.35|HMG_locus|F8DCC00A_005608 True 41.4 116 True +T_betulina_315|HMG_locus|FC6B0312_004634 T_confusa_375.39 none +T_betulina_315|HMG_locus|FC6B0312_004634 T_deformans_A2 T_deformans_A2|HMG|F891DC7E_000191 False 33.3 69 False +T_deformans_A2|HMG_locus|F891DC7E_001655 P_inouyei_YB-4354 P_inouyei_YB-4354|HMG_locus|F7C0A940_005637 True 43.9 173 True +T_deformans_A2|HMG_locus|F891DC7E_001655 P_lact_12-1054 P_lact_12-1054|HMG_locus|F003EF48_006292 True 43.4 173 True +T_deformans_A2|HMG_locus|F891DC7E_001655 P_lact_YB-4353 P_lact_YB-4353|HMG_locus|F21A9957_003986 True 43.4 173 True +T_deformans_A2|HMG_locus|F891DC7E_001655 T_betulina_315 T_betulina_315|HMG|FC6B0312_004553 False 37.5 72 False +T_deformans_A2|HMG_locus|F891DC7E_001655 T_communis_352.35 T_communis_352.35|HMG|F8DCC00A_004874 False 31.8 129 False +T_deformans_A2|HMG_locus|F891DC7E_001655 T_confusa_375.39 T_confusa_375.39|HMG_locus|F57803F5_005977 True 69.2 172 True +T_deformans_A2|HD_locus|orf51685 P_inouyei_YB-4354 P_inouyei_YB-4354|HD_locus|orf27984 True 34.0 144 True +T_deformans_A2|HD_locus|orf51685 P_lact_12-1054 P_lact_12-1054|HD_locus|orf38146 True 34.0 144 True +T_deformans_A2|HD_locus|orf51685 P_lact_YB-4353 P_lact_YB-4353|HD_locus|orf101533 True 34.0 144 True +T_deformans_A2|HD_locus|orf51685 T_betulina_315 T_betulina_315|HD|FC6B0312_002074 False 57.8 45 False +T_deformans_A2|HD_locus|orf51685 T_communis_352.35 T_communis_352.35|HD_locus|orf80243 True 52.6 171 True +T_deformans_A2|HD_locus|orf51685 T_confusa_375.39 T_confusa_375.39|HD_locus|orf181587 True 43.3 157 True diff --git a/docs/notes/2026-11-14_mat-discovery-tables/pm_locus_orthology_proteins.faa b/docs/notes/2026-11-14_mat-discovery-tables/pm_locus_orthology_proteins.faa new file mode 100644 index 00000000..dc2b92ed --- /dev/null +++ b/docs/notes/2026-11-14_mat-discovery-tables/pm_locus_orthology_proteins.faa @@ -0,0 +1,196 @@ +>P_inouyei_YB-4354|HMG|F7C0A940_003944 +MEHGSTTKDSTTTRAAAPRAKKEKKDPNAPKKALSSYMLFTQDHRQIVLSENPGIPFGQVGRELGTRWKNLSDADKKPYEDKAKAAKAKYEEEKAAYELENGIAPKKSRAKKEE +>P_inouyei_YB-4354|HMG_locus|F7C0A940_005637 +MPLGSIEHFSMAEALSMINHSEGWACFIPNGFLPVLVAEEDLAEEVCDGMRRLSSYLIMPTSLEDCRLPSLVVTGITQGLEHPIPAGKPRPPRRPANSFILYRKAKQAELIALYPGISNNEVSRSLGQMWKKEDEQTKQFYQSLAEGLKTQHKALYPDYKYCPKRPKVKNDFQTGTSSPSSCSCTNAGRAASDRQFR +>P_inouyei_YB-4354|HMG|F7C0A940_001588 +MRPDEVPGRSRERQYSDINLVQQEQPHRSLKRSSTMPELGACPGLTVQPPTPLDMTFGKQHGHPMRAEAEQGPVDTGSLFVGSYRSNASSVFPSGEDSALEDDDAYQRSPAASYDLTASPLSVHAMIRSSASPTLSSVSAPSSRRGSKAKSKQSAEDDQPKRPLNSFMLYRKDKWPTVPNKNHQSISRIIGEMWRNESRETKERYDSLAKQAKANHQALYPGYKFHPKKKKDGKTTSAKTGTPYRQSGSVSDSGVPPAMYSHEDYMRHVQPPFPYGYYPLQPDRSMYGASASTSHLFPTASEARASLAMQQQRSQQGYYAQAPPFRVDTPPRSTTGHSSSDQESPWSVPTAESALRQHHLQVQRRRQQLEEARTLADAEAQAQLDLQHYEWMQAQQTQQAQQAQQQAMLMHQQQQMLPPQELPGQFSGVSSHGVNTPHENLAEPQYDLLSNEYGVPEFMDEHGQIHPTAGLLDLAIYDPNYDGLAAFGPAQGQWSSTTLYDGTGDFGFSDYEHTHGEER +>P_inouyei_YB-4354|HMG|F7C0A940_003432 +MVEQTNKLQEKYDSVLGCTRLLTEAHAALIRSVKDLNEYVQETHPELDTEASVSTLVAPSNAAPATHEAPVIPGSASKKKEKKEKKVRDPDMPKRPVTAFFHFQNAIRQEMKNSLPDSASAADVQQALAAKWKEMDTEARKPYVAANEEALRAYTREMDTYNKSHGIAPKQAPAKKTTPAAEPSSPNTSPSAEDEEDDVAAASVLQDVPSTPKSSKKRGRPAKKDGQPSAKKVKTPAQEAPAETPKAEKKKKERKKKSAEQSA +>P_inouyei_YB-4354|HMG|F7C0A940_003008 +MKREVAIGLEQLGLSQYIARLEQEGFDEWASLCDITESDLEALDIKRGHRRILLRHIATIRGHPSTEPLDDGSSDGTGHPEDGTRSRSNSISTRRPSLAFTDAEDSQCQRMMPTKRQYKRHPKVDENAPSRPPSAYVMFANQIREEQRQSKLTFTQIARLAGERWKNLGPAEKVKIEAAADALKQKYVAETNEYRKSVEYQLYQDYLSEFKERAVRHEKPEKLVAPKRTGRKGAPSRHPYSPSAHPSTSPQEAHSAFSRQSSSCDSSSHGQSPAFVMTSTTETRPSEEQKTPLPHLNQWLPSMQEMAEQAVPQHLTGRPPFEQHRLPPLKMSMASQEALPPLIPSAYRGHGVSDPSFFRMAGMDRTY +>P_inouyei_YB-4354|HMG|F7C0A940_001266 +MADQALPIAPLSESEEIKYRKKCKALKKRINEIEQANDTLITKLARTKRYIQRTRLERAFLLEKLEQIASRDMQAEDEHASPSPPASPGFETYLLQKNPSYLAAHPVSMSPEPGRVSNGHPKPTPTTTGTPAPSKLRIEKPATAHKSKAQAKRDRDPNLPRRPKNAFLRFCDQEREAIKANWQGDETGEPLDLSRELGKVWQAMDDTRRKMYQDQFEEDKLRYERESIAYEAQKKAALEAASNDTLPTAADLQTPATGVTLAEQPRPTGSSPAPPGHADSAMDEDENMTDIEDAEEDEEEEGTDQDSGDNMDEDESGDDAATEDGAGPGQATPSVPKKTSGGGFTAVNSSST +>P_inouyei_YB-4354|HMG|F7C0A940_004761 +MSIKLMNPLVRLVTRNPAQVRAFATQLGDAPARPSVKKDPSLKIEKDPKFKKPKAVTVPPVQRATKQPPKGGVSAYTLFIKNYASERKAAGERFALTDAIEAYKKMPEEEKAKLLEQVPNVLAERKKLYDAFVNNMSPAEIAAENKVRAGLRKTALAKGKSVSSKLKKIKDPNAPTAPLSAWMRFLQERRSSGAYEDLPMIEITKRASTEWRELSDEARAKYSEEAAKGYEAYKKAKDAYYGQQ +>P_inouyei_YB-4354|HD|F7C0A940_005400 +MQQLYGFDAAYSNHSAPLMHSPYPHASATGSPPSSAESSPLGLVNGLPRHGRIRAQSLTTKLQSMVGGKSTAHITQQQLNKKRQRATPEQLAVLEEAFDVNPSPNAKQREVISAQIDMTERSVQIWFQNRRAKTKSASKRTSGAHDDSYQHARPGAPSRSFSIDQRMLSEHEAQHLGSNDVTRLNCRSLTIGSWRRVACTLSDLVLYFSHHEPRFTYYINSGASGFKLEFPLTDISKIDLQFLEGQTSKELGRITLTIVKPPVFFMEVPGPGTWSQCTDFTEHQQATLVHTHLLVGPYATLKSALMKMARYHPSVASIMTLADVLQSQPVTATFPVSPDRELFARAGQQAASALEQESNAAGQFARGPGMHRRTRSRSAPIALDFSFLNNENVGGMPNYSFGQRSARPEMNFAQLQQEPTQGFDLSMSGDPYAAAALSASQSIAPGTDYPEMIFTPTTSSTPVFPDGSGIPGWYNTHNAASGYAESPLLSGSGVHSALASPMLPSGSQYGMSSQPSLVAGLQQQHAQTLNDFSMGDPTNEPLMHFPAQSMPDLLNSIPEAETISPPSLQASLAMDGSTGGHAAKLDLGGTLNASTMHGAGLQNAQLAAMVAMNMETNAMIVQQAQQEQEDLQMQDHGMQ +>P_inouyei_YB-4354|HD|F7C0A940_004297 +MKNMSYGNARSQQLGNGPTSYGEMANVDYHGFDSDYQDAMSPGQKLPGKKNMKRHRLTHDETRFLLNEFARNPHPDGSQRERLVRTVKNLTNRQVQVWFQNRRAKLKRMTEEDAERVLASRRYPSSHGPLGIPRFGGFPGDVSCTEIPSTRTEAIFASSLPPVPSLHQASSSMSTESMSTNVSGSAVPRFREDGYYSGTASPMSYDSGVEPSTPESLVLSPYTMPSTFHHQPHFAARHFTSNFGVSQAPRSVPVTSSPTSRPDVAARTLPEPASLADISVRGWNKSWSLDNHAGGQLPAAPARQRQALPSISHELFGFLGNDDMLSLQSDEKFSTFGQQSYEFASTVGRLEQQYGARTGSLAKDPFTARLSISFDN +>P_inouyei_YB-4354|HD|F7C0A940_004905 +MSQQDHSTYSPSHAHFPGFNNLGEGRAQMMKQEFDGETQRMQLPFPPVQREALPSLQQLQTMPQSYGQQEQSTGYNSAQQQSFQIPQQTQPAQQASLPQNTGGFNVPHSTFSRHRQGPVPASLPNLGRMEGPFSASNFSPQFSPTQLQSPSASSSFASSSLSQPTSAAQTEGFQSSTGSIKGKRKRASPQQLGLLNQIFDMTFFPSTELRNALGKELGMMPRTVQIWFQNRRQSWRAHKNRSGDATASGDGQTTPTTGEQVEPHSNDNERGGWEVLRSFQNKKATGEIGEYEYMTIPGPVGGTAAPVADQGQSHPLAQHQQQPTSVPQAGILSGLTSPSVLHDFDSRWSSISDYGSSAPSSAGYLHHRSGSISSNPGSASTGTHPYGRSSPRMPSQQAWPRQQSLHAGNGHARSLSTLDLSMQAPPSLPYRHQLSGGYPSLLPLSPTQGTLPPFGNASGMMQGTQQQPQDNRQGYDYTRFGGLPPPPPSSSTAFGRN +>P_inouyei_YB-4354|HD|F7C0A940_005340 +MDPGSSPQLEPSSQQDGHPAAPTLHQHVLLPAQQAAEQAGKADATATAAADAAAARAKRRRTTGAELAILEDEFAQCDKPDPLARERISKRIGLVEGPGMNGREIQVWFQNKRQAVRKARGSDASLLVVTSGDVPALSASTSTTSLSSSSSDLEKTVWPQVQVVNKGGRGTGYIHLAKRPDTTVVSATAQTKRPRRLASLQLQDLDGHAELHFQPPCAPSPVSPPRIPGAALLTRKFQRLQQQELRADKKRRQLGASRSVSSPALLGERAPHSASVRKQPAARTKLAKSASMAAAGKENVDPHTTLSAQQMADAHQFAGTAQVQGWQGLLLATSARYLPASPSHLRDLPPSASRGNTHGNGQGRRVVSAPATAVSPCKTQPNRQEEGLPGASQETCVDDEEGDVTDHAMSLEECALSLVGLARGS +>P_inouyei_YB-4354|HD|F7C0A940_003233 +MSDAQDSSFRLPSLTSLIPEEVPQQYSRSDPRWPGTAPQPTAPYDPLERTGGSSMQPGYDYSAYQPGSYFGPSAARDQHHRGSLSSASYVESSRHSSQSTARSSLSSGPDVHGRQPIPAWSDTTTHIQPFSYGAPALQLSPGSRALAYKPEFSPPFPVNHAVPAQRTGPGPLPSIRYSPNSSYASLRRDSVASSIQDEQDHRRDSYPHIMGGGHSPGSGNAQLHDARRGSHPSMSFAPYLTTRPTASTESLPSTASAVDSAGKPKKRRGNLSRKATNMLKTWLNEHVEHPYPSEDEKLALSEQTELTIAQISNWFINARRRILAPRFASKNQSAVWNEIKMNHHIHGGPMPSEGRLEQQQQQQVQLQPSHLPPSVSSSGEGESPELSHAVRDTPLAPATA +>P_inouyei_YB-4354|HD_locus|orf27984 +LPYHLTRQSVQASTVQTAMDIITMIDEVETDLRMRSVEVSTAIDRFRYIKKELQRLPLDAAVLDTIKAKALTIVDLCAQHRNGSTANVQQNRPHRRAVQKILKAWYLEHLQHPYPNEADKQRLASLTGLTIKQISMWFTNARRRSGTNGDRFMREGVSASLVSLLPY +>P_lact_YB-4353|HMG|F21A9957_006289 +MEQQVNKKPKQHTNTPQAKDSTTTRAAAPRAKKEKKDPNAPKKALSSYMLFTQDHRQIVLSENPGIPFGQVGRELGTRWKNLSDADKKPYEDKAKAAKAKYEEEKAAYELENGIAPKKSRAKKEE +>P_lact_YB-4353|HMG_locus|F21A9957_003986 +MPLGSIEHFSMAEALSMINHSEGWACFIPNGFLPVLVAEEDFAEEVCDGMRRLSSYLVMPTSLEDCRLPSLVVTGITQGLEHPIPAGKPRPPRRPANSFILYRKAKQAELIALYPGISNNEVSRSLGQMWKKEDEQTKQFYQSLAEGLKTQHKALYPDYKYCPKRPKVKNDFQTGTSSPSSCSCTNAGRAASDRQFR +>P_lact_YB-4353|HMG|F21A9957_002866 +MRPDEVPGRSRERQYSDINLVQQEQPHRSLKRSSTMPELGACPGLTVQPPTPLDMTFGKQHGHPMHAEAEQGPVDTGSLFVGSYRSNASSVFPSGEDSALEDDDAYQRSPAASYDLTASPLSVHAMIRSSASPTPSSVSAPSSRRGSKAKSKQSAEDDQPKRPLNSFMLYRKDKWPTVPNKNHQSISRIIGEMWRNESRETKERYDSLAKQAKANHQALYPGYKFHPKKKKDGKTTSAKTGTPYRQSGSVSDSGVPPAMYSHEDYMRHVQPPFPYGYYPLQPDRSMYGASASTSHLFPTASEARASLAMQQQRSQQGYYAQAPPFRVDTPPRSTTGHSSSDQESPWSVPTAESALRQHHLQVQRRRQQLEEARTLADAEAQAQLDLQHYEWMQAQQTQQAQQQAMQMHQQQQMLPPQELPGHLSGVSSHGVNTPHENLAEPQYDLLSNEYGVPEFMDEHGQIHPMAGLLDLAIYDPNYDGLAAFGPAQGQWSSTTLYDGTGDFGFSDYEHTHGEER +>P_lact_YB-4353|HMG|F21A9957_006358 +MLEQTNKLQEKYDSVLGCTRLLTEAHAALIRSVKDLNEYVQETHPELDTEASVSTLVAPSNAAPATHEAPVIPGSASKKKEKKEKKVRDPDMPKRPVTAFFHFQNAIRQEMKNSLPDSASAADVQQALAAKWKEMDTEARKPYVAANEEALRAYTREMDTYNKSHGIAPKQAPAKKTTPAAEPSSPNTSPSAEDEEDDVAAASVLQDVPSTPKSSKKRGRPAKKDGQPSAKKVKTPAQEAPAETPKAEKKKKERKKKSAEQSA +>P_lact_YB-4353|HMG|F21A9957_001070 +MKREVAIGLEQLGLSQYIARLEQEGFDEWASLCDITESDLEALDIKRGHRRILLRHIATIRGHPSTEPLDDGSSDGTGHPEDGTRSRSNSISTRRPSLAFTDAEDSQCQRMMPTKRQYKRHPKVDENAPSRPPSAYVMFANQIREEQRQSKLTFTQIARLAGERWKNLGPAEKVKIEAAADALKQKYVAETNEYRKSVEYQLYQDYLSEFKERAVRHEKPEKLVAPKRTGRNGVPPRHPYSPSAHPSTSPQEAHSTFSRQSSSCDSSSHGQSPAFVMTSTTETRPSEEQKTPLPHLNQWLPSMQEMAEQAVPQHLTGRPPFEQHRLPPLKMSMASQEALPPLIPSAYRGHGVSDPSFFRMAGMDRTY +>P_lact_YB-4353|HMG|F21A9957_004928 +MSIKLMNPLVRLVARNPAQVRAFATQLGDAPTRPRVKKDTSLKIEKDPKLKKLKAVAVPPVQRATKQPPKGGVSAYTLFIKNYASERKAAGERFALTDAIEAYKKMPEEEKAKLLEQVPNVLAERKKLYDAFVNNMSPAEIAAENKVRAGLRKTALAKGKSVSSKLKKIKDPNAPTAPLSAWMRFLQERRSSGAYEDLPMIEITKRASTEWRELSDEARAKYSEEAAKGYEAYKKAKDAYYGQQ +>P_lact_YB-4353|HMG|F21A9957_003047 +MADQALPIAPLSESEEIKYRKKCKALKKRISEIEQANDTLITKLARTKRYIQRTRLERAFLLEKLEQIASRDMQAEDEHASPSPPASPGFETYLLQKNPSYLAAHPVSMSPEPGRATNGHPKPTPTTTGTPAPSKLRIEKPATAHKSKAQAKRDRDPNLPRRPKNAFLRFCDQEREAIKANWQGDETGEPLDLSRELGKVWQAMDDTRRKMYQDQFEEDKLRYERESIAYEAQKKAALEAASNDTLPTAADLQTPAAGVTSAEQPRPTGSSPAPPGHADSAMDEDENMTDIEDAEEDEEEEGTDQDSGDNMDEDESGDDAATEDGAGPGQATPSVPKKTSGGGFTAVNSSST +>P_lact_YB-4353|HD|F21A9957_000040 +MQQLYGFDAAYSNHSAPPMHSPYPHASATGSPPSSAESSPLGLVNGLPRHGRIRAQSLTTKLQSMVGGKSTAHITQQQLNKKRQRATPEQLAVLEEAFDVNPSPNAKQREVISAQIDMTERSVQIWFQNRRAKTKSASKRTSGAHDDSYQHARPGAPSRSFSIDQRMLFEHEAQHLGSNDVTRLNCRSLTIGSWRRVACTLSDLVLYFSHHEPRFTYYINSGASGFKLEFPLTDISKIDLQFLDGQTSKELGRITLTIVKPPVFFMEVPGPGTWSQCTDFTEHQQATLVHTHLLVGPYATLKTALMKMARYHPSVASVMTLADVLQSQPVTATFPVSPDRELFARAGQQAASALEQESNAAGQFARGPGMHRRTRSRSAPIALDFSFLNNENVGGMPNYSFGQRSARPEMNFAQLQQEPTQGFDLSMSGDPYAAAALSASQSIAPGTDYPEMTFTPTTSSTPVFPDGSLIPGWYNTHNAASGYAESPLLSGSGVHSALASPMLPSGSQYGMSSQPSLVAGLQQQHAQTLNDFSMGDPTNEPLMHFPAQSMPDLLNSIPEAETISPPSLQASLAMDGSTGGHAAKLDLGGTLNASTMHGAGLQNAQLAAMVAMNMETNAMIVQQAQQEQEDLQMQDHGMQ +>P_lact_YB-4353|HD|F21A9957_002544 +MTLATHGRCGEHLSHSMENMSYGNARTQQLGNGPTSYGEMANVDYHGFDSDYQDAMSPGQKLPGKKNMKRHRLTHDETRFLLNEFARNPHPDGSQRERLARTVKNLTNRQVQVWFQNRRAKLKRMTEEDAERVLASRRYPSSHGPLGIPRFGGFAGDVSCAEIPSTRTEAIFASFLPPVPSLHQASSSMSTESMSTNVSGSAVPRFREDGYYSGTASPMSYDSGVEPSTPESLVLSPYTMPSTFHHQPHFAARHFTSNYGVSQAPRSVPVTSSPTSRPDVAARTLPEPASLADISVRGWNKSWSLDNHAGGQLPAAPARQRQALPSISHELFGFLGNDDMLSLQSDEKYSTFGQQSYEFASTVGRLEQQYGARTGSLAKDPFTARLSISFDN +>P_lact_YB-4353|HD|F21A9957_004986 +MSQQDHSTYSPSHAHFPGFNNLGEGRPQMVKQEFDGETQRMQLPFPPAQREALPSLQQLQTMPQSYGQQEQPTGYNSAQQQSFQIPQQPQPTQQVSIPQNTGGFNVPHSTFSRHRQGPVPASLPNLGRMEGSFSASSFSPQFSPTQLQSPSASSSFASSSLSQPTSAAQTEGFQSSTGSIKGKRKRASPQQLGLLNQIFDMTFFPSTELRNALGKELGMMPRTVQIWFQNRRQSWRAHKNRSGDATASGDGQTTPTAGEQVEPHSNDNERGGWEVLRSFQNKKATGEIGEYEYMSIPGPVGGSGAPVADQGQSHPLAQHQQQPTSVPQAGILSGLTSPSVLHDFDSRWSSISDYGSSAPSSAGYLHHRSGSISSNPGSASTGTHPYGRSSPRMPSQQAWPRQQSLHTGNGHARSLSTLDLSMQAPPPLPYRHQLSGGYPSLLPLSPTQGILPPFGNASGMMQGTQQQQQDNRQGYDYTRFGGLPPPPPSSSTAFGRN +>P_lact_YB-4353|HD|F21A9957_004156 +MDPGSSTQLEPFSQHDGHPAAPTLHQHVLLPAEQAGKADATATAAADAAAARAKRRRTTGAELAILEDEFAQCDKPDPLARERISKRIGLVEGPGMNGREIQVWFQNKRQAVRKARGSDASLLVVTAGDVPALSASTSTTSLSSSSSDLEKTVWPQVQAVNKGGRGTGYIHLAKRPDTTGLSATAQTKRPRRLASLQLQDLDGHAELRFQPPCAPSPVSPPRIPGAALLTRKFQRLQQQELRADKKRRQLVAARSVSSPALLGERAPHSASVSKQSAARTKLAKSTSMAAAGKENVDPHTTLSAQEMADAHEFAGTAQVQGWQGLLLATSARYLPASPSHLRDLPPSASRDNTHGNGQGRRVVSAPATAVSPCKIQPNRQEEGLPGASQETCVDDEEGEVMDHAMSLEECALSLVGLARGS +>P_lact_YB-4353|HD|F21A9957_005482 +MEVMSDAQDSSFRLPSLTSLIPEEVPQQYSRSDPRWPGTAPQPTAPYDPLERTGGSSMQPGYDYSAYQPGSYFGPSAARDQHHRGSLSSASYVESSRHSSQSTARSSLSSGPDVHGRQPIPAWSDATTHTQPFSYGTPALQLSPGSRALAYKPEFSPPFPVNHAVPAQRTGPGPLPSIRYSPNSSYASLRRDSVASSIQDEQDHRRDSYPHIMGGGHSPGSGNAQLHDARRGSHPSMSFAPYLTTRPTASTESLPSTASAIDSAGKPKKRRGNLSRKATSMLKTWLNEHVEHPYPSEDEKLALSEQTELTIAQISNWFINARRRILAPRFASKNQSAVWNEIKMNHHIHGGPMPTEGTLDQQQQQQVQLQPSHLPPSVSSAGEGESPELSHAVRDTPLAPATA +>P_lact_YB-4353|HD_locus|orf101533 +TAMDIITMIDEVETDLRMRSVEVSTAIDRFRYIKKELQRLPLDAAVLDTIKAKALTIVDLCAQHRNGSTANVQQNRPHRRAVQKILKAWYLEHLQHPYPNEADKQRLASLTGLTIKQISMWFTNARRRSGTNGDRFMREGVSASLVSLLPY +>P_lact_12-1054|HMG|F003EF48_000425 +MEQQVNKKPKQHTNTPQAKDSTTTRAAAPRAKKEKKDPNAPKKALSSYMLFTQDHRQIVLSENPGIPFGQVGRELGTRWKNLSDADKKPYEDKAKAAKAKYEEEKAAYELENGIAPKKSRAKKEE +>P_lact_12-1054|HMG_locus|F003EF48_006292 +MATSMPLGSIEHFSMAEALSMINHSEGWACFIPNGFLPVLVAEEDFAEEVCDGMRRLSSYLVMPTSLEDCRLPSLVVTGITQGLEHPIPAGKPRPPRRPANSFILYRKAKQAELIALYPGISNNEVSRSLGQMWKKEDEQTKQFYQSLAEGLKTQHKALYPDYKYCPKRPKVKNDFQTGTSSPSSCSCTNAGRAASDRQFR +>P_lact_12-1054|HMG|F003EF48_001932 +MRPDEVPGRSRERQYSDINLVQQEQPHRSLKRSSTMPELGACPGLTVQPPTPLDMTFGKQHGHPMHAEAEQGPVDTGSLFVGSYRSNASSVFPSGEDSALEDDDAYQRSPAASYDLTASPLSVHAMIRSSASPTPSSVSAPSSRRGSKAKSKQSAEDDQPKRPLNSFMLYRKDKWPTVPNKNHQSISRIIGEMWRNESRETKERYDSLAKQAKANHQALYPGYKFHPKKKKDGKTTSAKTGTPYRQSGSVSDSGVPPAMYSHEDYMRHVQPPFPYGYYPLQPDRSMYGASASTSHLFPTASEARASLAMQQQRSQQGYYAQAPPFRVDTPPRSTTGHSSSDQESPWSVPTAESALRQHHLQVQRRRQQLEEARTLADAEAQAQLDLQHYEWMQAQQTQQAQQQAMQMHQQQQMLPPQELPGHLSGVSSHGVNTPHENLAEPQYDLLSNEYGVPEFMDEHGQIHPMAGLLDLAIYDPNYDGLAAFGPAQGQWSSTTLYDGTGDFGFSDYEHTHGEER +>P_lact_12-1054|HMG|F003EF48_001253 +MLEQTNKLQEKYDSVLGCTRLLTEAHAALIRSVKDLNEYVQETHPELDTEASVSTLVAPSNAAPATHEAPVIPGSASKKKEKKEKKVRDPDMPKRPVTAFFHFQNAIRQEMKNSLPDSASAADVQQALAAKWKEMDTEARKPYVAANEEALRAYTREMDTYNKSHGIAPKQAPAKKTTPAAEPSSPNTSPSAEDEEDDVAAASVLQDVPSTPKSSKKRGRPAKKDGQPSAKKVKTPAQEAPAETPKAEKKKKERKKKSAEQSA +>P_lact_12-1054|HMG|F003EF48_000047 +MKREVAIGLEQLGLSQYIARLEQEGFDEWASLCDITESDLEALDIKRGHRRILLRHIATIRGHPSTEPLDDGSSDGTGHPEDGTRSRSNSISTRRPSLAFTDAEDSQCQRMMPTKRQYKRHPKVDENAPSRPPSAYVMFANQIREEQRQSKLTFTQIARLAGERWKNLGPAEKVKIEAAADALKQKYVAETNEYRKSVEYQLYQDYLSEFKERAVRHEKPEKLVAPKRTGRNGVPPRHPYSPSAHPSTSPQEAHSTFSRQSSSCDSSSHGQSPAFVMTSTTETRPSEEQKTPLPHLNQWLPSMQEMAEQAVPQHLTGRPPFEQHRLPPLKMSMASQEALPPLIPSAYRGHGVSDPSFFRMAGMDRTY +>P_lact_12-1054|HMG|F003EF48_005701 +MSIKLMNPLVRLVARNPAQVRAFATQLGDAPTRPRVKKDTSLKIEKDPKLKKLKAVAVPPVQRATKQPPKGGVSAYTLFIKNYASERKAAGERFALTDAIEAYKKMPEEEKAKLLEQVPNVLAERKKLYDAFVNNMSPAEIAAENKVRAGLRKTALAKGKSVSSKLKKIKDPNAPTAPLSAWMRFLQERRSSGAYEDLPMIEITKRASTEWRELSDEARAKYSEEAAKGYEAYKKAKDAYYGQQ +>P_lact_12-1054|HMG|F003EF48_000189 +MADQALPIAPLSESEEIKYRKKCKALKKRISEIEQANDTLITKLARTKRYIQRTRLERAFLLEKLEQIASRDMQAEDEHASPSPPASPGFETYLLQKNPSYLAAHPVSMSPEPGRATNGHPKPTPTTTGTPAPSKLRIEKPATAHKSKAQAKRDRDPNLPRRPKNAFLRFCDQEREAIKANWQGDETGEPLDLSRELGKVWQAMDDTRRKMYQDQFEEDKLRYERESIAYEAQKKAALEAASNDTLPTAADLQTPAAGVTSAEQPRPTGSSPAPPGHADSAMDEDENMTDIEDAEEDEEEEGTDQDSGDNMDEDESGDDAATEDGAGPGQATPSVPKKTSGGGFTAVNSSST +>P_lact_12-1054|HD|F003EF48_000947 +MQQLYGFDAAYSNHSAPPMHSPYPHASATGSPPSSAESSPLGLVNGLPRHGRIRAQSLTTKLQSMVGGKSTAHITQQQLNKKRQRATPEQLAVLEEAFDVNPSPNAKQREVISAQIDMTERSVQIWFQNRRAKTKSASKRTSGAHDDSYQHARPGAPSRSFSIDQRMLFEHEAQHLGSNDVTRLNCRSLTIGSWRRVACTLSDLVLYFSHHEPRFTYYINSGASGFKLEFPLTDISKIDLQFLDGQTSKELGRITLTIVKPPVFFMEVPGPGTWSQCTDFTEHQQATLVHTHLLVGPYATLKTALMKMARYHPSVASVMTLADVLQSQPVTATFPVSPDRELFARAGQQAASALEQESNAAGQFARGPGMHRRTRSRSAPIALDFSFLNNENVGGMPNYSFGQRSARPEMNFAQLQQEPTQGFDLSMSGDPYAAAALSASQSIAPGTDYPEMTFTPTTSSTPVFPDGSLIPGWYNTHNAASGYAESPLLSGSGVHSALASPMLPSGSQYGMSSQPSLVAGLQQQHAQTLNDFSMGDPTNEPLMHFPAQSMPDLLNSIPEAETISPPSLQASLAMDGSTGGHAAKLDLGGTLNASTMHGAGLQNAQLAAMVAMNMETNAMIVQQAQQEQEDLQMQDHGMQ +>P_lact_12-1054|HD|F003EF48_004261 +MTLATHGRCGEHLSHSMENMSYGNARTQQLGNGPTSYGEMANVDYHGFDSDYQDAMSPGQKLPGKKNMKRHRLTHDETRFLLNEFARNPHPDGSQRERLARTVKNLTNRQVQVWFQNRRAKLKRMTEEDAERVLASRRYPSSHGPLGIPRFGGFAGDVSCAEIPSTRTEAIFASFLPPVPSLHQASSSMSTESMSTNVSGSAVPRFREDGYYSGTASPMSYDSGVEPSTPESLVLSPYTMPSTFHHQPHFAARHFTSNYGVSQAPRSVPVTSSPTSRPDVAARTLPEPASLADISVRGWNKSWSLDNHAGGQLPAAPARQRQALPSISHELFGFLGNDDMLSLQSDEKYSTFGQQSYEFASTVGRLEQQYGARTGSLAKDPFTARLSISFDN +>P_lact_12-1054|HD|F003EF48_000640 +MSQQDHSTYSPSHAHFPGFNNLGEGRPQMVKQEFDGETQRMQLPFPPAQREALPSLQQLQTMPQSYGQQEQPTGYNSAQQQSFQIPQQPQPTQQVSIPQNTGGFNVPHSTFSRHRQGPVPASLPNLGRMEGSFSASSFSPQFSPTQLQSPSASSSFASSSLSQPTSAAQTEGFQSSTGSIKGKRKRASPQQLGLLNQIFDMTFFPSTELRNALGKELGMMPRTVQIWFQNRRQSWRAHKNRSGDATASGDGQTTPTAGEQVEPHSNDNERGGWEVLRSFQNKKATGEIGEYEYMSIPGPVGGSGAPVADQGQSHPLAQHQQQPTSVPQAGILSGLTSPSVLHDFDSRWSSISDYGSSAPSSAGYLHHRSGSISSNPGSASTGTHPYGRSSPRMPSQQAWPRQQSLHTGNGHARSLSTLDLSMQAPPPLPYRHQLSGGYPSLLPLSPTQGILPPFGNASGMMQGTQQQQQDNRQGYDYTRFGGLPPPPPSSSTAFGRN +>P_lact_12-1054|HD|F003EF48_005759 +MDPGSSTQLEPFSQHDGHPAAPTLHQHVLLPAEQAGKADATATAAADAAAARAKRRRTTGAELAILEDEFAQCDKPDPLARERISKRIGLVEGPGMNGREIQVWFQNKRQAVRKARGSDASLLVVTAGDVPALSASTSTTSLSSSSSDLEKTVWPQVQAVNKGGRGTGYIHLAKRPDTTGLSATAQTKRPRRLASLQLQDLDGHAELRFQPPCAPSPVSPPRIPGAALLTRKFQRLQQQELRADKKRRQLVAARSVSSPALLGERAPHSASVSKQSAARTKLAKSTSMAAAGKENVDPHTTLSAQEMADAHEFAGTAQVQGWQGLLLATSARYLPASPSHLRDLPPSASRDNTHGNGQGRRVVSAPATAVSPCKIQPNRQEEGLPGASQETCVDDEEGEVMDHAMSLEECALSLVGLARGS +>P_lact_12-1054|HD|F003EF48_001800 +MEVMSDAQDSSFRLPSLTSLIPEEVPQQYSRSDPRWPGTAPQPTAPYDPLERTGGSSMQPGYDYSAYQPGSYFGPSAARDQHHRGSLSSASYVESSRHSSQSTARSSLSSGPDVHGRQPIPAWSDATTHTQPFSYGTPALQLSPGSRALAYKPEFSPPFPVNHAVPAQRTGPGPLPSIRYSPNSSYASLRRDSVASSIQDEQDHRRDSYPHIMGGGHSPGSGNAQLHDARRGSHPSMSFAPYLTTRPTASTESLPSTASAIDSAGKPKKRRGNLSRKATSMLKTWLNEHVEHPYPSEDEKLALSEQTELTIAQISNWFINARRRILAPRFASKNQSAVWNEIKMNHHIHGGPMPTEGTLDQQQQQQVQLQPSHLPPSVSSAGEGESPELSHAVRDTPLAPATA +>P_lact_12-1054|HD_locus|orf38146 +TAMDIITMIDEVETDLRMRSVEVSTAIDRFRYIKKELQRLPLDAAVLDTIKAKALTIVDLCAQHRNGSTANVQQNRPHRRAVQKILKAWYLEHLQHPYPNEADKQRLASLTGLTIKQISMWFTNARRRSGTNGDRFMREGVSASLVSLLPY +>T_confusa_375.39|HMG|F57803F5_003754 +MPKDTKPRTVKRDVTKRAKKDPDAPKRALSSYMLFAQDQRSVVQQENPNIAFGEVGKVLGQKWKALTDSEKKPYEDRAGEEKKKYEKLKAQYEADNPKAGKKSGAKKVTKKAKSDDDESA +>T_confusa_375.39|HMG|F57803F5_004161 +MNGALNSSSIHGTQFADFNRKYQIVLSSCRLLTEAQSALDRSITDFVSVAQALDPDVNVQAFAMEAGQGSIPPRTVVSRTPSKGGKRTKVTNLSSPTTGTADVRTSTQSAAPALLTQAEPRSDTELVGESSSSSIIPGKKQKKIRDPDLPKRPMSAFFLFQNAVRNSVKSAMPEESKGAEIQKAISEKWKELDDESRQPYNEKYENELQDYEARLATYKQDHGLPQRPKSSSTRSDVKNRTPVKTNQANDDDAAAASIVSQVTDPKVIAEAQKTSKKRARTTELEGQKVVKSPRKSEKASDEKKLVLTPDCCLGC +>T_confusa_375.39|HMG|F57803F5_004000 +MADPNNAYGRSTKIELSISEETKYRKKCRDLKRRINEVEVSNEGLVTKLARTKRYIRRARLERAFLLERLEAQVPKNSQGSDGSPSPPASPALESYSLEPVQPALDNGNSPDPIRRSASPADSRQHTPTYDFPIASAISNAAAAHIANQKERKGSPAPGGSNSTKKIKPPKDPNAPKRPKNAFLLFCEIERDSVRAAADPGNGETVDIARELGRVWADMNDDARKPYRDMYEEDKVRYEKEMSTYEKPKHMAATTPIKPEDYQDKIEIELPTLPNPSPRPKVGGFTAVNRA +>T_confusa_375.39|HMG_locus|F57803F5_005977 +MTFGEIKNYPTRDALACLNNSQGSAYFVPDGYEPILISQKELTDEVRVEIRRATAYLRLPIALHECRLPTYIVTSRKITTESVAQSVTTSPAKNPPRPPNAFILYRKSKQAEVLAQQQGISNNDVSRIIGTMWRTETEVVRDSFQRFAEEVKLQHKIQYPDYRYKPRRALMKPGTGCCLDKRTPHRRVTLQESPTVCSLETHTSHEPTLLAEEDFPLYY +>T_confusa_375.39|HMG|F57803F5_002637 +MVTNKLHLAQTTVSAPQVVLEPPTPFLHSTNPETLLTSSVSQELEHAMHTDYRESIALSRSPDSLFVGDLPLSQSATLTHAASICTSRSASPQRPPSRGATPRSRNKTKKLDAEENFVKRPLNSFMLYRKDNQHNIPTNNHQSISRIIGDMWRKETAETKNFYDVLAKEERERHLRDNPGYKFQPKKKKKEGKLLRPELKERHSSGNLDEGQRNMMLQPFDSTQPLQPRQTQSSPLKQRQVPRARNQPDLNPSLGQSSQGHQFADQAMYRELPPQYAHYAGQLQYFSEQAQQSEQSHGALLRDPQDWSLATHQQPDYRSYQTQALYQETLPSDATTCWPEPYPFLDYNMPPTFAEWEHARGSDTPLLQEESLQADFQQMYNNETMLSSEQTCDEQDFVPNHIKYGDPFDFTVGNPSGSCWEIEPEYLPQLYNF +>T_confusa_375.39|HMG|F57803F5_001127 +MSVFRTVFSKETRLNVTLVRFATTEAVRKPRKNAAAAPPVPKAKAMKTPSSSSVTPYRLFIQQFAEERKNAGEKWLLQNAAEAYKKLPESEKSKLLEQIPELIKQRKVIYEEFVSKLSPSDIVAENKTRAALRKERIAAGKSVKNLAPILDKNAPTRPGGSYVLWAQQARQDAQYSGMSITDQAKALGEKWKALAENEKAEWTSKAKQLREEYEKKKAEYYGS +>T_confusa_375.39|HMG|F57803F5_003604 +MLSGRSNLAEDFSRLGLSEYLQRFSDEGFTDWSSIADITESDLAALGVRLGHRRTLYREIATLRGYPQTERLENLPKHAPGILLNSASEESRTAYEGSISGSDGQTSPASIETAPQKRRYKRHPKADDNAPIRPPSAYVLFANVIREEQKDSNLSFTQLARLVGERWKNLKSAEKEAIESQAAEVKRRYTAEVGVYKKSPEYAQYQAYLREFKQRVLKDERPEKLEPPRKAQRTNDRQSPAPRSIITAGVRDPTDHRKTRGEPEHDQRGLKPLPDSPFTIPSILHEGARRGDDRVLPSLDYVYNFGNKEQSAPLSERPGVANYNSRPILPRPEFPGPMDNIITNSMYSNSPQWHEESRQRKQQLDWPSSTDQPGRLPSFHGSTVTHDSFAKR +>T_confusa_375.39|HD|F57803F5_001137 +MSQLIDNDVLGEHSPPDRRLIICEQNSGQSRPSFTSTSFTLRAEAEDHAHRQAGSAESSTSSSPRHSISSNRARSLSLNIKSSQARSTAHVTQQQINRKRQRATPEQLSVLEDAFAANPSPNARMRESISTQINMTERSVQIWFQNRRAKTKSMYRKGAPDEMTLSHASFDMRPSLPGRSWSIDQGMFPNHMMLSNSPQISQIGPVQSFTTRLNCRSLTIGSWRRVACTSSDLICYFSHLEPLFTYYVNSGATGFKIEFPISAIVKIHLTYVAAVNTHEMGRALITLDSCPIFFMEIPSSGAWRQCTDFTENQQGTNERHHNLVGPYQHLKDALIQLLSVHKEMIDCVTFEDANSMDFGVPISSQAVNIAQANAMALRSDDGSTNAVVGRLLQASTPEIRGPARSGHRRTRSRSAPIAVDLSWMNPTHVDDLTKYNYGLRTFNVVPETRYAPEIPSASNSITFDGSDGLYTPATVATSSYQDTWYTSSYANTPLLDAECSQLGSPLAPGGPQFDLDFNGSQIDVYSSFADLGTGMTVTSTLPYHSATANISMPDLPRLDSVPEIPTLDDVPLSEPRGIVDQPYPTMYGQTSSVHNYPIQQ +>T_confusa_375.39|HD|F57803F5_002097 +MRLRSLSQRGASNKSSDKGSKQVTTTLEDSPCDRQQVSSPSYYRADVPDNQGEMITSASTNYYYDDHRQNRWQQSSDDANNMHNSYEYHQGSPQGYRALQPEDHDAPPDQAIGAFVRNAPLDSYEDSPRDLNAGHIDTQTYPVNDELYADGRRNIPYRDYHGTESGHGLADASPTSTADSPDDTSASMERDMPIVKPFNKKNLKRHRLSHSETRFLLNQFGQNPHPDAAQRVVLSKQISNLSVRQIQVWFQNRRAKLKRMSASDADRMLSTRSYPEGYGPKGFESKPGRPNTPLRTSPDLEPTDAHYTEEDHEDAQSLQPKNISAAIPQYFNHSNLSIHDQSVGLAPYYSRPYLRSPLINENQIHSHYMQTGQVSNLNDETNPTYGEAQLARVVQTPTSLTPAYENVNYGFQTRSPALQNARVYYTRPYPATHPVYAPRSVNSTSEYNDSPVMTPVVQSPYRPYDSRSYYNSATMAAQNFDGGAIRQMYSSSDQASAYQVPEQGNTYVPTAIVPRPLGYSQQAMLGTEIGETRSLDTPASSPDGSYHQAPQMQRESKCGYASINETRSENNEYMETAQGYAQENRQQLNVSQQIEAYEHQIHQPTYSSSHQEYGTDFVPDVTEQD +>T_confusa_375.39|HD|F57803F5_006117 +MAEVSQETTFDAINNDAAQGNAVDTEEATLADAGLEPPWANEPLLPDATPTTSKAVLTEGQEPEASAISASASTELDGSEGKPTDGNVDTTAAVRDDDQAMQQFKGQIQMHYPQMTPHGPQPYYHDPAIHAQYHYPHPQSGYMNQISNPPGTKAKRKRASPHQLALLNQIFEYTFFPSTELRNAIGKELGMAPRTVQIWFQNRRQAWRSTKVVNADGSESTSAKSNDNERGGWEVLRSFQARRANGEIQEYEYMAIPSPSNAANGQDGRVVGGYSLVPYHPGMMQVALSSNDQFNSSMQQVPMPLPHTPRPNANLVMGPPHPQQFPRPPSPPPPPTVPQTVQDSSLGVTVDQTDEKDTTSSSNDGTAAVPTTDAIETRVDAPDEGTTVLDNVDPSLENADDSSLAIMPDTTTTTTKKTTATERKVTESQGKEHTTTVQE +>T_confusa_375.39|HD|F57803F5_004223 +MDPRLQDELKVEESTNQHDESHATNDLPAPPANVEDATTEHIDDQGEHTAFLPSLQFASGNDLSSIANYDPRHVASDALRTGEEDAAAQTFDHWPTDTQTQVQNDSGLHDVNTYVQGDSANQFSQAGNPSDYQQDAQQQQSHQQQQQQQQHMQQQQHHLQQQQQHHQHQHHPQHPHHHGGTPYDRPILGASYGTYDGSKPKRKRASPQQLTLLNNIFEMTYFPSSDLRLAIGKELDMVPRSVQIWFQNRRSLWRAKAGQILNENKQRKEELVATGLTADEADAKITADRAESAARQIADQRANDAVEYAINGSNGSLAYALHGANVSQISAATVDDGSVTRDDEAGAWSVLQAFHQARTGVMIQQGHPPMPQRPEAEQQQQQQQQQQQQQQQQTAQQQQQQEV +>T_confusa_375.39|HD|F57803F5_006217 +MDQYSIGRMDEPTRRRRRTTTLELEILETEFAKCDKPSISERDRISDVISRTDIDGPGMNGREIQVWFQNKRQAIRRAQGAYPLCEPMSERAKTRLANEQLFGIKLDTSRQDDTTPPGSFTSPEESSSSQNAGTPFTVPRYGLTTPKSSLMIRDRRAQLVLSDTGDGHAEVMFSPTPLKPSSPPRVPLLITPIRTPLSRKIAARSASSPALLALRTPTVSKGHDTVVQDSTDAIMTTTPLQATSTNTLGSLKSLKRSHSLISSPNMHRTKEPHAQKQRQSISKTTSHAGLGRGKENIPPLSSFTMPQHANNIQGSSGDSYGRDIRRIQSENLGQSWSTVPASSPSVAVRTTPMRLKPAITSSSPKSTTTREVQPLLPKKMSAEECALSLVSLAHGG +>T_confusa_375.39|HD|F57803F5_001039 +MDEEQWRLLEQMFNQTPKPTVAQKEHIAARLKLASSVVRSWFTDRRTKAKEDKLVEERQAWAALENAHHVSPLEQHVVDQTRTIDHRAQSEASYASLARSLYAAAACMPTTDTDYEQSLPPSPAFPYSGSFSSYTPTTASAPSFDMSDSYMMRRSDSQFSTVTTPGEFPEQSAFPFYQSTYMPTAQAAANTMIYGVSQEPLQVEAPKLRPRLQRTLTAPEQVAAARPIPRRTISGIYGNENDMNETPKIRRRPKLSHLGIGMARSRSSLGYDESEYPGPRRPAASREFPYPITPVRRIHSAVAVPTLSTMSTYSPTSSQSKSSPESIYDDKGSGMLGLHSSSMQFPPSPISPEHAGMLPHSGKTSCFTLANDPIPEDGFTPPSTPLSVLNPSSENILAGHHNMTNTHWTVEASKLGHDNVDFMYNDITTLNDIFTDQELALHSF +>T_confusa_375.39|HD|F57803F5_004044 +MAAEAKGSQPQGHSKNGLIPEYSRKNKAAMPHPAASSKNETTTSAFPLQNQLPRDQHTVGSSSSNMQNDASRHWGHGHFSRPEPIQTQRYDLSRSSYDRDVVSEHGPLSGMMGRGDRTSLTSPYTDVSRSSSYSMGQSPLSSTIPSMSSHWSVPYDVSQQATQNSYQISGAASTTNNSSSSSGSRPHFSPPFPLRASVPLKSPIYTTAPQPSPDMRGNGLDNANGLRANESLHLTRNGGYHQDGLTPTYRDNGYAGSLPRSNLLNHGAPAMHSSFDLSQRRPSLSNPVQHHTTPYDRQIPPASFQSQMSPSQAQSYAQPPHQVYQDYAMSDPSKPKRRRGNLPKSTTALLRTWLYDHTNHPYPSEDEKNQLAAQTGLTINQISNWFINARRRILQPSDMQKGLTHQASGPAVQSHATGSMPRAQTTAPQSMYMSRPKSPHAHASGIALQPPYEH +>T_confusa_375.39|HD_locus|orf181587 +SCQMSGRAASLGHIYDEVKGIHTSICSGSYTCMDDAETTLCAVGTLIRNMKPMRTSEEKELVTLIGNTARQIMDTCADVRQRQHIVWPALKDHKRARESRRVALLKAWYTAHLDYPYPSETEKLSLSLNTGLSIRQICMWFINARRRSQNGRKYLAEQVSEAIQAALR +>T_communis_352.35|HMG|F8DCC00A_005415 +MPKDTKPRTIKRDVAKRAKKDPDAPKRALSSYMLFAQDQRSVVQSENPNIAFGMSSSLLSTLNLKYLRSLRMLANALREVIRCEVGKVLGQKWKALTDSEKKPYEDRAAEEKKKYEKAKAQYEVENPKAGKSKGVKKTAKKHDDDESA +>T_communis_352.35|HMG|F8DCC00A_001803 +MAGTVPQSSLVQGDRFAEFHRKYQIVRAPANFVLVVAILTSEQVLSSCRLLTEAQSALDRSITDFVSIAQTLNPEADANYPQISISSTTPAKRAAETIQSRAKDSGSSDISGKAAADSEGPLKKQKKVRDPDLPKRPMSAFFLFQNAVRNSVKSAMPEESKGADIQKAISEKWKELDDESRQPYNEKYEEEVRDYEAKLATYKQDHGIVQPVKSAKKGLSNPDSSSSSLPAISGNSNQATNDDAAAAASIASKAAAASKTKAMSPKESKTKARTSEKAKSPKKNEQSTEEKK +>T_communis_352.35|HMG|F8DCC00A_001525 +MADPNNAYGHSAVAELSISEETKYRQKCRDLKRRINEVEASNEAIVTKLARTKRFIRRARLERAFLLERLEGQAPKDSLGSDGSPSPPASPSLESYSLDALHGSFDNAQSPDALRRSGSPSDSRQHTPTHDYSVPSAISNAASAHIANQKDRKGSPAPGASNSTKKIKPPKDPNAPKRPKNAFLLFCEIERDSVRAAADPGTGETVDIARELGRVWAEMNDDARKPYRDMYEEDKVRYEKEMSTYEKPKSLATPIKPEDQVEKVEAEIQTPVNPLPNPSPRPKVGGFTAVNRA +>T_communis_352.35|HMG|F8DCC00A_004874 +MSHDLPYSHAALDKHQLLTEVPAHFSYAAMGPDGLAMTNMTHDSELSRFHERRELHQTARSAMGSPHTNSICQQELNSSRTASPSRPPSRATTPRSRTKTKKVEPDANFVKRPLNSFMLYRKDNQHNIPTNNHQSISRIIGDMWRKETAETKNFYDVRAKEEREKHLLQHPGYKFQPKKKKKETKAVRPELSSRQSTTSVYSNDLDQSSVVYDQPDFHRAPLETTEQHFHFPMPRHESQAGSPARSTSYFAQSTHPLQQDEHYPSSGMHHHKLPSHYAHYAEQPQFHHAQLPTGYHDRQDAGVMLRDPQDWNVLSNQYHSAASAALYPQQQGQEIAPPEPECPWPESYSLLDYNMPATFGQWEDMRMADMPIFQEALQTDFTYPLIEQELGYPLVDPGDELDFIPNHMKHNNDMSSSSFFVTGELKDTWEIEHVDPQSYPA +>T_communis_352.35|HMG|F8DCC00A_002717 +MSALRNVVRVESRPSVALARFATTEAVKRPRKNAAAAAAPAPRLKAMKTPKSPSSVTAYRLFIQKFAEERKSSGEKWLLQNAAEAYKQLPESEKAKLVEQIPELIAQRKAIYEEFISKLSPSDILAENSTRAKLRKERIAAGKSVSNLAPILDKNAPTRPGGPYILWAQEARQAPEYKELTLTEQARALGEKWKALAENEKAEWHDKAKKLRSEYEQKKAEYYGGS +>T_communis_352.35|HMG|F8DCC00A_004125 +MLSMRNNLSDDFARLGLSEYLKRFTDEGFTDWSSIADITESDLAALGVKLGHRRTLYREIATLRGYPQSERLEDIPKPAPGSLPSSINEENRSPCDVSASGSDGQTSPSSYVEAVPQKRRYKRHPKPDDNAPTRPPSAYVLFANVIREEQKDSNLSFTQLARLVGERWKSLAASEKEAIESQAAEVKRRYTAEVAVYKKSPEYHQYQAYLREFKQRVLKDERPEKLEPPRKAQRTMNQQHPAPHAIVAHGARDHNDHNGMKVEHDHENRGVRQGSSGPFTIPSILQDGSRRGDDRILPSLDYVYKFGAQDQYGPMNEKPCLQPYAARPILPRPEFPGPMDNVLPTAMYNNGSQWNEEVRLRSLPMERPRSTVEGQPPIMHRGPGTHNGYANR +>T_communis_352.35|HMG_locus|F8DCC00A_005608 +MKIVLMQHGSRRTKKGKSIPIMTEVYSDDDEIKAPHDRTQPDISTSQPLKRSSNAFFQYRSDPLIKERWTQKSGKHQQRHVVQDISTEWNALSASEKLPYEQKALRASELYKRNLHKQKLKERQNDTTPPSRQASTHANGRLENPIASWYTPLLQYQEQLPESIIPFDNAVKFTEAQAVVRHPPFPQGCFSVPSYAVDHQSIPLDSSTLQFEFQGRLWPFSDLEESQAQTTEYDWSRDLSWMSLAAPS +>T_communis_352.35|HD|F8DCC00A_000778 +MQEVDLDASNIRPSNEHLSSIGFNLNHGDKQCNIHFDGAPQESRAGLDSRNLSYTRPTSSDSSTSSSPRRHDAGHRSRSLSLSTKSVHHRSTAHVTQQQINKKRQRATPEQLNVLEDAFACNPSPNARMRENISSQINMTERSVQIWFQNRRAKIKLLHRKCEPDEMVHQAFNNVRPSPPGRSYSIDPGLFQIHSNTVMRQHHEASAECITKFNCRSLTIGTWRRVACNSNDLICYFSNAELSFTYYINNGSSGFKIEFPLASVLSIALDYVSTPHTNEMGRIVISLTSSPIFFMELLSTEIWKQCTDFTENEQGTTVLSHAIVGPYQQLKHSLTQLAAVHNDAIDKICLADGSKMTIDGEFGQETARTLMTSTKQSEESGMIHNDFSSSLRPGSSLTLQVPQRGTHRRTRSRSAPIMVDLSWLHHGHSMETSNYNQDTSDSSMVAPQLYNIQPSPMSQHLSSQNSFYNSATATSPCFPEAWYATSYTNTPLLDAHCSQLNSPIVPDGAQFELPLTTSQLRPYTSFTEMDHATGINMHSVPNGQSLSNHPAIGSSHLEDYPDMLTTIQQQYATTNSFQALVTPTNVMHESFAQQDNHSPFV +>T_communis_352.35|HD|F8DCC00A_005890 +MRLRSLSLRLAEQKAAEQKADKSCKATVASPCEATQKSSPMYYRPDGADNQEEMKASASTNCYYDDHEQIQVQQSGSTTDNMHGSYLYHEDEEVGPYLCQQQSAAESSQQACEQANTIADRNAASDVTYAGLARQFVADEDTTEQYDGKGGVYYHEEGQPVPYQDYVGTDSAEDEYNASPTSTEHDRDDACRSVERDVPKPINKKNLKRHRLSHSETRFLLNQFGQNPHPDAAQRVLLSKQINGLSVRQIQVWFQNRRAKLKRMSASDADRMLSTRSYPDGYGPQGFETHLTRQESSREGSPCVTKVDAAYVSQDYSEAHGLQPKNDAPATSSPYPVRNISSVYRRPNIRSPLMAQHMPSYSAQTRQTGFTREGTNSPYSEVTMSRDPGSPQASPAQYDGAAYALAGRTSAAAQGSARFIYGRPYPATHAMYAPRSMQINNGYITSPEDSPAIVQSPYRPYHMADQRAYYSPSLLAAQTYENTGYRQAYAMAEQVNAYQAPGQDGPYVLTNVQTRPLGYNQHVNPGMENLYSELRDKRAVQASTSNSDDNYNPAPPMQREVKCVYPDAERIETDQEQFLDAPHYYGREQHSPMDIKQHEMTYAAQIQQATYQQHQACPQDYGSEEYIPDPVVQEQDHSQEEADH +>T_communis_352.35|HD|F8DCC00A_004430 +MTEVSPEAKIPTETPAMVELETQPTDNKTSATDPPPWADEPLLPDVAEVGTTKEEQAGENADTSEQIIDGSKDSTTQDTVQPHEQIAQQVQIDMPNDIQAVQQFNGQHPMHYAQMAPHGPQPYYHDPMIQAQYYHPHPQSGFMNQIPNPPGTKAKRKRASPHQLALLNQIFEYTFFPSTELRNAIGKELGMAPRTVQIWFQNRRQAWRSTKTVNADGTESPAPKSNDNERGGWEVLRSFQARRANGEIQEYEYMAIPSPSQVAAGATGTGSGGVGGAANGTPGRVVAGYNLVPYHPGMMQVALSSNDQFNSSMQQVPMPLPHTPRPVPYPQSYQPPPPTLPVTDDSDAPTDPAATAMAATAATNQHTDTSVETKDSTTTAEGDRGNVEQGATTLDGKPADLTTNTTPSNTVDNRGDGGGGRVGGGGIPDENLDPSLQDASTTTTTTTTTEEPLVEDASDSHATVEVSV +>T_communis_352.35|HD|F8DCC00A_003036 +MDQYSGRSDEPTRRRRRTTTLELEILENEFAKCDKPSISERDRISDLISRTDVDGPGMNGREIQVWFQNKRQAIRRAQGAYPLCEPMSDRARARLANEQLFGIKLDSASHDQTTPPGSFTSPEDSGSSQVAGTPYTAPRFGLTTPKNSAVVRDRRAQLVLSDVGDGHAEVMFSPTPLKPSSPPRVPALITPIRTPLSRKIAARSASSPALLSLRTPSVSNNQGSAMKDATARTNNLATPTQSETTVPLSTLRSLKRPHSFVSTPDTHKSTEQPSHKKRQTISKTIVHHDIGRGKENIPPPTAFPAPRLPGTSTEPSSDSYGRDIRRIQSENLGHTWPSVPGSPLESMRTMPARVKPRAIQFPAKDDAGTSNVPQKKMSAEECALSLVSLAHAS +>T_communis_352.35|HD|F8DCC00A_001740 +MEHMDPQIQDDPKVEKSAEQNDEPNATNELPTPEPNHDAATSVNVEDQGEHTAFLPTLHFTSGNDLSGIAQYEAQHTSDEPLRSGDGEHTEQAYDHWPSDTQTQIQNDGALQNVNHFGPGDSANQFAQGSEQNEYNQNASQAEQNQQHQSHEHQQQEQQQQQQNHLHIQEQHQQQQQQQQPPPLQHYQQHHPHFHQHPHHGGTPYDRPILGASYGTYDGSKPKRKRASPQQLTLLNNIFEMTYFPSSDLRLAIGKELDMVPRSVQIWFQNRRSLWRAKAGQILNENKQRKEELMATGLSEAEADAKVTSDRAEAAARQIADQRANDAVEYAINGNHGSLAYALHGANVNQNPSAMVDDGSITRDDEAGAWSVLQAFHQARTGVLVQQGHPPMPQRPEFQQEHQHQHQQPPPHHESLQQEGHEMHQQQQQQHQQSQLQSQEQLQQPQEQAV +>T_communis_352.35|HD|F8DCC00A_002631 +MDESQQRFLEQVFNQTTKPTVAQKDQLASRLKVSSAVVRAWFSARRSKAKEDKLVEEQQTWAALENAHQVSPPEQAAVIHAQSVDHRAQSEASYASLARSLYAAAACMPTQNDSEYDHSMPPSPAFHYGGSQSGYSPTSTTAPSFGMSDSSVMMMRSESQYSNFTTPGEMADLSSFPFYQSTHLPTSHAAASSMIYDAPKTFMPIEAPSMRPRLQRTWTAPEPASARPIPRRTISNSFGTGGQENDLSEPPRIRRRPKLSPLGVGMARSRSSLGYDDSASPSTRRPAASKEFPYPITPVRRIASAVCVPTLSSMTTYSPGSSQSSNSPETIYQDRNTKDNNIMGLGVTAHLPPSPISPEHVGMLTQQSNMSSFKLQNVPIPEDSYTPPPTPLSALTTNAENILAGHYDMTSDWSVEPSKLTSGGIPNNMDFMYNDITTLNDIFTDQELAMHSY +>T_communis_352.35|HD|F8DCC00A_001480 +MRLASKGKTAQERKRKSKRQKKRFGEDSQEQEYSLKKKAAMPQPSPAAQNDTPTSAFPPQNQQSKEFKVQSSLPSSSTMQQNDNTRQWNAMHYTRPEPIQTQRYDLGRPSYDRDMAEHGPLSGLMSRSERSSLTSPYMDASRSSSYSLSQQSPLSSTVPSMSGQWNVPYDMAQQTTQNSYHVPGSSSMSSSLPSAESSSRPHFSPPFPNRASLPLKSPIYTTAPQPSTELRGSGLNGHLRPYEPMQSPRTGVSYHHHDQSPPLAYRDTAYAGSFPRSGFLNHNAPAPTPSSDYSQHRPSLPTSISHHGSTPYDRQMPSAGFPSPAAASQTHSYAHPGHQVYQEFAMADASKPKRRRGNLPKSTTALLRTWLYDHTNHPYPSEDEKNQLAAQTGLTINQISNWFINARRRILQPSDMQKGLTHQGHTPQNSQAQVGSSQPRAQNITSQSLYVPHPRSPAHHASSVALQPPYER +>T_communis_352.35|HD_locus|orf80243 +TRLFPSIHQIAHHIMLSFREKQLQHAYERFDQVCKTITSTIPDVTSEAISEAITTFAVTNHLVQRFIPPLSLYEQEIIELIGVCSRRVMDICCEGLEQSNMQSPIVADPDRSPGRSRVTILKSWYTQHLDYPYPSEADKAALVSSTGLSNRQVCMWFINARRRSHKGQKFVAEQVSDAVRAILS +>T_betulina_315|HMG|FC6B0312_004909 +MPKELKPKATKRETGKRAKKDPDAPKRALSSYMLFAQDQRSVVQSEQPDITFGEVGKVLGAKWKALSPSDKKPYEDRAAEEKKKYEKAKAQYEVENPKEKAGKKAAPKKAAKKAPSSEEEEDEDDD +>T_betulina_315|HMG|FC6B0312_002103 +MADPNNTYGRPAAQELSTSEEAKYKKKCRDLKRRISEIETGNESLVTKLARTKRFIQRVRLERAFLLEKLEDSNPKRVSGSDGSPSPPPSPSLEQYSLDPVNTLGESMGSPDPSRRSMSPPFSRQHTPTHETPSYGDMSAISHTSAARKGGAATGRASPVPQAKKVKVPKDPNAPKRPKNAFLLFCEIERDSVRAAAYTGNGETVDIARELGRVWAEMNDEARKPYRDMYEDDKQRYEKDMAAYEGAKSAKLAVKAVEAPVESTPGIPPPASTASPAPRVGGFTAVNRS +>T_betulina_315|HMG|FC6B0312_001164 +MVAATDTSSASREQMVSFNDKYQIVLSSCRLLTEAQSALDRSIKDFVAVAETINPNLNVGYTSPVSSPSSGALSAAKDVHESSSVQNGQDSVAATTGGDVPNKKEKKTRDPDMPKRPASAFFLFQNAIRNSVKAAMPDESKGVDIQKAVSDKWKDLDEAGRKPYNDQHERETQEYEARITAYNREKGIAVKPKTAARNVSSKSAEKPTGNDQQGSDDDAAAASLVQDPATNTSAAATPKSSKKRRKSGTENIKKDKTPKKVDKVPEEKKKKRKKTDTNAN +>T_betulina_315|HMG|FC6B0312_006079 +MFSNTVPKIMERTRIVAHFSAQNARAIRQYATPSGQAVSKTVKKAAPIPKPTARRSPSAHQRLSSYNIFIQKFAEERKKTGEKFLLQNATAAYKALPESEKSKLLEQLPELISQRKAIYDEFVSKLSPGEIAEENKIRAGLRKSRIALGKSVRNLAPIVDPNAPTRPLSAFFLYMKDARKDTDLTGMTIAEQSKSLGEKWKQLAEAEKERYIQEAKKDLVAYQEKKKEYYGSS +>T_betulina_315|HMG|FC6B0312_004553 +MSSCLTRPAGRASDRVPQKHFKQNAFKANSCGIQSAAMFPAMTLEPPTPCQLLEPGMELGEEISNLNHSLQPDQYLSRDWSSFSTERLSYDSSAFSDSSSRAGFSSPPASPSRPSSVNSSPHRKGSSGRVKKADADFVKRPLNSFMLYRKDHQHCIPTNNHQSISRIIGDMWRKETAETKNRYDNLAKSERERHLLEHPGYKFQPRKRRECKVAKGSPKLLKKHCSIESDEVDHGTIQFKHVEGRPGTLQPSTRKKPQAQTMERTPIQHNSWVSHMPFPISGAYPPTESEASGSLDTPDQSGLYGGMVDYFSFSTVNDTLPAVSPLRDPPEWHGVQPISIRPIAAPMQRLPEMSWHQIDGGEYTLAQGPSTSEAESLRQAMSPSFLQWEEQQIHLHQQRRDLDDGRFGSSLTSQFYDDEALFQAIDLNHPGYFPDYNAEFQPSGEFAPNQMHSYWEMESIMYQ +>T_betulina_315|HMG|FC6B0312_005188 +MAADTSLADDFVRLGLAEYIEKFIDEGFEDWTSIADITESDLAALGVKLGHRRTLFRQIATLRGHPKSEPLDDNVFNSDYGCYHTGEENPQTGSLNGSGSDCLTSPATHTLSIPSKRRYKRHPKADDNAPIRPASAYVLFANQVREQQKDCNLNFTQLARLVGDRWKNLGTAEKEAIEAQAGEAKKQYNAEVANYKKSREYQLYQDYLVEFKERALKDEKPEKLEPPKKSQKLNIHDSPDVAPSYPYQSVHRSVDQIPSLPPAGRQFFALPSLIREPPGVHPPGGILPPPAGYATEYASPAVARTPESFSRQTHLPYPLPIHPLSQSGEPRSYDARPRLPSIRTEHSKKDNCPPRSFADHRDNTRR +>T_betulina_315|HMG_locus|FC6B0312_004634 +MKLCSSQIPRPLTGQSKSQERNSGAACELKIVLMEHQTRVNKTGRLVRVMNEVYTGPEPSENAYAIALGEHVHTRSPFDKPNNAFFQYRADPVVKSRHHNKPGLLQESQIVRDIAEEWKSLSDREKLPYERKASMAAYEHKRKLQLVRHSGSVPKATKTGRWNAQKAPYMQGKTQSFENRSSINVSPTLQSHQGDSWKQPTFQLGHTAPEAFSTSTCCELDTTLDFFGWSAFARNPLYDDYPWLSMGADEVDSFMESFEYLQKTGDPSIAFDYSCVL +>T_betulina_315|HD|FC6B0312_000540 +MSHNNMVPLEYQQTYGGKAYGKDAPAIPSDRPNAAPEALANMSLNGHYPDSQHLDSTNFEEMAVPQDESPNSSNGSSPRPQLHGNRARALSLNTRGSHSRSTAHMTQQQINKKRQRATPEQLIVLEEAFVMNPSPNAKMRELISSQISMTERSVQIWFQNRRAKTKLLNKRGTFDDLGFRQAPYGLRPGLPARSFSIDQSPLEEYRFQGPSQQSASTEADFTRFSCRSLTIGTWRRVACTSNDLICYFSKTEPKFTHYINSGASGFKIEFAIASVAKFDLRYAQQNDLKELGRATITLSRAPLFFIETPAGGWKQCIDFTENVQATTVFAHAMVGPYQHLKRSFTDLASTYKETIGLMTFEDLETAPIPEQLAPPLAFEQNYPAIATRTSQSAGFTTPDGQALRRNPTNALFMDNSNMSSRGSHRRTRSRSAPMTVDFSQIVNQSNVGGMPGYSFGQQSIRIDPTYRPKTDLTPSSSTTGAYDYGDSLYTPTASGTPNYQEPWYMPSYANTPLLDAERSQLGSPMIPAPAQFDLSAGTLPPESFSPGYPLLAQGVGAATMPHLVNANHSMPELPRLDRVVEIPATGQSQFSSLQNLAQNQLSAALDPSQMDFSDMPPAQPHGGPDFLMIDRN +>T_betulina_315|HD|FC6B0312_006262 +MNRSEPASQGNMETQIASSIHYTVNESNNLPPLSASVPANLLYDNKEEHSPGRSTYDDGGADHRVHNSTTTDPNAVGAFYIQSSVQVDKANYEETPSSSQIITSNESIESQPIQEARSSDTGVGSYHSDLPPGPDYRQDVTEYDSEEEGYTLSTSPAPADHSQANDNMTRPKPFSKKNLKRHRLSHSETRFLLNQFGQNPHPDAVQRCLLAKQINGLTARQIQVWFQNRRAKLKRMSAADADRMLSTRSYPDGYGPQGFTDRSTISQETTHPMSYAQSVEGVYTGHLYLDRHLYHSRSTPPVIVHHPSATPSFVGHESARTPQSAVYPSHYDRGMSHSPLPDRSIQRRFEIRSTYGGNQSQYPDARAVQGRESAPATVSTYDRNYGQSHHRPAQMQFNMQENIDRNYNLLPHYPSSAPPVSQYTSLTSSPFLQPEHGQYWSNREYQGHGSQDGRLRPFNHENACLLKDDGSRLNNSTYELQAVPGTYLSPSPSSRVTPSFGYNTMEQSATGDPEYSDVRHSSHDQYQSHTTDEYRTAVHQHDVHYYYGTEAHLKHENDELQEARRLFQQQKQGVDQGQECPRVPSTSYADAHGSMYAQTGHAQGQFDAIEIEEAAATPNDRAAYVSAQEESVPMNS +>T_betulina_315|HD|FC6B0312_004330 +MDPYASRIDEPTRRRRRTTTLELEILEMEFAKCDKPSISERERISDRISRTDIHGPGMNGREIQVWFQNKRQAIRRAQGAYPNCEPLSDRAKARLANEQLFGIKLGPPRNEQTTPPNSFTSPDDSGSSGKPAYSSFTISQYGMPTPPISSATRERRAQLVLSDLGDGHAEVMFSPTPLKPSSPPRVPVLITPIRTPLSRKIAARSASSPALFGTSVARLNKMTGSALMDSTNTSISSFTTPTAPSSANNLGALKSLKRPHSFVADARTSSKHNREEVALSSSKKRTPASKSASHHNLGRGKENVPPILPALTTPSTPAATNRGSHERSRSSVMGPLETGYGQSARKAHLEHSSLEGVAKPSVSAHVRHAQSEESGVSRPGQTGHKQKKMSAEECALSLVSLAHGM +>T_betulina_315|HD|FC6B0312_000920 +MSESYGKQSSTDGSSMATDISNTSPPPPWTVERKSRDRIHLPQPPYRLGNQGLLPPIHDSLTAALNPLPQQTPRSEVHQQDEDKPSMDPAGALGANAQALSGQAHPQQGTATAQYPTGPNHGQQQQQQQQQPQYYQDAIPQPPQPSLRMQHPQSSYLGQVPNPPGMKAKRKRASPQQIALLNQIFEYTFFPSTELRNAIGKELNMAPRTVQIWFQNRRQSWRAQKNRDGVGNPLKSNDHERGGWEVLRSFQSKRATGEIQEYDYLSCSASGSSMPSMQQDPRGQSDVFSVAIASNFPQPYPPAAVSSNTYFNAQMSDPSVPMPHAPHNSTHQQTQTMTSQPHQHHQHQQQQQQQHEQYHHHQHPQQHQHQYQQHQHQQTHTTSFT +>T_betulina_315|HD|FC6B0312_004101 +MAIIVDEYQRRTLEQLFSQTSKPSAPQREAVAEALNLPVRAVQTWFAERRTKAKADKRIEELQTRTALENAHHISSREASAIPTNQNTNHKTQSDASYASLARSLAAAAACMPQPDALYDRSYPSSPVFHLNMGFPMYSPTNSSFDTSASMVRSDSQYSNFSATTNGDLDQPDYSFFPDHSGYMPTPATNCDTMVYDHLEMRPSTNEMHRSRPRLQRTWTAPESLQQRPLPRRTIVSTSPGDVPQATEPVLIRRRPKLSPLGIGMARSRSSLGYEQSEYPYSVRRATALSDFPCPMTPVRRIASAAAVPTMATMRSFSTTSQDSTGTKGDSGLASSIATQDCLASNIQFPPSPISPEHNVHGTPSSAYKITSFELPHLPIGEDSFTPPPTPLSALTGSAENALAGGYEDTWTSDFSKLSGLDLTNNDLIIADLFHDQEMGVVSF +>T_betulina_315|HD|FC6B0312_001235 +MDHMDPQLQSVGVQQQHQQQHQHQHDQDTQQQSTNEIPEQRPQEIQVKAAEDAEEQHEHPAFHPSLHYTSGNDLSSIANYNPQHAAGGPIRSGEGDPTGQSFDHWPADTQSQHVQEDVSLQNANQFAQVEQNNQFVPAPDHQYVHDGHQQQQQHHQHQHQHGGSPYERQTPGASYGTYDGSKPKRKRASPQQLTLLNNIFEMTYFPSSDLRLAIGKELDMIPRSVQIWFQNRRSLWRSKAGQILSENKQRKDELLASGMTEAQADAKVTADRAEAAARQIADQRANDAVEYAINGSNGSLAYALHGANTNTVAPGSVDDGSITRDDEAGAWSVLQAFHQARTGVLVQQGHAHPNAHMHMQHQHQHQQHHPHQPQHHLQQQHQHQLPLPLPQQSQAEPMQGQPMHESQQEQQQQPSPGPGTASVERPQEPQLPSGV +>T_betulina_315|HD|FC6B0312_002074 +MPRAQYESASVGTTQQDTPVAPSSENLRRWDQLRYSMPDQSAPVKRVDVNQPYSQYDRETSDHASFSSVGMGRSDRSSMTSSSNYNSGDSRSNSYSASQRSSVPSMNGQWGMPSYEQQASAPASMPMPMSNANTYQYPLCSPSMIPATARPQFSPPFPHRQSLPTHGGMQKHPEYSSIQHQPLIIDSRTPNLRHFPEPMQSPRSLVPYSEQAHRQPQQSNSPPTPYSETSPFPMGSYQGPSYIAQSMPPYVYPNRRNSVSNLLQPHSTPYDRQLPSYMSQPTYAGPILETAGLNSSMQHKPKRRRGNLPKSTTTLLRSWLYDHTNHPYPSENEKNRLAAQTGLTINQISNWFINARRRILQPSDMKPATGSLQPSSHQEPKAYAHGSTARSSSGESEGIVIQPPYHSR +>T_deformans_A2|HMG|F891DC7E_000191 +MPKDTKPRTVKRDVTKRAKKDPDAPKRALSSYMLFAQDQRSVVQQEHPNIAFGEVGKVLGQKWKALTDSEKKPYEDRAAEEKKKYEKAKAQYEVENPKAGKTKGAAKKTAKKSKSDDDESA +>T_deformans_A2|HMG|F891DC7E_002483 +MASNSTHSSQTNAERFADFHRKYQIVLSSCRLLTEAQSALDRSITDFVSIAQGLDPKVHAQYPILPNNSASPLQPATEVSQSQLKGKSGDSSDTVSKNSTASDAPIKKQKKVRDPDLPKRPMSAFFLFQNAVRNSVKSAMPEESKGTDIQKAISEKWRDLDDDSRQPYNERYENDVRDYEAKLATYKQDHGIPRSAKDIVAKGDAITEPKPDFVKKTDQVTNDDDAAAASIASKAAAASKSATATPKDSKKRARTNEKAKSPKKVEKPTEEKKDKKKRKKSLSTTG +>T_deformans_A2|HMG|F891DC7E_002753 +MADPNNAYGQSTTTELSISEETKYRKKCRDLKRRINEVEASNEGLVTKLARTKRFIRRARLERAFLLERLEAQAPKDSQGSDGSPTPPASPSLESYSLDAMQGTFDNAQSPDPLRRSGSPGDSGHHTPTHDYSIPSAISNAASAHIANQKERKGSPAPGANNSTKKIKPPKDPNAPKRPKNAFLLFCEIERDSVRAAADPGTGETVDIARELGRVWAEMNDDARKPYRDMYEEDKVRYEKEMSTYEKPKNLATPIKPEDHTEKVEPEIQTPSNPSPRPKVGGFTAVNRA +>T_deformans_A2|HMG_locus|F891DC7E_001655 +MSFGELRNYSTKDALTRLNSSEGKAYFIPDGYEPILIAQSQLTDEVRGEIRRTTAYLRLPVALNECRLPSYIVTTRKTARDQILRLDTQIPVKNPPRPPNAFILYRKSKQAEISAQNEGISNNDVSRIIGNMWKGECDLIRQEFQRCAQEVKFQHKLQYPDYRYKPRKAITKSVPINRAAVASNASSRTHVSRDIPSHLGMLAGCLLHPEHRNGKDAHLYDLGFTNNSLSH +>T_deformans_A2|HMG|F891DC7E_000442 +MNHDLSFSHVPLSDRQFIGDSPTPFGYVALESNNLANFNMMHESDRSTLSEFRALSPVARSTIDSSIVGGTTQQLLSTGQPSATLSLKTLPQDPPSRTTTPRARAKAKKVLTDVNFVKRPLNSFMLYRKDNQHNIPTNNHQSISRIIGDMWRKETAETKNFYDVRAKEEREKHLLQHPGYKFQPKKKKKETKASRPEPKSRQSPAGIHSHEPTIVPASYDQQDGNLEPPEQTEQPFNFSTLLDENFSTVLDEPQQSLQSRTAACTTWSSYQHEGEHYSEPGNQHELPLHYAHYTGQVQYMDTQVPTNYQEPHGSGAMLKDPQDWNILSNQCHYAASAALYPHQAHANQPGAEAQWPESYNSLDYNMPATFSEWENMRMAEMPMLQQGLETEYPYHHEQDMGFPSHDAYDEQDFMPNHMKHNDMLLFAPTELKGSWEVEHVESQLYQF +>T_deformans_A2|HMG|F891DC7E_004878 +MRSNLADDFARLGLSEYLTRFIEEGFTDWSSIADITESDLAALGVKLGHRRTLYREIATLRGYPQSERLEDIPKPVPGSLPSSVNEENRSPCDVSASGSDGQPSPASYVDAVPQKRRYKRHPKPDDNAPTRPPSAYVLFANVIREEQKDTNLSFTQLARLVGERWKNLAAAEKETIESQAAEVKRRYTAEVGVYKKSPEYHQYQAYLREFKQRVLKDERPEKLEPPRKAMRTMNPHSPAAHTMVLPNSRDHGDHPSTRNEHEHDPRSTRQGSGAPFTIPSILQDGPRRGDERVLPSLDYVYNFGTQDQYNSLNEKACLPVYAARPILPRPEFPGPMDNILPTAMYNKGPQWNEEVRRRSLPTERPSSTNECRPSAVPCGQGLQNDSYVNR +>T_deformans_A2|HMG|F891DC7E_003603 +MTALRLFARHETQPSIALVRFATTEAVKRPRKNAVAPPTPKLKAMKTPNNSAVTAYRLFIQKFAEEQKNAGEKWLLQNAADAYKKLPDSEKAKLVEQIPELIAQRKAIYEEFVSKLSPSEILAENQKRTALRKERIAAGKSVKNLAPILDKNAPTRPGGPYILWSKEARQAPEFKDQTLTEQAKALGEKWKALAENEKAEWHEKAKQLRSEYEQKKSEYYGSS +>T_deformans_A2|HD|F891DC7E_006258 +MQSYDQGSAALCPNNDYRSSAGHNSNNEDEFNNLYFGNTSQAAAHELEIGDHVQMQVESSESSTSSSPQRYNTGNRLRSLSLNTKNMHYRSTAHVTQQQINKKRQRATPEQLNVLEDAFACNPSPNARMRENISNQINMTERSVQIWFQNRRAKIKLLHRKSGPEEIIDQATSTIRPGLPERSYSIDTGLYQGHGSTFMEDTQEYSTGTVQDTRSSFAYSARTCYKAQLSFFNYSSGSTGFKIEFPLKSIINIDLSYIPTPNTKEMGRAIVSLSSSPIFFMELSSSGVWKQCTDFTENQQGTNVLLHAIVGPYQHLKQSLARLTVIHNDIQNRITIEDIHNEGISQESMISSVEPSEQYLATSNSQHNDSRPVMLPFTPETLRESARGSHRRTRSRSAPIAVDFSWLNHGHSIDTPGYISGQNHPSMLARQTYGGIPTPVSQAMSLDCSDEFYSPSVPTPSCYADTWYASSYANTPLLDTSCSRLGSPMLAGGAHFDIPLVTSQVDPYMNFTEMRNTTGTIIHSLPEHTRSVNLSMPDLPHLDSVPEIPVANQEQYSLAESFQALISPPCMAPIDYLQDSGQLPPG +>T_deformans_A2|HD|F891DC7E_006106 +MRLRSLSLRLAEQKAADEKAGKSGPATSDPPCESRQVSTPMYYRVDGADNQDEMNTSASTNCYYGDHDQIQVQQSGCTSDNMHGSYLYHENVEVESYLCQQQAANDGSQACEQAGDEVKHNAGPECAYTGLDQQFAATQDTTQAYAGKDGIFSTEGCRNPPYQDYMGLDSAEEDLNGSPTSTDHEEDDASRSMERDIPKPINKKNLKRHRLSHSETRFLLNQFGQNPHPDAAQRVLLSKQINGLSVRQIQVWFQNRRAKLKRMSASDADRMLSTRSYPDGYGPQGFENQAKRQESPQDASPCLTKADISFPSQECSEAHVLQPKTDSASLSQYPIRNISSVYRRPQLRSPLTSQPSSSYSAQSRQLGFVRDGTNSPYPEAATSRGAPSPQGSPAQYDATTYGLPLRASAVQSSARFVYGRPYPSPHAMYGPRSVQTNNSFVNSPEDTPVVQSPYRPYSMADQRGYYTPSLLATPTYQDTGYRQVFNVAEQVSDYHAPGQDGPYIMTTAQPHPLGYNQHVPANMDNLYSDVRAIRSHQMTSSSPEDNYHQAPPMQREVKCAYPDDENTRSIHEDYVDTPQYYGRDQNDCMESKQHEMTYAAHLQQATFHQRQVCQQDYNSDDYIPDPVVQERDQAQETA +>T_deformans_A2|HD|F891DC7E_001028 +MAEVRLEVPAQTDSTTIVEAEEEATDKMLTATDAPPWADEPLLPNVTAPDATRDDQAPDMANEEGKEPDTTKSTMEEVTEQTSNQTDGHDQVSLPNDMQAVQQFNGQYPIHYPHMTPHGPQPYYHDPMMQAQYHHHHLHPHSGFLNQMPNPPGTKAKRKRASPHQLALLNQIFEYTFFPSTELRNAIGKELGMAPRTVQIWFQNRRQAWRSTKTINADGTESATPKSNDNERGGWEVLRSFQARRANGEIQEYEYMAIPSPSQAGGGANGEGARVVGGYSLVPYHPGMMQVALSSNDQFNSSMQQVPMPLPHTPRPMPIGYPGPPAPAPTTTATTTTTMTTTKTMAGQSEGDVVPVAVQGAAHDQAETGTAPEVDGPGLPPSHLDPSLQDAPPEDPSVEPDGTPVDPGRAT +>T_deformans_A2|HD|F891DC7E_002419 +MDPQLQEDLKVEKPAEQSEAPDATNELPSPEPDIETATPVQVDEQGEHAAFLPTLQFTSGNDLSSIAHYDAQQSGEESLTTGNEEPTSQTFDHWPTDTQTQIQNDGPLQEVNHFVQGDSANQFAQASDQNEYNQNVSQDQQQQQQHLQQQHQFQHQQQQQQQQHYPQQHHPHFHQHPHHHGGTPYDRPILGASYGTYDGSKPKRKRASPQQLTLLNNIFEMTYFPSSDLRLAIGKELDMVPRSVQIWFQNRRSLWRAKAGQILNENKQRKEELMATGLTDAEADAKVTSDRADAAARQIADQRANDAVEYAINGNNGSLAYALHGANMNQNPSGLIDDGSVTRDDEAGAWSVLQAFHQARTGVLVQQGHHPMPQRPESQQQQHQQPPQHQQGQQASQELQAEQPQQQEQHV +>T_deformans_A2|HD|F891DC7E_004077 +MSGLMDQYSGRMDEPTRRRRRTTTLELEILENEFAKCDKPSISERDRISDLINRTDVDGPGMNGREIQVWFQNKRQAIRRAQGAYPLCEPMSERAKSRLSNEQLFGIKLDSPRHDQKTPPGSFTSPEDSSSSQSASTPYGAPHYGLTTPKNSANVRDRRARLVLSDVGDGHAELMFSPTPLKPSSPPRVPALITPIRTPLSRKIAARSASSPALLALRTPNVRDTQSSAMKDTTNVINNWASPSKTGLAVPLSTLRSLKRPHSFVTTPEVHKIKEAQSQKKRQTSSKAMVQRDIGRGKENIPPPASFPTPRILGSSTDSSGDSYGREIRRIQSENLGHTWPSMPVSSPSESMRTMPPRSSMKVTQTPAKDSLNKAEMPQKKMSAEECALSLVSLAHGS +>T_deformans_A2|HD|F891DC7E_003686 +MDESQQRLLEQLFCQTPKPTVAQKEQIAAKLNVSNAVIRAWFSVRRSKAKEDKLVEEQQAWAALENAHQVCPLEQLAISQAQPVDHRAQSEASYASLARSLYAAAACMPTTENDYEPSMPPSPAFHYSGSQSAYSPTSATAPSFGMSDSSMMMMRSDSQYSNFTTPGEMADLSSFPFYQSSYLPTPQAAANSMIYDAPQTYMPVEAPSIRPRLQRTWTAPEQAPARPLSRRTVSTSYGSFGTENDHSEPIRIRRRPKLSPLGIGMSRSRSSLGYEDSGSPSARRPAASKDFPYPITPVRRIASAVAVPTLSTIPTYSPTSSQSGNSPESVYQDRHGSVGEISAANPHFPPSPISPEHVGVLIQQGNMSSFKLQGVPIPENSYTPPATPLSALTTNSENILAGHYDMAGDWNVEASKLGNTNDMDLLYNDITTLNDIFTDQELALHSY +>T_deformans_A2|HD|F891DC7E_002798 +MPQPSSPSQTDTPTSVYTLQSQQPKDLKSRSSAPSSSAMHNDNSRNWNSIHQYSRPEPIQTQRYDLGRPQYDRDLADHSPSSSLVSRSDRTSLTSPYMNASRSSSYSISQPSPLSNTIPPMSNQWNAPYDLSQHSTQNSYQMTGPSSLSSSVPSGIGGSSGSSSAIRPHFSPPFPNRASLPLKSPIYTTAPQPPVESRTSSMHNGLRPYEPLQSPRIGLPYHHEEAPPMNYRDNTYGGTFSANGYLNHNAPAATSPIEYSQRRPSLPTAAQHHATPYDRQVSTGGFHPPVPSSQSHSYSQPGQQVYQEYTMGDASKPKRRRGNLPKSTTALLRTWLYDHTNHPYPSEDEKNQLAAQTGLMINQISNWFINARRRILQPSDMQKGLMQQSHASQNGSVQSTASQPRIHNAASQGPYVSQPRSPSQHASSVVLQPPYER +>T_deformans_A2|HD_locus|orf51685 +PSTLDTRLSNKTFQQYTDLRIRIMLLSRVSELRHAYERVDDIRRSLCNTSHIVIAEFMETLSSIDDVIQRLLPLESQTEQDLIQVIGISSRHVMDICSDRLQQQGMATVTISNSGRLKSQNRISILKSWYTSHLEYPYPSETEKMSLASSSGLTIRQVCMWFINARRRSHKGQKFVAEQVSDAVRRIIS diff --git a/docs/notes/2026-11-14_mat-discovery-tables/rnaseq_Plact_12-1054_locus_expression.tsv b/docs/notes/2026-11-14_mat-discovery-tables/rnaseq_Plact_12-1054_locus_expression.tsv new file mode 100644 index 00000000..d7e0505b --- /dev/null +++ b/docs/notes/2026-11-14_mat-discovery-tables/rnaseq_Plact_12-1054_locus_expression.tsv @@ -0,0 +1,3 @@ +name length mean_depth percentile_among_genes genes_with_depth_ge_1 +F003EF48_006292 645 1388.40 0.791 0.999 +Plact_12-1054_matPi_region 454 1431.73 0.798 0.999 diff --git a/docs/notes/2026-11-14_mat-discovery-tables/rnaseq_Plact_12-1054_spliced.tsv b/docs/notes/2026-11-14_mat-discovery-tables/rnaseq_Plact_12-1054_spliced.tsv new file mode 100644 index 00000000..c9561b46 --- /dev/null +++ b/docs/notes/2026-11-14_mat-discovery-tables/rnaseq_Plact_12-1054_spliced.tsv @@ -0,0 +1 @@ +Plact_12-1054_matPi_region reads_overlapping=5477 spliced_reads=157 diff --git a/docs/notes/2026-11-14_mat-discovery-tables/rnaseq_Plact_12-1054_strand_check.txt b/docs/notes/2026-11-14_mat-discovery-tables/rnaseq_Plact_12-1054_strand_check.txt new file mode 100644 index 00000000..81986f5f --- /dev/null +++ b/docs/notes/2026-11-14_mat-discovery-tables/rnaseq_Plact_12-1054_strand_check.txt @@ -0,0 +1,4 @@ +genes used 100; read1 same-strand 27602, opposite 575693; share same 0.046; library: reverse-stranded +HMG_gene_F003EF48_006292 read1_forward 3039 read1_reverse 246 implied_strand - +HD_ORF read1_forward 2748 read1_reverse 354 implied_strand - +HD_flank_upstream read1_forward 1341 read1_reverse 478 implied_strand - diff --git a/docs/notes/2026-11-14_mat-discovery-tables/rnaseq_Tdef_A2_locus_expression.tsv b/docs/notes/2026-11-14_mat-discovery-tables/rnaseq_Tdef_A2_locus_expression.tsv new file mode 100644 index 00000000..a61bd091 --- /dev/null +++ b/docs/notes/2026-11-14_mat-discovery-tables/rnaseq_Tdef_A2_locus_expression.tsv @@ -0,0 +1,3 @@ +name length mean_depth percentile_among_genes genes_with_depth_ge_1 +F891DC7E_001655 696 663.57 0.826 0.986 +Tdef_A2_matPi_region 568 215.18 0.533 0.986 diff --git a/docs/notes/2026-11-14_mat-discovery-tables/rnaseq_Tdef_A2_spliced.tsv b/docs/notes/2026-11-14_mat-discovery-tables/rnaseq_Tdef_A2_spliced.tsv new file mode 100644 index 00000000..9ac8a2d5 --- /dev/null +++ b/docs/notes/2026-11-14_mat-discovery-tables/rnaseq_Tdef_A2_spliced.tsv @@ -0,0 +1 @@ +Tdef_A2_matPi_region reads_overlapping=1676 spliced_reads=66 diff --git a/docs/notes/2026-11-14_mat-discovery-tables/rnaseq_locus_transcripts.tsv b/docs/notes/2026-11-14_mat-discovery-tables/rnaseq_locus_transcripts.tsv new file mode 100644 index 00000000..f1c06c27 --- /dev/null +++ b/docs/notes/2026-11-14_mat-discovery-tables/rnaseq_locus_transcripts.tsv @@ -0,0 +1,7 @@ +transcript strand exons span tx_len longest_orf_aa pfam_hits(aa,frame,domain,evalue) +ST_Tdef_A2.1155.1 - 5 50131-52842 2505 350 [(189, -1, 'Homeodomain', '3.3e-09')] +ST_Tdef_A2.1155.2 - 4 50131-52842 2558 350 [(189, -1, 'Homeodomain', '3.3e-09')] +ST_Plact_12-1054.2348.1 - 7 34271-40155 5648 462 [(151, 3, 'Homeodomain', '4.8e-10')] +ST_Plact_12-1054.2348.2 - 3 34271-38767 4414 462 [(151, 2, 'Homeodomain', '3.6e-10')] +ST_Plact_12-1054.2348.3 - 5 34271-38767 4318 462 [(135, 2, 'Homeodomain', '3.3e-10')] +ST_Plact_12-1054.2349.1 + 4 38896-39637 627 208 none diff --git a/docs/notes/2026-11-14_mat-discovery-tables/taphrina_deformans_scan_genes.tsv b/docs/notes/2026-11-14_mat-discovery-tables/taphrina_deformans_scan_genes.tsv new file mode 100644 index 00000000..94e68d53 --- /dev/null +++ b/docs/notes/2026-11-14_mat-discovery-tables/taphrina_deformans_scan_genes.tsv @@ -0,0 +1,57 @@ +genome gene contig index strand domain best_control control_evalue control_identity +Taphrina_deformans_A2 F891DC7E_000191 RHGF01000001.1 190 - HMG_box,HMG_box_2 +Taphrina_deformans_A2 F891DC7E_002483 RHGF01000009.1 192 + HMG_box,HMG_box_2 +Taphrina_deformans_A2 F891DC7E_002753 RHGF01000011.1 70 - HMG_box,HMG_box_2 +Taphrina_deformans_A2 F891DC7E_001655 RHGF01000006.1 38 + HMG_box,HMG_box_2 matMc 4.06e-172 100 +Taphrina_deformans_A2 F891DC7E_000442 RHGF01000002.1 82 + HMG_box +Taphrina_deformans_A2 F891DC7E_004878 RHGF01000025.1 43 + HMG_box,HMG_box_2 +Taphrina_deformans_A2 F891DC7E_003603 RHGF01000016.1 7 + HMG_box,HMG_box_2 +Taphrina_deformans_A2 F891DC7E_006258 RHGF01000048.1 3 - Homeodomain +Taphrina_deformans_A2 F891DC7E_006106 RHGF01000042.1 8 - Homeodomain +Taphrina_deformans_A2 F891DC7E_001028 RHGF01000003.1 313 - Homeodomain +Taphrina_deformans_A2 F891DC7E_002419 RHGF01000009.1 128 - Homeodomain +Taphrina_deformans_A2 F891DC7E_004077 RHGF01000019.1 6 - Homeodomain +Taphrina_deformans_A2 F891DC7E_003686 RHGF01000016.1 90 - Homeodomain +Taphrina_deformans_A2 F891DC7E_002798 RHGF01000011.1 115 + Homeodomain matPi 8.15e-18 49.2 +Taphrina_deformans_CBS_355.35 F7E28AAD_005932 RHGG01000034.1 12 + HMG_box,HMG_box_2 +Taphrina_deformans_CBS_355.35 F7E28AAD_002651 RHGG01000009.1 190 + HMG_box,HMG_box_2 +Taphrina_deformans_CBS_355.35 F7E28AAD_000779 RHGG01000002.1 219 - HMG_box,HMG_box_2 +Taphrina_deformans_CBS_355.35 F7E28AAD_006266 RHGG01000044.1 1 + HMG_box,HMG_box_2 matMc 4.06e-172 100 +Taphrina_deformans_CBS_355.35 F7E28AAD_003144 RHGG01000012.1 93 - HMG_box +Taphrina_deformans_CBS_355.35 F7E28AAD_001919 RHGG01000006.1 76 - HMG_box,HMG_box_2 +Taphrina_deformans_CBS_355.35 F7E28AAD_004165 RHGG01000018.1 7 + HMG_box,HMG_box_2 +Taphrina_deformans_CBS_355.35 F7E28AAD_000163 RHGG01000001.1 162 + Homeodomain +Taphrina_deformans_CBS_355.35 F7E28AAD_006139 RHGG01000038.1 8 - Homeodomain +Taphrina_deformans_CBS_355.35 F7E28AAD_000545 RHGG01000001.1 544 - Homeodomain +Taphrina_deformans_CBS_355.35 F7E28AAD_002590 RHGG01000009.1 129 - Homeodomain +Taphrina_deformans_CBS_355.35 F7E28AAD_004149 RHGG01000017.1 145 + Homeodomain +Taphrina_deformans_CBS_355.35 F7E28AAD_004248 RHGG01000018.1 90 - Homeodomain +Taphrina_deformans_CBS_355.35 F7E28AAD_000825 RHGG01000002.1 265 + Homeodomain matPi 8.15e-18 49.2 +Taphrina_deformans_JCM22205 FA538064_006054 DF818788.1 15 - HMG_box,HMG_box_2 +Taphrina_deformans_JCM22205 FA538064_003556 DF818725.1 0 - HMG_box,HMG_box_2 +Taphrina_deformans_JCM22205 FA538064_000338 DF818697.1 139 + HMG_box,HMG_box_2 +Taphrina_deformans_JCM22205 FA538064_005961 DF818782.1 12 - HMG_box,HMG_box_2 matMc 4.06e-172 100 +Taphrina_deformans_JCM22205 FA538064_003636 DF818726.1 0 + HMG_box +Taphrina_deformans_JCM22205 FA538064_002732 DF818716.1 25 + HMG_box,HMG_box_2 +Taphrina_deformans_JCM22205 FA538064_000552 DF818698.1 143 - HMG_box,HMG_box_2 +Taphrina_deformans_JCM22205 FA538064_002479 DF818714.1 1 + Homeodomain +Taphrina_deformans_JCM22205 FA538064_005126 DF818751.1 30 + Homeodomain +Taphrina_deformans_JCM22205 FA538064_002043 DF818710.1 14 + Homeodomain +Taphrina_deformans_JCM22205 FA538064_003617 DF818725.1 61 + Homeodomain +Taphrina_deformans_JCM22205 FA538064_000997 DF818701.1 133 + Homeodomain +Taphrina_deformans_JCM22205 FA538064_000469 DF818698.1 60 + Homeodomain +Taphrina_deformans_JCM22205 FA538064_000294 DF818697.1 95 - Homeodomain matPi 6.02e-18 49.2 +Taphrina_deformans_PYCC_5710 F282FB4B_002506 HE965072.1 25 + HMG_box,HMG_box_2 +Taphrina_deformans_PYCC_5710 F282FB4B_003075 HE965085.1 26 + HMG_box,HMG_box_2 +Taphrina_deformans_PYCC_5710 F282FB4B_001289 HE965048.1 37 - HMG_box,HMG_box_2 +Taphrina_deformans_PYCC_5710 F282FB4B_005446 HE965192.1 4 - HMG_box,HMG_box_2 matMc 4.06e-172 100 +Taphrina_deformans_PYCC_5710 F282FB4B_003830 HE965109.1 4 - HMG_box +Taphrina_deformans_PYCC_5710 F282FB4B_002726 HE965077.1 10 - HMG_box,HMG_box_2 +Taphrina_deformans_PYCC_5710 F282FB4B_004255 HE965126.1 7 + HMG_box,HMG_box_2 +Taphrina_deformans_PYCC_5710 F282FB4B_000789 HE965041.1 1 + Homeodomain +Taphrina_deformans_PYCC_5710 F282FB4B_003375 HE965094.1 23 + Homeodomain +Taphrina_deformans_PYCC_5710 F282FB4B_000966 HE965043.1 35 - Homeodomain +Taphrina_deformans_PYCC_5710 F282FB4B_004400 HE965132.1 8 - Homeodomain +Taphrina_deformans_PYCC_5710 F282FB4B_004233 HE965125.1 7 - Homeodomain +Taphrina_deformans_PYCC_5710 F282FB4B_001508 HE965052.1 23 + Homeodomain +Taphrina_deformans_PYCC_5710 F282FB4B_000488 HE965036.1 85 - Homeodomain matPi 8.15e-18 49.2 diff --git a/docs/notes/2026-11-14_mat-discovery-tables/unscanned_assembly_stats.tsv b/docs/notes/2026-11-14_mat-discovery-tables/unscanned_assembly_stats.tsv new file mode 100644 index 00000000..502ab556 --- /dev/null +++ b/docs/notes/2026-11-14_mat-discovery-tables/unscanned_assembly_stats.tsv @@ -0,0 +1,58 @@ +phylum species asmid Mb contigs N50 +Microsporidia Mitosporidium daphniae GCA_052576055.1_ASM5257605v1 5.8 10 864371 +Microsporidia Spraguea lophii GCA_001887945.1_ASM188794v1 5.6 143 99316 +Microsporidia Spraguea lophii GCA_001888035.1_ASM188803v1 5.6 158 98687 +Microsporidia Spraguea lophii GCA_001887975.1_ASM188797v1 5.6 158 97321 +Chytridiomycota Globomyces pollinis-pini GCA_025399215.1_Glopol1 21.4 983 51103 +Chytridiomycota Globomyces sp. JEL0801 GCA_027595885.1_ASM2759588v1 15.3 800 45731 +Microsporidia Vairimorpha sp. gmOTU17 SAN00002588 GCA_986194575.1_ilOchDupl1.microsporidian_1.1 0.5 12 41188 +Microsporidia Mitosporidium daphniae GCF_000760515.2_UGP1.1 5.3 273 34874 +(blank) Pleurotus ostreatus-Saccharomyces cerevisiae fusant GCA_024196135.1_ASM2419613v1 49.9 3160 26816 +Microsporidia Metchnikovella incurvata GCA_003600395.1_ASM360039v1 4.6 422 17624 +Microsporidia Tubulinosema ratisbonensis GCA_004000155.1_ASM400015v1 7.3 781 12578 +Sanchytriomycota Amoeboradix gromovi GCA_018985225.1_ASM1898522v1 4.2 549 10152 +Microsporidia Vairimorpha ceranae BRL01 GCF_000182985.1_ASM18298v1 4.3 639 9467 +Microsporidia Spraguea lophii GCA_011076965.1_ASM1107696v1 5.5 847 9221 +Microsporidia Spraguea lophii GCA_011074935.1_ASM1107493v1 5.5 851 9066 +Sanchytriomycota Sanchytrium tribonematis GCA_018985235.1_ASM1898523v1 6.3 897 8976 +Microsporidia Spraguea lophii GCA_011076975.1_ASM1107697v1 5.6 864 8904 +Microsporidia Spraguea lophii GCA_011074965.1_ASM1107496v1 5.4 840 8888 +Microsporidia Spraguea lophii GCA_011074945.1_ASM1107494v1 5.4 844 8873 +Microsporidia Spraguea lophii GCA_011076955.1_ASM1107695v1 5.5 864 8853 +Microsporidia Spraguea lophii GCA_011074975.1_ASM1107497v1 5.5 863 8632 +Microsporidia Pseudoloma neurophilia GCA_001432165.1_ASM143216v1 4.3 654 8603 +(blank) fungal sp. GCA_023347065.1_ASM2334706v1 2.8 386 7866 +Glomeromycota Gigaspora margarita GCA_910592245.1_Gigaspora_margarita_120-4_pot_B_10_14 477.1 82485 7226 +Microsporidia Spraguea lophii 42_110 GCA_000430065.1_Sprlop1.0 4.3 746 7226 +Microsporidia Microsporidia sp. MB GCA_050230985.1_KEMRI_ICIPE_ABN394 5.2 938 6673 +Microsporidia Microsporidia sp. MB GCA_049634765.1_KEMRI_ICIPE_Tes0708gam 6.1 1135 6204 +Microsporidia Microsporidia sp. MB GCA_032191455.1_ICIPE_MspMB_1.0 5.1 979 6059 +Chytridiomycota Siphonaria sp. JEL0065 GCA_027596065.1_ASM2759606v1 3.7 681 6045 +Kickxellomycota Coemansia sp. RSA 2524 GCA_027578135.1_UCR_CoemRSA2524_1.0 8.3 1593 5777 +Kickxellomycota Coemansia sp. RSA 551 GCA_027577555.1_UCR_CoemRSA551_1.0 8.6 1625 5634 +Microsporidia Microsporidia sp. MB GCA_049634785.1_KEMRI_ICIPE_Tes094gam 5.7 1198 5422 +Kickxellomycota Coemansia sp. RSA 921 GCA_027577315.1_UCR_CoemRSA921_1.0 8.5 1702 5237 +Microsporidia Hepatospora eriocheir GCA_002087875.1_ASM208787v1 3.2 691 5236 +Kickxellomycota Coemansia sp. RSA 1287 GCA_027578735.1_UCR_CoemRSA1287_1.0 6.5 1347 5218 +Kickxellomycota Coemansia aciculifera GCA_027579955.1_UCR_CoacBCRC34181_1.0 9.0 1888 5126 +Kickxellomycota Coemansia sp. RSA 475 GCA_027577635.1_UCR_CoemRSA475_1.0 8.8 1831 4882 +Kickxellomycota Coemansia sp. RSA 530 GCA_027577795.1_UCR_CoemRSA530_1.0 8.1 1768 4577 +Kickxellomycota Coemansia sp. RSA 1937 GCA_027578435.1_UCR_CoemRSA1937_1.0 7.5 1622 4561 +Kickxellomycota Coemansia sp. RSA 788 GCA_027577475.1_UCR_CoemRSA788_1.0 8.4 1855 4510 +Microsporidia Nosema rusticus GCA_046563365.1_FR26_Nr_1 6.2 1452 4479 +Kickxellomycota Coemansia sp. RSA 2052 GCA_027578455.1_UCR_CoemRSA2052_1.0 8.9 2097 4335 +Entomophthoromycota Massospora cicadina GCA_006912075.1_UMICH_Mcic_1 584.4 144784 4322 +Kickxellomycota Coemansia sp. RSA 1836 GCA_027578595.1_UCR_CoemRSA1836_1.0 7.3 1795 4111 +Kickxellomycota Coemansia sp. RSA 1694 GCA_027578655.1_UCR_CoemRSA1694_1.0 8.4 2055 3986 +Microsporidia Dictyocoela roeselum GCA_016255985.1_ASM1625598v1 1.4 383 3736 +Kickxellomycota Coemansia sp. RSA 25 GCA_027478835.1_UCR_CoemRSA25_1.0 6.6 1749 3704 +Microsporidia Areospora rohanae GCA_056822185.1_ASM5682218v1 5.3 1428 3681 +Microsporidia Anncaliia algerae GCA_000313815.1_ASM31381v1 7.5 2245 3384 +Microsporidia Alternosema astaquatica GCA_030386735.1_Fv_Alternosema1 1.1 319 3337 +Microsporidia Agmasoma carcini nom. nud. GCA_029231695.1_Cm_Agmasoma_carcini_1 1.0 305 3167 +Entomophthoromycota Massospora platypediae GCA_006912095.1_Mplat_NP02_megahit 750.6 241057 3108 +Entomophthoromycota Entomophthora muscae GCA_900018355.1_Em_KVL-14-118 7.8 2615 2895 +Microsporidia Hamiltosporidium tvaerminnensis GCA_000180835.1_ASM18083v1 0.7 278 2517 +Neocallimastigomycota Neocallimastix californiae GCA_975848665.1_SNW_BASALT_bin1877_ASM_v1 0.3 101 2403 +Chytridiomycota Chytridiomycetes sp. GCA_023347045.1_ASM2334704v1 0.7 279 2396 +Chytridiomycota Batrachochytrium dendrobatidis GCA_982397245.1_T46-F 0 0 0 diff --git a/docs/notes/2026-11-14_mat-discovery-tables/unscanned_by_locustag.tsv b/docs/notes/2026-11-14_mat-discovery-tables/unscanned_by_locustag.tsv new file mode 100644 index 00000000..4b208cbf --- /dev/null +++ b/docs/notes/2026-11-14_mat-discovery-tables/unscanned_by_locustag.tsv @@ -0,0 +1,62 @@ +phylum species locustag annotation_folder status +Microsporidia Agmasoma carcini nom. nud. FAA64C3D no_gene_models +Microsporidia Alternosema astaquatica FE4DCDFD no_gene_models +Aphelidiomycota Amoeboaphelidium protococcarum FB2D10C7 no_gene_models +Aphelidiomycota Amoeboaphelidium protococcarum F29201A4 no_gene_models +Sanchytriomycota Amoeboradix gromovi F8E7AE41 no_gene_models +Microsporidia Anncaliia algerae F5BF1495 no_gene_models +Microsporidia Areospora rohanae F3962479 no_gene_models +Chytridiomycota Batrachochytrium dendrobatidis F70639FB no_gene_models +Chytridiomycota Chytridiomycetes sp. FCAB5F5E no_gene_models +Kickxellomycota Coemansia aciculifera FF2BE7A9 no_gene_models +Kickxellomycota Coemansia sp. RSA 1287 F4D8CC32 no_gene_models +Kickxellomycota Coemansia sp. RSA 1694 FE598530 no_gene_models +Kickxellomycota Coemansia sp. RSA 1836 FA6F2E5A no_gene_models +Kickxellomycota Coemansia sp. RSA 1937 F4069752 no_gene_models +Kickxellomycota Coemansia sp. RSA 2052 F947FBFB no_gene_models +Kickxellomycota Coemansia sp. RSA 25 FF985C3D no_gene_models +Kickxellomycota Coemansia sp. RSA 2524 FBDE034A no_gene_models +Kickxellomycota Coemansia sp. RSA 475 FB00F276 no_gene_models +Kickxellomycota Coemansia sp. RSA 530 FECE5CD9 no_gene_models +Kickxellomycota Coemansia sp. RSA 551 F081097C no_gene_models +Kickxellomycota Coemansia sp. RSA 788 F1F0B3CA no_gene_models +Kickxellomycota Coemansia sp. RSA 921 F98C7B1F no_gene_models +Microsporidia Dictyocoela roeselum F39DF118 no_gene_models +Entomophthoromycota Entomophthora muscae F3E8F9AA no_gene_models +(blank) fungal sp. F0287966 no_gene_models +Glomeromycota Gigaspora margarita F0C86779 no_gene_models +Chytridiomycota Globomyces pollinis-pini FE908126 no_gene_models +Chytridiomycota Globomyces sp. JEL0801 FF51C85C no_gene_models +Microsporidia Hamiltosporidium tvaerminnensis FF23F37F no_gene_models +Microsporidia Hepatospora eriocheir FF43F814 no_gene_models +Entomophthoromycota Massospora cicadina F5C00A22 no_gene_models +Entomophthoromycota Massospora platypediae F5CD90C7 no_gene_models +Microsporidia Metchnikovella incurvata F5E0AEA0 no_gene_models +Microsporidia Microsporidia sp. MB FF4D0B6E no_gene_models +Microsporidia Microsporidia sp. MB FFC05C11 no_gene_models +Microsporidia Microsporidia sp. MB FC2C59FA no_gene_models +Microsporidia Microsporidia sp. MB FD7D6C1A no_gene_models +Microsporidia Mitosporidium daphniae F3034FE2 no_gene_models +Microsporidia Mitosporidium daphniae F55C60E6 no_gene_models +Neocallimastigomycota Neocallimastix californiae FD9B054F no_gene_models +Microsporidia Nosema rusticus F9D18C52 no_gene_models +(blank) Pleurotus ostreatus-Saccharomyces cerevisiae fusant FF473FF1 no_gene_models +Microsporidia Pseudoloma neurophilia F2D727F8 no_gene_models +Rozellomycota Rozella allomycis CSF55 F17255EC no_gene_models +Sanchytriomycota Sanchytrium tribonematis FE0149E9 no_gene_models +Chytridiomycota Siphonaria sp. JEL0065 F91F9F0F no_gene_models +Microsporidia Spraguea lophii 42_110 FF8037B5 no_gene_models +Microsporidia Spraguea lophii F05892AA no_gene_models +Microsporidia Spraguea lophii F9C6BC09 no_gene_models +Microsporidia Spraguea lophii FF654229 no_gene_models +Microsporidia Spraguea lophii F31A03E9 no_gene_models +Microsporidia Spraguea lophii F0DAB1F0 no_gene_models +Microsporidia Spraguea lophii F59FA04C no_gene_models +Microsporidia Spraguea lophii F3C72C00 no_gene_models +Microsporidia Spraguea lophii F9AE4EEB no_gene_models +Microsporidia Spraguea lophii F3E1BFAC no_gene_models +Microsporidia Spraguea lophii FEA8929C no_gene_models +Chytridiomycota Synchytrium endobioticum F811B56E no_gene_models +Microsporidia Tubulinosema ratisbonensis F2794F40 no_gene_models +Microsporidia Vairimorpha ceranae BRL01 F5F60078 no_gene_models +Microsporidia Vairimorpha sp. gmOTU17 SAN00002588 F1C7F2A0 no_gene_models diff --git a/docs/notes/2026-11-14_mat-discovery-tables/unscanned_genomes_status.tsv b/docs/notes/2026-11-14_mat-discovery-tables/unscanned_genomes_status.tsv new file mode 100644 index 00000000..c6f72a9e --- /dev/null +++ b/docs/notes/2026-11-14_mat-discovery-tables/unscanned_genomes_status.tsv @@ -0,0 +1,66 @@ +phylum annotation_folder status +Microsporidia Agmasoma_carcini_nom._nud._v2 skipped:skipped_too_small +Microsporidia Alternosema_astaquatica_1 skipped:skipped_too_small +Aphelidiomycota Amoeboaphelidium_protococcarum_FD95 skipped:skipped_too_small +Aphelidiomycota Amoeboaphelidium_protococcarum_X5 skipped:skipped_too_small +Sanchytriomycota Amoeboradix_gromovi_X-113 skipped:skipped_too_small +Microsporidia Anncaliia_algerae_Undeen skipped:skipped_too_small +Microsporidia Areospora_rohanae_ARG002 skipped:skipped_too_small +Chytridiomycota UNMAPPED:Batrachochytrium_dendrobatidis_ no_dir +Chytridiomycota UNMAPPED:Chytridiomycetes_sp._concoct_116 no_dir +Kickxellomycota Coemansia_aciculifera_BCRC_34181 skipped:skipped_too_small +Kickxellomycota Coemansia_sp._RSA_1287_RSA_1287 skipped:skipped_too_small +Kickxellomycota Coemansia_sp._RSA_1694_RSA_1694 skipped:skipped_too_small +Kickxellomycota Coemansia_sp._RSA_1836_RSA_1836 skipped:skipped_too_small +Kickxellomycota Coemansia_sp._RSA_1937_RSA_1937 skipped:skipped_too_small +Kickxellomycota Coemansia_sp._RSA_2052_RSA_2052 skipped:skipped_too_small +Kickxellomycota Coemansia_sp._RSA_25_RSA_25 skipped:skipped_too_small +Kickxellomycota Coemansia_sp._RSA_2524_RSA_2524 skipped:skipped_too_small +Kickxellomycota Coemansia_sp._RSA_475_RSA_475 skipped:skipped_too_small +Kickxellomycota Coemansia_sp._RSA_530_RSA_530 skipped:skipped_too_small +Kickxellomycota Coemansia_sp._RSA_551_RSA_551 skipped:skipped_too_small +Kickxellomycota Coemansia_sp._RSA_788_RSA_788 skipped:skipped_too_small +Kickxellomycota Coemansia_sp._RSA_921_RSA_921 skipped:skipped_too_small +Microsporidia Dictyocoela_roeselum_Ou19 skipped:skipped_too_small +Entomophthoromycota UNMAPPED:Entomophthora_muscae_ no_dir + fungal_sp._concoct_113 skipped:skipped_too_small +Glomeromycota UNMAPPED:Gigaspora_margarita_120-4_pot_B_10-14 no_dir +Chytridiomycota Globomyces_pollinis-pini_Arg68 skipped:skipped_too_small +Chytridiomycota UNMAPPED:Globomyces_sp._JEL0801_JEL0801 no_dir +Microsporidia Hamiltosporidium_tvaerminnensis_OER-3-3 skipped:skipped_too_small +Microsporidia Hepatospora_eriocheir_canceri skipped:skipped_too_small +Chytridiomycota Homolaphlyctis_polyrhiza_JEL142 annotated +Entomophthoromycota UNMAPPED:Massospora_cicadina_MICH_231384 no_dir +Entomophthoromycota Massospora_platypediae dir_no_proteins +Microsporidia Metchnikovella_incurvata_LNA5 skipped:skipped_too_small +Microsporidia Microsporidia_sp._MB_AHL03 skipped:skipped_too_small +Microsporidia Microsporidia_sp._MB_BSAL01234 skipped:skipped_too_small +Microsporidia Microsporidia_sp._MB_BSALO12345 skipped:skipped_too_small +Microsporidia Microsporidia_sp._MB_BUSABN394_1.0 skipped:skipped_too_small +Microsporidia Mitosporidium_daphniae_CH-H skipped:skipped_too_small +Microsporidia UNMAPPED:Mitosporidium_daphniae_UGP3 no_dir +Neocallimastigomycota Neocallimastix_californiae skipped:skipped_too_small +Microsporidia Nosema_rusticus_FR26 skipped:skipped_too_small + UNMAPPED:Pleurotus_ostreatus-Saccharomyces_cerevisiae_fusant_D1-P no_dir +Microsporidia Pseudoloma_neurophilia_MK1 skipped:skipped_too_small +Glomeromycota Rhizophagus_irregularis_DAOM_181602 annotated +Glomeromycota UNMAPPED:Rhizophagus_irregularis_DAOM_181602=DAOM_197198_DAOM_197198 no_dir +Rozellomycota Rozella_allomycis_CSF55 skipped:skipped_too_small +Sanchytriomycota Sanchytrium_tribonematis_X-128 skipped:skipped_too_small +Chytridiomycota UNMAPPED:Siphonaria_sp._JEL0065_JEL0065 no_dir +Microsporidia Spraguea_lophii_42_110 skipped:skipped_too_small +Microsporidia Spraguea_lophii_Celtic_Deep dir_no_proteins +Microsporidia Spraguea_lophii_New_Brunswick_1 skipped:skipped_too_small +Microsporidia Spraguea_lophii_New_Brunswick_4 skipped:skipped_too_small +Microsporidia Spraguea_lophii_New_Brunswick_8 skipped:skipped_too_small +Microsporidia Spraguea_lophii_New_Brunswick_9 skipped:skipped_too_small +Microsporidia Spraguea_lophii_New_Jersey_JS61 skipped:skipped_too_small +Microsporidia Spraguea_lophii_New_Jersey_RM18 skipped:skipped_too_small +Microsporidia Spraguea_lophii_New_Jersey_RW92 skipped:skipped_too_small +Microsporidia Spraguea_lophii_North_Atlantic dir_no_proteins +Microsporidia Spraguea_lophii_RA12034 dir_no_proteins +Chytridiomycota Synchytrium_endobioticum_18_T1 skipped:skipped_too_small +Microsporidia Tubulinosema_ratisbonensis_Franzen skipped:skipped_too_small +Microsporidia Vairimorpha_ceranae_BRL01 skipped:skipped_too_small +Microsporidia Vairimorpha_sp._gmOTU17_SAN00002588 skipped:skipped_too_small +Microsporidia Vavraia_culicis_floridensis annotated diff --git a/scripts/adjacent_pair_null.py b/scripts/adjacent_pair_null.py new file mode 100644 index 00000000..cb7a0cf0 --- /dev/null +++ b/scripts/adjacent_pair_null.py @@ -0,0 +1,101 @@ +#!/usr/bin/env python3 +"""Chance expectation for adjacent HMG-box / homeodomain gene pairs per lineage. + +Read-only discovery tool. Input is stage-1 output of flank_first_scan.py (genes_all.tsv and candidates.tsv per genome). +For each lineage (a list of genome names) and for each pair type (HMG+Homeo, 2xHomeo, 2xHMG) it counts the genomes that +have a pair within --window genes on one contig, and compares that with random placement: in every genome the same +number of HMG genes and homeodomain genes is drawn at random from all genes (--perms draws), the pair is looked for +again, and the lineage count is summed. The reported p is the share of draws with a count at least as large as observed. +A homeodomain family that is tandem-duplicated gives an excess here without being a mating-type locus, so the table also +gives the share of observed pairs on the same strand. + +Usage: adjacent_pair_null.py --stage1 DIR --out OUT.tsv LIST[:LABEL] [LIST[:LABEL] ...] +""" +import argparse +import collections +import os +import random + + +def table(path): + return [l.rstrip("\n").split("\t") for l in open(path)][1:] + + +def has_pair(a_items, b_items, window, same_class): + """a_items, b_items: lists of (contig, index). True when some a and b (different genes) lie within window.""" + for c1, i1 in a_items: + for c2, i2 in b_items: + if c1 == c2 and 0 < abs(i1 - i2) <= window: + return True + return False + + +def pair_strands(a_items, b_items, window): + """Return list of 'same'/'opposite' for observed pairs (a, b with a index < b index).""" + out = [] + for c1, i1, s1 in a_items: + for c2, i2, s2 in b_items: + if c1 == c2 and 0 < i2 - i1 <= window: + out.append("same" if s1 == s2 else "opposite") + return out + + +def main(): + ap = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter) + ap.add_argument("--stage1", required=True) + ap.add_argument("--out", required=True) + ap.add_argument("--window", type=int, default=5) + ap.add_argument("--perms", type=int, default=500) + ap.add_argument("--seed", type=int, default=1) + ap.add_argument("lists", nargs="+") + a = ap.parse_args() + rng = random.Random(a.seed) + D = a.stage1 + out = open(a.out, "w") + out.write("lineage\tpair_type\tgenomes\tobserved_genomes\texpected_mean\texpected_max\tp\tshare_same_strand\n") + for spec in a.lists: + path, _, label = spec.partition(":") + label = label or os.path.basename(path) + gs = [x.strip() for x in open(path) if x.strip()] + data = [] + for g in gs: + gf, cf = f"{D}/{g}.genes_all.tsv", f"{D}/{g}.candidates.tsv" + if not (os.path.exists(gf) and os.path.exists(cf)): + continue + genes = table(gf) + st = {r[0]: (r[1], int(r[5]), r[4]) for r in genes} + hmg = [st[r[0]] for r in table(cf) if r[3] in ("HMG_box", "HMG_box_2") and r[0] in st] + hd = [st[r[0]] for r in table(cf) if r[3] == "Homeodomain" and r[0] in st] + data.append((hmg, hd, [(x[0], x[1]) for x in st.values()])) + for ptype, (ka, kb) in {"HMG+Homeo": ("hmg", "hd"), "2xHomeo": ("hd", "hd"), "2xHMG": ("hmg", "hmg")}.items(): + obs, strands, exp = 0, [], [0] * a.perms + for hmg, hd, allg in data: + A, B = {"hmg": hmg, "hd": hd}[ka], {"hmg": hmg, "hd": hd}[kb] + if not A or not B or (ka == kb and len(A) < 2): + continue + ai = [(x[0], x[1]) for x in A] + bi = [(x[0], x[1]) for x in B] + if has_pair(ai, bi, a.window, ka == kb): + obs += 1 + if ka == kb: + strands += pair_strands(A, A, a.window) + else: + strands += pair_strands(A, B, a.window) + pair_strands(B, A, a.window) + for p in range(a.perms): + if ka == kb: + s = rng.sample(allg, len(A)) + if has_pair(s, s, a.window, True): + exp[p] += 1 + else: + s = rng.sample(allg, len(A) + len(B)) + if has_pair(s[:len(A)], s[len(A):], a.window, False): + exp[p] += 1 + p_val = (sum(e >= obs for e in exp) + 1) / (a.perms + 1) + same = round(strands.count("same") / len(strands), 3) if strands else "NA" + out.write(f"{label}\t{ptype}\t{len(data)}\t{obs}\t{sum(exp) / a.perms:.1f}\t{max(exp)}\t{p_val:.4f}\t{same}\n") + out.close() + print(open(a.out).read()) + + +if __name__ == "__main__": + main() diff --git a/scripts/augustus_gene_predict.slurm b/scripts/augustus_gene_predict.slurm new file mode 100644 index 00000000..bc626c0a --- /dev/null +++ b/scripts/augustus_gene_predict.slurm @@ -0,0 +1,33 @@ +#!/usr/bin/bash -l +#SBATCH --job-name=aug-pred +#SBATCH --partition=epyc +#SBATCH --cpus-per-task=1 +#SBATCH --mem=8gb +#SBATCH --time=8:00:00 +#SBATCH --output=/bigdata/stajichlab/jstajich/projects/MATPredict/logs/aug_%A.log +# Gene prediction with Augustus for assemblies that BFD skipped ("skipped_too_small"), so they can enter the flank-first scan. +# Env: SRC (worktree with this script), LIST (TSV: ASMIDname), OUT (folder), SPECIES (Augustus model, default rhizopus_oryzae). +# Output: $OUT//predict_results/.proteins.fa.gz and .gff3.gz (headers rewritten g1.t1 -> g1-T1 so +# flank_first_scan.py maps protein to gene). The model is not trained on these lineages: gene models are approximate. +set -uo pipefail +: "${SRC:?}" "${LIST:?}" "${OUT:?}" +SPECIES="${SPECIES:-rhizopus_oryzae}" +LIB=/bigdata/stajichlab/shared/projects/BFD/Fungi_BFD_runs/input_clean_genomes +# `module load augustus` prints a conda error in a batch shell; set the paths directly (checked on the login node 2026-11-14) +AUG=/opt/linux/rocky/8.x/x86_64/pkgs/augustus/3.5.0/env +export PATH="$AUG/bin:$PATH" +export AUGUSTUS_CONFIG_PATH=/opt/linux/centos/8.x/x86_64/pkgs/augustus/3.5.0/env/config/ +W="${SCRATCH:?}/aug"; mkdir -p "$W" +while IFS=$'\t' read -r asm name; do + [[ -z "$asm" ]] && continue + D="$OUT/$name/predict_results"; mkdir -p "$D" + [[ -s "$D/$name.gff3.gz" ]] && continue + zcat "$LIB/$asm.fa.gz" > "$W/$name.fa" + # one Augustus run per contig chunk would be faster; the genomes here are 11-24 Mb so one run is enough + augustus --species="$SPECIES" --gff3=on --protein=on --codingseq=off --softmasking=0 "$W/$name.fa" > "$W/$name.aug.gff3" 2> "$W/$name.aug.err" || { echo "FAIL $name"; tail -5 "$W/$name.aug.err"; continue; } + python3 "$SRC/scripts/augustus_proteins.py" "$W/$name.aug.gff3" "$D/$name.proteins.fa.gz" + awk -F'\t' '/^#/{next} $3=="gene"{print}' "$W/$name.aug.gff3" | gzip > "$D/$name.gff3.gz" + echo "$name genes=$(zcat "$D/$name.gff3.gz" | wc -l) proteins=$(zcat "$D/$name.proteins.fa.gz" | grep -c '>')" + rm -f "$W/$name".* +done < "$LIST" +echo done diff --git a/scripts/augustus_proteins.py b/scripts/augustus_proteins.py new file mode 100644 index 00000000..0c34eb67 --- /dev/null +++ b/scripts/augustus_proteins.py @@ -0,0 +1,46 @@ +#!/usr/bin/env python3 +"""Write the proteins of an Augustus GFF3 (run with --protein=on) as FASTA, one per transcript. + +Augustus prints each protein in comment lines of its GFF3: + # start gene g1 + ... + # protein sequence = [MKV... + # ...LLA] + # end gene g1 +The header is rewritten to -T (g1.t1 -> g1-T1) so flank_first_scan.py maps a protein to its gene. +Usage: augustus_proteins.py IN.gff3 OUT.faa[.gz] +""" +import gzip +import re +import sys + + +def proteins(lines): + """Yield (transcript_id, sequence) for every protein block.""" + gene, buf, on = None, [], False + for line in lines: + if line.startswith("# start gene "): + gene = line.split()[-1] + if "# protein sequence = [" in line: + on = True + buf = [line.split("[", 1)[1].strip()] + elif on: + buf.append(line[1:].strip()) + if on and "]" in buf[-1]: + seq = "".join(buf).replace("]", "").replace(" ", "") + yield gene, seq + on, buf = False, [] + + +def main(): + op = gzip.open if sys.argv[2].endswith(".gz") else open + n = 0 + with op(sys.argv[2], "wt") as fo: + for gene, seq in proteins(open(sys.argv[1])): + fo.write(f">{gene}-T1\n{seq}\n") + n += 1 + print(n, "proteins") + + +if __name__ == "__main__": + main() diff --git a/scripts/flank_idiomorph_probe.py b/scripts/flank_idiomorph_probe.py new file mode 100644 index 00000000..c0101d1f --- /dev/null +++ b/scripts/flank_idiomorph_probe.py @@ -0,0 +1,170 @@ +#!/usr/bin/env python3 +"""Flank-first idiomorph probe for a small set of related genomes (for example the three Allomyces genomes). + +Read-only discovery tool. Needs stage-1 output of flank_first_scan.py (genes_all.tsv, candidates.tsv per genome) and +the funannotate proteomes. + +For every HMG_box / Homeodomain candidate gene X in genome A and every other genome B: + 1. reciprocal best hits (diamond blastp, E <= --evalue) between all genes of A and B; + 2. take the genes within --flank genes of X (not X); keep those with a reciprocal best hit in B; + 3. synteny: >= --min-flank of them lie within --span genes of each other on one contig of B (the largest such group); + 4. class of X for B: + conserved X has a reciprocal best hit inside the syntenic region + other_domain the region holds an HMG/Homeodomain candidate that is not the reciprocal best hit of X + (a divergent or replaced gene: idiomorph-like) + absent syntenic region found, no HMG/Homeodomain gene in it (X missing in B: idiomorph-like or gene loss) + no_synteny fewer than --min-flank flank genes map as one block (not testable) +The class is a lead, not a call. Gene loss, assembly gaps and annotation errors give the same result. + +Usage: flank_idiomorph_probe.py --stage1 DIR --out OUT --genomes G1 G2 [G3 ...] +Output: OUT/baseline.tsv (random non-candidate genes through the same test: conserved / not_conserved / no_synteny), OUT/probe.tsv (genome_A, gene, domain, genome_B, class, flank_mapped, region_contig, region_span), OUT/summary.tsv +""" +import argparse +import collections +import gzip +import os +import random +import subprocess +import sys + +ANN = "/bigdata/stajichlab/shared/projects/BFD/Fungi_BFD_runs/genome_annotation" + + +def table(path): + rows = [l.rstrip("\n").split("\t") for l in open(path)] + return rows[1:] + + +def read_genes(stage1, g): + """-> (genes_in_order: list of (gene, contig, idx), idx_of: gene->(contig, idx))""" + rows = table(f"{stage1}/{g}.genes_all.tsv") + genes = [(r[0], r[1], int(r[5])) for r in rows] + return genes, {r[0]: (r[1], int(r[5])) for r in rows} + + +def read_candidates(stage1, g): + return {r[0]: r[3] for r in table(f"{stage1}/{g}.candidates.tsv") if r[3] in ("HMG_box", "HMG_box_2", "Homeodomain")} + + +def rbh(a, b, tmp, evalue, threads): + """Reciprocal best hits between proteomes a and b (fasta paths, gz ok) -> dict gene_a -> gene_b.""" + def prep(path, tag): + out = os.path.join(tmp, tag + ".faa") + op = gzip.open if path.endswith(".gz") else open + with op(path, "rt") as fi, open(out, "w") as fo: + for line in fi: + if line.startswith(">"): + name = line[1:].split()[0] + name = name.rsplit("-T", 1)[0] if "-T" in name else name + fo.write(f">{name}\n") + else: + fo.write(line) + return out + fa, fb = prep(a, "A"), prep(b, "B") + best = {} + for q, s, tag in ((fa, fb, "ab"), (fb, fa, "ba")): + subprocess.run(["diamond", "makedb", "--in", s, "-d", os.path.join(tmp, "db_" + tag), "--quiet"], check=True) + out = os.path.join(tmp, tag + ".tsv") + subprocess.run(["diamond", "blastp", "-q", q, "-d", os.path.join(tmp, "db_" + tag), "-o", out, "--quiet", + "--max-target-seqs", "1", "-e", str(evalue), "--threads", str(threads), + "--outfmt", "6", "qseqid", "sseqid", "bitscore"], check=True) + best[tag] = {} + for line in open(out): + f = line.split("\t") + best[tag].setdefault(f[0], f[1]) + return {x: y for x, y in best["ab"].items() if best["ba"].get(y) == x} + + +def classify_gene(x, flank_genes, orth, idx_b, cand_b, min_flank, span): + """Return (class, n_flank_mapped, contig, region_span). Pure function, used by the tests. + x: gene id; flank_genes: genes near x in A; orth: A->B reciprocal best hits; + idx_b: gene->(contig, idx) in B; cand_b: set of HMG/Homeodomain genes in B.""" + pos = [idx_b[orth[f]] for f in flank_genes if f in orth and orth[f] in idx_b] + by = collections.defaultdict(list) + for c, i in pos: + by[c].append(i) + best = (0, None, None, None) + for c, v in by.items(): + v.sort() + lo = 0 + for hi in range(len(v)): + while v[hi] - v[lo] > span: + lo += 1 + n = hi - lo + 1 + if n > best[0]: + best = (n, c, v[lo], v[hi]) + n, c, lo, hi = best + if n < min_flank: + return "no_synteny", len(pos), "", "" + inside = [g for g in cand_b if idx_b[g][0] == c and lo - 2 <= idx_b[g][1] <= hi + 2] + if x in orth and orth[x] in idx_b and idx_b[orth[x]][0] == c and lo - 2 <= idx_b[orth[x]][1] <= hi + 2: + return "conserved", len(pos), c, f"{lo}-{hi}" + if inside: + return "other_domain", len(pos), c, f"{lo}-{hi}" + return "absent", len(pos), c, f"{lo}-{hi}" + + +def main(): + ap = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter) + ap.add_argument("--stage1", required=True) + ap.add_argument("--out", required=True) + ap.add_argument("--genomes", nargs="+", required=True) + ap.add_argument("--flank", type=int, default=5) + ap.add_argument("--min-flank", type=int, default=3) + ap.add_argument("--span", type=int, default=25) + ap.add_argument("--evalue", type=float, default=1e-5) + ap.add_argument("--threads", type=int, default=4) + ap.add_argument("--ann", default=ANN, help="folder holding /predict_results/.proteins.fa.gz") + ap.add_argument("--baseline", type=int, default=500, help="random non-candidate genes per genome pair for the baseline") + ap.add_argument("--seed", type=int, default=1) + ap.add_argument("--tmp", default=os.environ.get("SCRATCH", "/tmp")) + a = ap.parse_args() + os.makedirs(a.out, exist_ok=True) + G = {g: read_genes(a.stage1, g) for g in a.genomes} + C = {g: read_candidates(a.stage1, g) for g in a.genomes} + rows, base = [], [] + rng = random.Random(a.seed) + for ga in a.genomes: + for gb in a.genomes: + if ga == gb: + continue + tmp = os.path.join(a.tmp, f"fip_{os.getpid()}_{a.genomes.index(ga)}_{a.genomes.index(gb)}") + os.makedirs(tmp, exist_ok=True) + orth = rbh(f"{a.ann}/{ga}/predict_results/{ga}.proteins.fa.gz", f"{a.ann}/{gb}/predict_results/{gb}.proteins.fa.gz", + tmp, a.evalue, a.threads) + genes_a, idx_a = G[ga] + by_contig = collections.defaultdict(dict) + for g, c, i in genes_a: + by_contig[c][i] = g + idx_b = G[gb][1] + for x, dom in C[ga].items(): + c, i = idx_a[x] + fl = [by_contig[c][j] for j in range(i - a.flank, i + a.flank + 1) if j != i and j in by_contig[c]] + cls, n, rc, sp = classify_gene(x, fl, orth, idx_b, set(C[gb]), a.min_flank, a.span) + rows.append((ga, x, dom, gb, cls, n, rc, sp)) + others = [g for g, _c, _i in genes_a if g not in C[ga]] + for x in rng.sample(others, min(a.baseline, len(others))): + c, i = idx_a[x] + fl = [by_contig[c][j] for j in range(i - a.flank, i + a.flank + 1) if j != i and j in by_contig[c]] + cls, n, rc, sp = classify_gene(x, fl, orth, idx_b, set(), a.min_flank, a.span) + base.append((ga, gb, "conserved" if cls == "conserved" else "not_conserved" if cls == "absent" else cls)) + with open(os.path.join(a.out, "probe.tsv"), "w") as fo: + fo.write("genome_A\tgene\tdomain\tgenome_B\tclass\tflank_mapped\tregion_contig\tregion_span\n") + for r in rows: + fo.write("\t".join(map(str, r)) + "\n") + cnt = collections.Counter((r[0], r[3], r[4]) for r in rows) + with open(os.path.join(a.out, "summary.tsv"), "w") as fo: + fo.write("genome_A\tgenome_B\tclass\tgenes\n") + for k, v in sorted(cnt.items()): + fo.write("\t".join(map(str, k)) + f"\t{v}\n") + bc = collections.Counter(base) + with open(os.path.join(a.out, "baseline.tsv"), "w") as fo: + fo.write("genome_A\tgenome_B\tclass\tgenes\n") + for k, v in sorted(bc.items()): + fo.write("\t".join(map(str, k)) + f"\t{v}\n") + print(open(os.path.join(a.out, "summary.tsv")).read()) + print(open(os.path.join(a.out, "baseline.tsv")).read()) + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/scripts/infer_strandedness.py b/scripts/infer_strandedness.py new file mode 100644 index 00000000..e6d30f34 --- /dev/null +++ b/scripts/infer_strandedness.py @@ -0,0 +1,91 @@ +#!/usr/bin/env python3 +"""Infer library strandedness from a BAM and a GFF3, and report read orientation over named regions. + +Read-only analysis (needs samtools on PATH). For up to --n annotated genes of at least --min-len bp (and not overlapping another +gene), count properly paired reads by the orientation of read 1 relative to the gene strand: + same read 1 on the gene strand (forward-stranded library, 'fr-secondstrand') + opposite read 1 on the opposite strand (reverse-stranded library, dUTP, 'fr-firststrand') +A library is called stranded when one orientation holds >= --threshold of the reads; otherwise unstranded. +For each region (name:contig:start:end) the same count is reported as read-1 forward / reverse counts and, if the library is +stranded, the implied transcript strand. +Usage: infer_strandedness.py --bam X.bam --gff3 X.gff3 [--region name:contig:start:end ...] +""" +import argparse +import gzip +import subprocess + + +def classify(same, opposite, threshold=0.85): + """-> 'forward-stranded', 'reverse-stranded' or 'unstranded' from read counts relative to gene strand.""" + tot = same + opposite + if tot == 0: + return "no_reads" + if same / tot >= threshold: + return "forward-stranded" + if opposite / tot >= threshold: + return "reverse-stranded" + return "unstranded" + + +def implied_strand(r1_fwd, r1_rev, library): + """Transcript strand implied by read-1 orientation in a stranded library.""" + if library == "forward-stranded": + return "+" if r1_fwd > r1_rev else "-" + if library == "reverse-stranded": + return "-" if r1_fwd > r1_rev else "+" + return "unknown" + + +def reads_r1(bam, region): + """(r1_forward, r1_reverse) among primary, mapped, properly paired reads in a region.""" + out = subprocess.run(["samtools", "view", "-f", "66", "-F", "3852", bam, region], capture_output=True, text=True).stdout + fw = rv = 0 + for line in out.splitlines(): + flag = int(line.split("\t", 2)[1]) + if flag & 64: + if flag & 16: + rv += 1 + else: + fw += 1 + return fw, rv + + +def main(): + ap = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter) + ap.add_argument("--bam", required=True) + ap.add_argument("--gff3", required=True) + ap.add_argument("--region", action="append", default=[]) + ap.add_argument("--n", type=int, default=400) + ap.add_argument("--min-len", type=int, default=1000) + ap.add_argument("--threshold", type=float, default=0.85) + a = ap.parse_args() + genes = [] + op = gzip.open if a.gff3.endswith(".gz") else open + with op(a.gff3, "rt") as fh: + for line in fh: + f = line.rstrip("\n").split("\t") + if len(f) > 8 and f[2] == "gene": + genes.append((f[0], int(f[3]), int(f[4]), f[6])) + genes.sort() + keep = [] + for i, g in enumerate(genes): + prev_end = genes[i - 1][2] if i and genes[i - 1][0] == g[0] else -1 + next_start = genes[i + 1][1] if i + 1 < len(genes) and genes[i + 1][0] == g[0] else 10 ** 12 + if g[2] - g[1] + 1 >= a.min_len and g[1] > prev_end and g[2] < next_start: + keep.append(g) + step = max(1, len(keep) // a.n) + same = opp = 0 + for c, s, e, st in keep[::step][:a.n]: + fw, rv = reads_r1(a.bam, f"{c}:{s}-{e}") + same += fw if st == "+" else rv + opp += rv if st == "+" else fw + lib = classify(same, opp, a.threshold) + print(f"genes used {len(keep[::step][:a.n])}; read1 same-strand {same}, opposite {opp}; share same {same / max(1, same + opp):.3f}; library: {lib}") + for r in a.region: + name, c, s, e = r.split(":") + fw, rv = reads_r1(a.bam, f"{c}:{s}-{e}") + print(f"{name}\tread1_forward {fw}\tread1_reverse {rv}\timplied_strand {implied_strand(fw, rv, lib)}") + + +if __name__ == "__main__": + main() diff --git a/scripts/locus_expression.py b/scripts/locus_expression.py new file mode 100644 index 00000000..7051d2a4 --- /dev/null +++ b/scripts/locus_expression.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python3 +"""Expression of named loci relative to all annotated genes, from `samtools bedcov` output. + +Read-only analysis. Inputs + --gff3 BFD GFF3 (gene features) + --bedcov output of `samtools bedcov REGIONS.bed BAM` (chrom start end name sum_of_depth) for every gene and every locus region + --loci TSV namechromstartend (1-based inclusive) of the extra regions that were added to the BED, plus + --genes ids of annotated genes to report +Output (stdout and --out): for each reported locus: length, mean depth, depth percentile among all annotated genes with length >= 300 bp, +and the share of annotated genes with mean depth >= 1. +Mean depth is not TPM: it is not corrected for library size; compare within one library only. +""" +import argparse + + +def parse_bedcov(path): + """-> {name: (length, mean_depth)} with BED half-open coordinates.""" + out = {} + for line in open(path): + f = line.rstrip("\n").split("\t") + if len(f) < 5: + continue + s, e = int(f[1]), int(f[2]) + out[f[3]] = (e - s, float(f[4]) / max(1, e - s)) + return out + + +def percentile_of(value, values): + """Share of values strictly below `value`.""" + return sum(v < value for v in values) / len(values) if values else float("nan") + + +def main(): + ap = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter) + ap.add_argument("--bedcov", required=True) + ap.add_argument("--report", nargs="+", required=True, help="names in the bedcov file to report") + ap.add_argument("--gene-prefix", default="", help="names that start with this prefix are annotated genes (the background)") + ap.add_argument("--min-len", type=int, default=300) + ap.add_argument("--out") + a = ap.parse_args() + cov = parse_bedcov(a.bedcov) + bg = [d for n, (l, d) in cov.items() if n.startswith(a.gene_prefix) and l >= a.min_len and n not in a.report] + lines = ["name\tlength\tmean_depth\tpercentile_among_genes\tgenes_with_depth_ge_1"] + for n in a.report: + if n not in cov: + lines.append(f"{n}\tNA\tNA\tNA\tNA") + continue + l, d = cov[n] + lines.append(f"{n}\t{l}\t{d:.2f}\t{percentile_of(d, bg):.3f}\t{sum(x >= 1 for x in bg) / len(bg):.3f}") + text = "\n".join(lines) + "\n" + print(text) + if a.out: + open(a.out, "w").write(text) + + +if __name__ == "__main__": + main() diff --git a/scripts/locus_transcripts.py b/scripts/locus_transcripts.py new file mode 100644 index 00000000..9b7ccb0d --- /dev/null +++ b/scripts/locus_transcripts.py @@ -0,0 +1,89 @@ +#!/usr/bin/env python3 +"""Transcripts that overlap a locus, with exon structure, strand and Pfam hits on every ORF of the spliced sequence. + +Read-only analysis of a StringTie assembly (GTF) and the spliced transcript FASTA from `gffread -w`. +For every transcript on --contig that overlaps [--lo, --hi]: number of exons, span, strand, spliced length, the longest ORF, +and the Pfam domains (HMG_box, HMG_box_2, Homeodomain; GA cutoff) found on any ORF of >= --min-aa residues in the six frames of +the spliced sequence, with the frame (negative = reverse of the transcript as written). +Limit: with unstranded RNA-seq StringTie takes the strand from splice-site motifs, so a homeodomain ORF in a negative frame of a +'+' transcript (or the reverse) is on the strand opposite to the assembled transcript. +Usage: locus_transcripts.py --gtf X.gtf --tx X.tx.fa --contig C --lo N --hi N --hmm HMM +""" +import argparse +import os +import re +import subprocess +import sys + +sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) +from region_pfam_check import orfs # noqa: E402 + + +def read_fasta(path): + d, h = {}, None + for line in open(path): + if line[0] == ">": + h = line[1:].split()[0] + d[h] = [] + else: + d[h].append(line.strip()) + return {k: "".join(v) for k, v in d.items()} + + +def read_gtf_transcripts(path, contig): + """-> {transcript_id: {'strand': s, 'exons': [(start, end)]}} for one contig.""" + recs = {} + for line in open(path): + f = line.split("\t") + if len(f) < 9 or f[0] != contig: + continue + m = re.search(r'transcript_id "([^"]+)"', f[8]) + if not m: + continue + r = recs.setdefault(m.group(1), {"strand": f[6], "exons": []}) + if f[2] == "exon": + r["exons"].append((int(f[3]), int(f[4]))) + return recs + + +def overlaps(exons, lo, hi): + ex = sorted(exons) + return bool(ex) and ex[-1][1] >= lo and ex[0][0] <= hi + + +def main(): + ap = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter) + ap.add_argument("--gtf", required=True) + ap.add_argument("--tx", required=True) + ap.add_argument("--contig", required=True) + ap.add_argument("--lo", type=int, required=True) + ap.add_argument("--hi", type=int, required=True) + ap.add_argument("--hmm", required=True) + ap.add_argument("--min-aa", type=int, default=30) + ap.add_argument("--tmp", default=os.environ.get("SCRATCH", "/tmp")) + a = ap.parse_args() + tx = read_fasta(a.tx) + print("transcript\tstrand\texons\tspan\ttx_len\tlongest_orf_aa\tpfam_hits(aa,frame,domain,evalue)") + for tid, r in read_gtf_transcripts(a.gtf, a.contig).items(): + if not overlaps(r["exons"], a.lo, a.hi) or tid not in tx: + continue + ex = sorted(r["exons"]) + os_ = orfs(tx[tid], a.min_aa) + faa = os.path.join(a.tmp, "lt.faa") + with open(faa, "w") as fh: + for i, o in enumerate(os_): + fh.write(f">o{i}\n{o[3]}\n") + tbl = os.path.join(a.tmp, "lt.tbl") + subprocess.run(["hmmsearch", "--cut_ga", "--domtblout", tbl, "-o", "/dev/null", a.hmm, faa], check=True) + hits = [] + for line in open(tbl): + if line[0] != "#": + f = line.split() + o = os_[int(f[0][1:])] + hits.append((len(o[3]), o[0], f[3], f[6])) + longest = max((len(o[3]) for o in os_), default=0) + print(f"{tid}\t{r['strand']}\t{len(ex)}\t{ex[0][0]}-{ex[-1][1]}\t{len(tx[tid])}\t{longest}\t{hits or 'none'}") + + +if __name__ == "__main__": + main() diff --git a/scripts/matpi_hmg_adjacency.py b/scripts/matpi_hmg_adjacency.py new file mode 100644 index 00000000..c7cb8118 --- /dev/null +++ b/scripts/matpi_hmg_adjacency.py @@ -0,0 +1,127 @@ +#!/usr/bin/env python3 +"""How often does an HMG-box gene lie near a matPi-like (homeodomain) region on the same contig? + +Read-only discovery tool. Combines + - matpi_hits.tsv from matpi_tblastn.py (genome-level homeodomain-like regions, annotated or not), and + - scan_genes.tsv from pm_lead_followup.py scan (all genes with an HMG_box / HMG_box_2 Pfam hit), +with gene coordinates from the BFD GFF3. For every HMG gene it finds the nearest region on the same contig. +Output (--out): adjacency_pairs.tsv (genome, hmg_gene, contig, region_rank, region_identity, distance_bp) for pairs within +--max-dist, and adjacency_summary.tsv (genome, hmg_genes, hmg_genes_near_region, regions_tested). +The summary gives the background rate: in a genome with several HMG genes and several homeodomain regions, how often a pair +falls within --max-dist by chance on one contig. Assembly fragmentation hides pairs, so a missing pair is not evidence of +absence. +With --perms N the same number of HMG genes is placed at random gene positions N times in every genome; adjacency_null.tsv gives the +observed number of genomes with an HMG gene within --null-dist of a region, the expected number and p (share of draws >= observed). +Usage: matpi_hmg_adjacency.py --hits matpi_hits.tsv --genes SCAN_GENES.tsv [SCAN_GENES.tsv ...] --genomes GENOMES.tsv --out OUT +""" +import argparse +import csv +import gzip +import os +import random +import sys + + +def opener(p): + return gzip.open(p, "rt") if p.endswith(".gz") else open(p) + + +def read_gene_coords(gff, wanted): + out = {} + with opener(gff) as fh: + for line in fh: + if line.startswith("#"): + continue + f = line.rstrip("\n").split("\t") + if len(f) > 8 and f[2] == "gene": + gid = f[8].split("ID=")[1].split(";")[0] + if gid in wanted: + out[gid] = (f[0], int(f[3]), int(f[4])) + return out + + +def read_all_genes(gff): + out = [] + with opener(gff) as fh: + for line in fh: + if line.startswith("#"): + continue + f = line.rstrip("\n").split("\t") + if len(f) > 8 and f[2] == "gene": + out.append((f[0], int(f[3]), int(f[4]))) + return out + + +def gap(a0, a1, b0, b1): + return max(0, max(a0, b0) - min(a1, b1)) + + +def main(): + ap = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter) + ap.add_argument("--hits", required=True) + ap.add_argument("--genes", nargs="+", required=True) + ap.add_argument("--genomes", required=True, help="TSV name, fasta, gff3, matMc gene") + ap.add_argument("--out", required=True) + ap.add_argument("--max-dist", type=int, default=50000) + ap.add_argument("--perms", type=int, default=2000, help="random placements of the HMG genes for the null (0 = skip)") + ap.add_argument("--null-dist", type=int, default=20000, help="distance used for the permutation test") + ap.add_argument("--seed", type=int, default=1) + a = ap.parse_args() + os.makedirs(a.out, exist_ok=True) + gff = {l.split("\t")[0]: l.split("\t")[2] for l in open(a.genomes)} + hits = {} + for r in csv.DictReader(open(a.hits), delimiter="\t"): + hits.setdefault(r["genome"], []).append(r) + hmg = {} + for p in a.genes: + for r in csv.DictReader(open(p), delimiter="\t"): + if "HMG" in r["domain"]: + hmg.setdefault(r["genome"], set()).add(r["gene"]) + fp = open(os.path.join(a.out, "adjacency_pairs.tsv"), "w") + fs = open(os.path.join(a.out, "adjacency_summary.tsv"), "w") + fp.write("genome\thmg_gene\tcontig\tregion_rank\tregion_identity\tdistance_bp\n") + fs.write("genome\thmg_genes\thmg_genes_near_region\tregions_tested\n") + for g, regs in hits.items(): + coords = read_gene_coords(gff[g], hmg.get(g, set())) + near = set() + for gene, (c, s, e) in coords.items(): + for r in regs: + if r["contig"] != c: + continue + d = gap(s, e, int(r["start"]), int(r["end"])) + if d <= a.max_dist: + near.add(gene) + fp.write(f"{g}\t{gene}\t{c}\t{r['rank']}\t{r['best_identity']}\t{d}\n") + fs.write(f"{g}\t{len(coords)}\t{len(near)}\t{len(regs)}\n") + fp.close() + fs.close() + if a.perms: + rng = random.Random(a.seed) + obs, exp = 0, [0] * a.perms + used = 0 + for g, regs in hits.items(): + allg = read_all_genes(gff[g]) + k = len(hmg.get(g, ())) + if not k or not allg: + continue + used += 1 + by = {} + for r in regs: + by.setdefault(r["contig"], []).append((int(r["start"]), int(r["end"]))) + def near(genes): + return any(c in by and any(gap(s0, e0, x0, x1) <= a.null_dist for x0, x1 in by[c]) for c, s0, e0 in genes) + coords = read_gene_coords(gff[g], hmg.get(g, set())) + obs += near(list(coords.values())) + for i in range(a.perms): + exp[i] += near(rng.sample(allg, k)) + p_val = (sum(e >= obs for e in exp) + 1) / (a.perms + 1) + with open(os.path.join(a.out, "adjacency_null.tsv"), "w") as fn: + fn.write("max_dist_bp\tgenomes\tobserved_genomes\texpected_mean\texpected_max\tp\n") + fn.write(f"{a.null_dist}\t{used}\t{obs}\t{sum(exp) / a.perms:.2f}\t{max(exp)}\t{p_val:.4f}\n") + print(open(os.path.join(a.out, "adjacency_null.tsv")).read()) + print(open(os.path.join(a.out, "adjacency_summary.tsv")).read()) + print(open(os.path.join(a.out, "adjacency_pairs.tsv")).read()) + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/scripts/matpi_tblastn.py b/scripts/matpi_tblastn.py new file mode 100644 index 00000000..09bf6879 --- /dev/null +++ b/scripts/matpi_tblastn.py @@ -0,0 +1,126 @@ +#!/usr/bin/env python3 +"""Genome-level search for matPi (homeodomain) regions and their distance to the matMc-like gene. + +Read-only discovery tool. The curated T. deformans matPi is a 181 aa partial protein whose homeodomain region lies in +unannotated sequence, so an annotation-based search (pm_lead_followup.py scan) cannot find it. This script searches the +assembly itself. + +For each genome (TSV: name, genome fasta, BFD gff3, matMc gene id or '-'): + 1. tblastn of the matPi query set (FASTA) against the genome (E <= --evalue, no SEG filter); + 2. per contig, hits closer than --merge bp are merged; the best regions by summed bitscore are kept; + 3. the matMc gene's coordinates come from the GFF3; for each matPi region on the matMc contig the distance is given. +Output (--out): matpi_hits.tsv (genome, rank, contig, start, end, best_identity, best_evalue, bitscore, on_matMc_contig, +distance_to_matMc_bp, overlapping_gene). +""" +import argparse +import collections +import gzip +import os +import subprocess +import sys + + +def opener(p): + return gzip.open(p, "rt") if p.endswith(".gz") else open(p) + + +def merge_hits(hits, merge): + """hits: list of (contig, start, end, pident, evalue, bits) -> merged regions sorted by total bitscore. + Returns list of dict(contig, start, end, ident, evalue, bits).""" + by = collections.defaultdict(list) + for c, s, e, p, ev, b in hits: + by[c].append((min(s, e), max(s, e), p, ev, b)) + regions = [] + for c, v in by.items(): + v.sort() + cur = None + for s, e, p, ev, b in v: + if cur and s - cur["end"] <= merge: + cur["end"] = max(cur["end"], e) + cur["ident"] = max(cur["ident"], p) + cur["evalue"] = min(cur["evalue"], ev) + cur["bits"] += b + else: + if cur: + regions.append(cur) + cur = {"contig": c, "start": s, "end": e, "ident": p, "evalue": ev, "bits": b} + if cur: + regions.append(cur) + return sorted(regions, key=lambda r: -r["bits"]) + + +def distance(a_start, a_end, b_start, b_end): + """Gap in bp between two intervals; 0 when they overlap.""" + return max(0, max(a_start, b_start) - min(a_end, b_end)) + + +def gene_coords(gff, gene_id): + if gene_id in ("", "-"): + return None + with opener(gff) as fh: + for line in fh: + if line.startswith("#"): + continue + f = line.rstrip("\n").split("\t") + if len(f) > 8 and f[2] == "gene" and f"ID={gene_id};" in f[8] + ";": + return f[0], int(f[3]), int(f[4]) + return None + + +def genes_on(gff, contig): + out = [] + with opener(gff) as fh: + for line in fh: + if line.startswith("#"): + continue + f = line.rstrip("\n").split("\t") + if len(f) > 8 and f[2] == "gene" and f[0] == contig: + out.append((int(f[3]), int(f[4]), f[8].split("ID=")[1].split(";")[0])) + return out + + +def main(): + ap = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter) + ap.add_argument("--genomes", required=True) + ap.add_argument("--queries", required=True) + ap.add_argument("--out", required=True) + ap.add_argument("--evalue", type=float, default=1e-5) + ap.add_argument("--merge", type=int, default=2000) + ap.add_argument("--top", type=int, default=3) + ap.add_argument("--tmp", default=os.environ.get("SCRATCH", "/tmp")) + a = ap.parse_args() + os.makedirs(a.out, exist_ok=True) + fo = open(os.path.join(a.out, "matpi_hits.tsv"), "w") + fo.write("genome\trank\tcontig\tstart\tend\tbest_identity\tbest_evalue\tbitscore\ton_matMc_contig\tdistance_to_matMc_bp\toverlapping_gene\n") + for line in open(a.genomes): + name, fa, gff, mc = line.rstrip("\n").split("\t") + db = os.path.join(a.tmp, "tb_" + name) + genome = os.path.join(a.tmp, name + ".fa") + subprocess.run(f"zcat -f {fa} > {genome}", shell=True, check=True) + subprocess.run(["makeblastdb", "-in", genome, "-dbtype", "nucl", "-out", db, "-logfile", "/dev/null"], check=True) + out = os.path.join(a.tmp, name + ".tb") + subprocess.run(["tblastn", "-query", a.queries, "-db", db, "-seg", "no", "-evalue", str(a.evalue), "-out", out, + "-outfmt", "6 sseqid sstart send pident evalue bitscore"], check=True) + hits = [] + for l in open(out): + c, s, e, p, ev, b = l.split("\t") + hits.append((c, int(s), int(e), float(p), float(ev), float(b))) + regions = merge_hits(hits, a.merge)[:a.top] + mcc = gene_coords(gff, mc) + for i, r in enumerate(regions, 1): + on = "NA" + dist = "NA" + if mcc: + on = "yes" if r["contig"] == mcc[0] else "no" + if on == "yes": + dist = distance(r["start"], r["end"], mcc[1], mcc[2]) + gl = [g[2] for g in genes_on(gff, r["contig"]) if g[1] >= r["start"] and g[0] <= r["end"]] + fo.write(f"{name}\t{i}\t{r['contig']}\t{r['start']}\t{r['end']}\t{r['ident']}\t{r['evalue']}\t{r['bits']}\t{on}\t{dist}\t{','.join(gl) or '-'}\n") + for f in (genome, out): + os.remove(f) + fo.close() + print(open(os.path.join(a.out, "matpi_hits.tsv")).read()) + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/scripts/pm_lead_followup.py b/scripts/pm_lead_followup.py new file mode 100644 index 00000000..689980e8 --- /dev/null +++ b/scripts/pm_lead_followup.py @@ -0,0 +1,199 @@ +#!/usr/bin/env python3 +"""Structural follow-up of PM-family detector leads, and a rescan of genomes with no call. + +Read-only discovery tool. It does not change the detector. + +lead : for every `PM` locus in detection_report.yaml files, take the gene_evidence entries for matMc / matPi + (contig, start, end, strand), find the predicted gene (BFD funannotate GFF3) that overlaps each, test that + protein with Pfam HMG_box / HMG_box_2 / Homeodomain (hmmsearch, GA cutoff), and write the gene order of + the locus +/- --flank genes with strands. Output: lead_genes.tsv, lead_summary.tsv. +scan : for genomes with no PM call, run hmmsearch (HMG_box, HMG_box_2, Homeodomain) over the proteome and diamond blastp + against the curated PM proteins (matMc, matPi, matMi) and the curated S. pombe mat1 proteins. Output: scan_genes.tsv, + scan_pairs.tsv (candidate genes within --near genes on one contig). +Usage: pm_lead_followup.py lead --runs RUNS_DIR --genomes LIST --out OUT --hmm HMM + pm_lead_followup.py scan --genomes LIST --out OUT --hmm HMM --controls FAA +Pfam and diamond are needed on PATH (module hmmer/3.4, diamond). +""" +import argparse +import collections +import gzip +import os +import re +import subprocess +import sys + +ANN = "/bigdata/stajichlab/shared/projects/BFD/Fungi_BFD_runs/genome_annotation" +DOMAINS = ("HMG_box", "HMG_box_2", "Homeodomain") + + +def opener(p): + return gzip.open(p, "rt") if p.endswith(".gz") else open(p) + + +def read_gff_genes(gff): + """-> {contig: [(start, end, strand, gene_id)]} sorted by start.""" + out = collections.defaultdict(list) + with opener(gff) as fh: + for line in fh: + if line.startswith("#"): + continue + f = line.rstrip("\n").split("\t") + if len(f) < 9 or f[2] != "gene": + continue + m = re.search(r"ID=([^;]+)", f[8]) + out[f[0]].append((int(f[3]), int(f[4]), f[6], m.group(1) if m else "")) + for v in out.values(): + v.sort() + return out + + +def overlapping_gene(genes, contig, s, e): + """Gene with the largest overlap with [s, e] on contig -> (index, gene tuple) or (None, None).""" + best, bi = 0, None + for i, g in enumerate(genes.get(contig, [])): + ov = min(e, g[1]) - max(s, g[0]) + 1 + if ov > best: + best, bi = ov, i + return (bi, genes[contig][bi]) if bi is not None else (None, None) + + +def hmm_domains(proteome, hmm, tmp, tag): + """{protein_id: [(domain, evalue)]} from hmmsearch --cut_ga.""" + tbl = os.path.join(tmp, tag + ".tbl") + faa = os.path.join(tmp, tag + ".faa") + subprocess.run(f"zcat -f {proteome} > {faa}", shell=True, check=True) + # hmmsearch cannot rewind a pipe when the HMM file holds several models, so search a plain file + subprocess.run(["hmmsearch", "--cut_ga", "--cpu", "2", "--domtblout", tbl, "-o", "/dev/null", hmm, faa], check=True) + out = collections.defaultdict(list) + for line in open(tbl): + if line[0] == "#": + continue + f = line.split() + out[re.sub(r"-T\d+$", "", f[0])].append((f[3], float(f[6]))) + return out + + +def layout_row(rows_idx, genes_c, hits, flank): + """Gene order text for the genes spanning the evidence indices +/- flank.""" + lo, hi = max(0, min(rows_idx) - flank), min(len(genes_c) - 1, max(rows_idx) + flank) + out = [] + for i in range(lo, hi + 1): + g = genes_c[i] + dom = ",".join(sorted({d for d, _ in hits.get(g[3], []) if d in DOMAINS})) + out.append((i, g[3], g[2], g[0], g[1], dom)) + return out + + +def do_lead(a): + import yaml + os.makedirs(a.out, exist_ok=True) + tmp = os.environ.get("SCRATCH", "/tmp") + fo = open(os.path.join(a.out, "lead_genes.tsv"), "w") + fs = open(os.path.join(a.out, "lead_summary.tsv"), "w") + fo.write("genome\tlocus\tgene_index\tgene\tstrand\tstart\tend\tdomain\tevidence\n") + fs.write("genome\tcontig\tmatMc_gene\tmatMc_domain\tmatPi_gene\tmatPi_domain\tgenes_between\tstrand_relation\n") + for line in open(a.genomes): + asm, _, name = line.rstrip("\n").partition("\t") + rep = os.path.join(a.runs, asm, "detection_report.yaml") + if not os.path.exists(rep): + continue + d = yaml.safe_load(open(rep)) + pm = [x for x in (d.get("detected") or []) if x["family"].endswith(":PM")] + if not pm: + continue + P = f"{ANN}/{name}/predict_results" + genes = read_gff_genes(f"{P}/{name}.gff3.gz") + hits = hmm_domains(f"{P}/{name}.proteins.fa.gz", a.hmm, tmp, "lead") + for li, locus in enumerate(pm): + contig = locus["contig"] + ev, idx = {}, [] + for e in locus["gene_evidence"]: + if e["gene"] in ("matMc", "matPi", "matMi"): + i, g = overlapping_gene(genes, contig, e["start"], e["end"]) + if g: + ev[e["gene"]] = (i, g, f"{e['identity']}% id, {e['coverage']}% cov") + idx.append(i) + if not idx: + continue + for r in layout_row(idx, genes[contig], hits, a.flank): + tag = ";".join(f"{k}:{v[2]}" for k, v in ev.items() if v[0] == r[0]) + fo.write(f"{name}\t{contig}#{li}\t{r[0]}\t{r[1]}\t{r[2]}\t{r[3]}\t{r[4]}\t{r[5]}\t{tag}\n") + + def dom(k): + return ",".join(sorted({x for x, _ in hits.get(ev[k][1][3], []) if x in DOMAINS})) if k in ev else "NA" + mc, pi = ev.get("matMc"), ev.get("matPi") + btw = rel = "NA" + if mc and pi and mc[0] != pi[0]: + btw = abs(mc[0] - pi[0]) - 1 + left, right = (mc, pi) if mc[0] < pi[0] else (pi, mc) + rel = {"+-": "convergent", "-+": "divergent"}.get(left[1][2] + right[1][2], "same") + elif mc and pi: + btw, rel = "same gene", "fused" + fs.write(f"{name}\t{contig}\t{mc[1][3] if mc else 'NA'}\t{dom('matMc')}\t{pi[1][3] if pi else 'NA'}\t{dom('matPi')}\t{btw}\t{rel}\n") + fo.close(); fs.close() + print(open(os.path.join(a.out, "lead_summary.tsv")).read()) + + +def do_scan(a): + os.makedirs(a.out, exist_ok=True) + tmp = os.environ.get("SCRATCH", "/tmp") + subprocess.run(["diamond", "makedb", "--in", a.controls, "-d", os.path.join(tmp, "ctl"), "--quiet"], check=True) + fg = open(os.path.join(a.out, "scan_genes.tsv"), "w") + fp = open(os.path.join(a.out, "scan_pairs.tsv"), "w") + fg.write("genome\tgene\tcontig\tindex\tstrand\tdomain\tbest_control\tcontrol_evalue\tcontrol_identity\n") + fp.write("genome\tgene_a\tgene_b\tcontig\tgenes_between\tstrand_relation\tdomains\n") + for line in open(a.genomes): + name = line.strip().split("\t")[-1] + if not name: + continue + P = f"{ANN}/{name}/predict_results" + genes = read_gff_genes(f"{P}/{name}.gff3.gz") + order = {} + for c, v in genes.items(): + for i, g in enumerate(v): + order[g[3]] = (c, i, g[2]) + hits = hmm_domains(f"{P}/{name}.proteins.fa.gz", a.hmm, tmp, "scan") + out = os.path.join(tmp, "dm.tsv") + subprocess.run(f"zcat -f {P}/{name}.proteins.fa.gz | diamond blastp -d {os.path.join(tmp, 'ctl')} -o {out} --quiet " + f"--max-target-seqs 1 -e 1e-3 --outfmt 6 qseqid sseqid evalue pident --threads 2 -q /dev/stdin", + shell=True, check=True) + best = {} + for l in open(out): + f = l.split("\t") + best.setdefault(re.sub(r"-T\d+$", "", f[0]), (f[1].split("|")[-1] if "name=" not in f[1] else re.search(r"name=([^|]+)", f[1]).group(1), f[2], f[3].strip())) + cand = [] + for g, hs in hits.items(): + dm = ",".join(sorted({d for d, _ in hs if d in DOMAINS})) + if dm and g in order: + b = best.get(g, ("", "", "")) + c, i, s = order[g] + cand.append((c, i, s, g, dm)) + fg.write(f"{name}\t{g}\t{c}\t{i}\t{s}\t{dm}\t{b[0]}\t{b[1]}\t{b[2]}\n") + for g in best: + if g in order and g not in {x[3] for x in cand}: + c, i, s = order[g] + fg.write(f"{name}\t{g}\t{c}\t{i}\t{s}\t\t{best[g][0]}\t{best[g][1]}\t{best[g][2]}\n") + cand.sort() + for x, y in zip(cand, cand[1:]): + if x[0] == y[0] and y[1] - x[1] <= a.near: + rel = {"+-": "convergent", "-+": "divergent"}.get(x[2] + y[2], "same") + fp.write(f"{name}\t{x[3]}\t{y[3]}\t{x[0]}\t{y[1] - x[1] - 1}\t{rel}\t{x[4]}|{y[4]}\n") + fg.close(); fp.close() + + +def main(): + ap = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter) + ap.add_argument("cmd", choices=["lead", "scan"]) + ap.add_argument("--runs") + ap.add_argument("--genomes", required=True, help="TSV: ASMIDannotation folder name") + ap.add_argument("--out", required=True) + ap.add_argument("--hmm", required=True) + ap.add_argument("--controls") + ap.add_argument("--flank", type=int, default=5) + ap.add_argument("--near", type=int, default=5) + a = ap.parse_args() + do_lead(a) if a.cmd == "lead" else do_scan(a) + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/scripts/pm_locus_models.py b/scripts/pm_locus_models.py new file mode 100644 index 00000000..c11f3545 --- /dev/null +++ b/scripts/pm_locus_models.py @@ -0,0 +1,155 @@ +#!/usr/bin/env python3 +"""Gene models and cross-genome orthology for HMG + homeodomain pairs (the PM-like locus). + +Read-only discovery tool. + +models : for each locus (TSV: name, genome fasta, contig, hd_start, hd_end), run exonerate protein2genome with the curated + matPi proteins in a window around the homeodomain-like region, keep the best-scoring model, build the CDS from the + exonerate `cds` features, translate it and run Pfam (HMG_box, HMG_box_2, Homeodomain, GA cutoff). + Output: models.tsv (name, contig, strand, cds_start, cds_end, exons, aa_len, score, query, domains) and models.faa. +orthology : from a FASTA of protein sets (id = genome|role|gene, role in HMG, HD, HMG_locus, HD_locus), diamond all-vs-all; + for each locus protein and each other genome, the best hit among that genome's proteins of the same domain class and + whether it is that genome's locus protein (reciprocal best hit). +Usage: pm_locus_models.py models --loci LOCI.tsv --queries Q.faa --hmm HMM --out OUT + pm_locus_models.py orthology --proteins ALL.faa --out OUT +""" +import argparse +import collections +import os +import subprocess +import sys + +sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) +from region_pfam_check import read_fasta_region, revcomp, translate # noqa: E402 + + +def parse_exonerate_gff(text): + """-> list of models; model = dict(score, query, strand, cds=[(start,end)], contig). Coordinates 1-based on the window.""" + models, cur = [], None + for line in text.splitlines(): + if line.startswith("# --- START OF GFF DUMP"): + cur = {"cds": [], "score": 0, "query": "", "strand": "+", "contig": ""} + elif line.startswith("# --- END OF GFF DUMP"): + if cur and cur["cds"]: + models.append(cur) + cur = None + elif cur is not None and not line.startswith("#"): + f = line.split("\t") + if len(f) < 9: + continue + if f[2] == "gene": + cur["score"] = float(f[5]) if f[5] != "." else 0 + cur["strand"] = f[6] + cur["contig"] = f[0] + for kv in f[8].split(";"): + kv = kv.strip() + if kv.startswith("sequence "): + cur["query"] = kv.split(" ", 1)[1] + elif f[2] == "cds": + cur["cds"].append((int(f[3]), int(f[4]))) + return models + + +def cds_protein(window_seq, cds, strand): + """Translate the concatenated CDS exons of a model. cds: list of (start,end) 1-based on window_seq.""" + parts = [window_seq[s - 1:e] for s, e in sorted(cds)] + dna = "".join(parts) + if strand == "-": + dna = revcomp(dna) + prot = translate(dna) + return prot.rstrip("*") + + +def do_models(a): + os.makedirs(a.out, exist_ok=True) + fo = open(os.path.join(a.out, "models.tsv"), "w") + fa = open(os.path.join(a.out, "models.faa"), "w") + fo.write("name\tcontig\tstrand\tcds_start\tcds_end\texons\taa_len\tscore\tquery\tdomains\n") + for line in open(a.loci): + name, fasta, contig, s, e = line.rstrip("\n").split("\t") + ws, we = max(1, int(s) - a.pad), int(e) + a.pad + seq = read_fasta_region(fasta, contig, ws, we) + win = os.path.join(a.tmp, "win.fa") + open(win, "w").write(f">{contig}\n{seq}\n") + out = subprocess.run(["exonerate", "--model", "protein2genome", "--query", a.queries, "--target", win, + "--showtargetgff", "yes", "--showalignment", "no", "--showvulgar", "no", "--bestn", "1", + "--percent", str(a.percent), "--exhaustive", "no"], capture_output=True, text=True).stdout + models = sorted(parse_exonerate_gff(out), key=lambda m: -m["score"]) + if not models: + fo.write(f"{name}\t{contig}\t\t\t\t\t\t\t\tno_model\n") + continue + m = models[0] + prot = cds_protein(seq, m["cds"], m["strand"]) + faa = os.path.join(a.tmp, "m.faa") + open(faa, "w").write(f">m\n{prot}\n") + tbl = os.path.join(a.tmp, "m.tbl") + subprocess.run(["hmmsearch", "--cut_ga", "--domtblout", tbl, "-o", "/dev/null", a.hmm, faa], check=True) + dom = sorted({l.split()[3] for l in open(tbl) if l[0] != "#"}) + starts = ws - 1 + min(x for x, _ in m["cds"]) + ends = ws - 1 + max(y for _, y in m["cds"]) + fo.write(f"{name}\t{contig}\t{m['strand']}\t{starts}\t{ends}\t{len(m['cds'])}\t{len(prot)}\t{m['score']}\t{m['query']}\t{','.join(dom) or 'none'}\n") + fa.write(f">{name}\n{prot}\n") + fo.close() + fa.close() + print(open(os.path.join(a.out, "models.tsv")).read()) + + +def do_orthology(a): + os.makedirs(a.out, exist_ok=True) + seqs, cur = {}, None + for line in open(a.proteins): + if line[0] == ">": + cur = line[1:].strip().split()[0] + seqs[cur] = [] + else: + seqs[cur].append(line.strip()) + meta = {k: k.split("|") for k in seqs} # genome, role, gene + db = os.path.join(a.tmp, "orth") + subprocess.run(["diamond", "makedb", "--in", a.proteins, "-d", db, "--quiet"], check=True) + tsv = os.path.join(a.tmp, "orth.tsv") + subprocess.run(["diamond", "blastp", "-q", a.proteins, "-d", db, "-o", tsv, "--ultra-sensitive", "-e", "1e-3", "--max-target-seqs", "500", + "--outfmt", "6", "qseqid", "sseqid", "pident", "length", "evalue", "bitscore", "--quiet"], check=True) + hits = collections.defaultdict(list) + for l in open(tsv): + q, s, p, n, ev, b = l.rstrip("\n").split("\t") + hits[q].append((float(b), s, float(p), int(n))) + cls = {"HMG_locus": "HMG", "HD_locus": "HD", "HMG": "HMG", "HD": "HD"} + fo = open(os.path.join(a.out, "orthology.tsv"), "w") + fo.write("locus_protein\tother_genome\tbest_hit\thit_is_locus_protein\tidentity\taligned_aa\treciprocal\n") + best = {} + for q in seqs: + for other in {m[0] for m in meta.values()}: + cand = [(b, s, p, n) for b, s, p, n in hits[q] if meta[s][0] == other and cls[meta[s][1]] == cls[meta[q][1]] and s != q] + best[(q, other)] = max(cand) if cand else None + for q, (g, role, gene) in meta.items(): + if not role.endswith("_locus"): + continue + for other in sorted({m[0] for m in meta.values()} - {g}): + b = best[(q, other)] + if not b: + fo.write(f"{q}\t{other}\tnone\t\t\t\t\n") + continue + s = b[1] + back = best[(s, g)] + fo.write(f"{q}\t{other}\t{s}\t{meta[s][1].endswith('_locus')}\t{b[2]}\t{b[3]}\t{bool(back and back[1] == q)}\n") + fo.close() + print(open(os.path.join(a.out, "orthology.tsv")).read()) + + +def main(): + ap = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter) + ap.add_argument("cmd", choices=["models", "orthology"]) + ap.add_argument("--loci") + ap.add_argument("--queries") + ap.add_argument("--hmm") + ap.add_argument("--proteins") + ap.add_argument("--out", required=True) + ap.add_argument("--pad", type=int, default=2500) + ap.add_argument("--percent", type=int, default=10) + ap.add_argument("--tmp", default=os.environ.get("SCRATCH", "/tmp")) + a = ap.parse_args() + do_models(a) if a.cmd == "models" else do_orthology(a) + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/scripts/region_pfam_check.py b/scripts/region_pfam_check.py new file mode 100644 index 00000000..6399d77f --- /dev/null +++ b/scripts/region_pfam_check.py @@ -0,0 +1,112 @@ +#!/usr/bin/env python3 +"""Six-frame translation of genome regions and a Pfam check (HMG_box, HMG_box_2, Homeodomain). + +Read-only discovery tool. Used for regions that a tblastn hit points to but that carry no gene model, to ask whether the +region encodes a homeodomain or HMG-box domain. + +Input --regions TSV: name, genome fasta, contig, start, end (1-based, inclusive) + --hmm HMM file with the Pfam models (GA cutoffs) +Method: the region is widened by --pad bp each side; all six frames are translated; stop-free stretches of at least + --min-aa residues are kept as ORFs (a spliced gene can be split over several ORFs; no intron model is used); + hmmsearch --cut_ga on the ORFs. +Output --out: region_pfam.tsv (name, region, orf_frame, orf_start, orf_end, aa_len, domain, evalue); orf_start/orf_end are + 1-based and inclusive on the forward strand of the contig +""" +import argparse +import os +import subprocess +import sys + +BASES = "TCAG" +AA = "FFLLSSSSYY**CC*WLLLLPPPPHHQQRRRRIIIMTTTTNNKKSSRRVVVVAAAADDEEGGGG" +CODON = {a + b + c: AA[16 * i + 4 * j + k] for i, a in enumerate(BASES) for j, b in enumerate(BASES) for k, c in enumerate(BASES)} +COMP = str.maketrans("ACGTacgtN", "TGCAtgcaN") + + +def revcomp(s): + return s.translate(COMP)[::-1] + + +def translate(seq): + return "".join(CODON.get(seq[i:i + 3].upper(), "X") for i in range(0, len(seq) - 2, 3)) + + +def orfs(seq, min_aa): + """Stop-free stretches of >= min_aa residues in the six frames. Returns (frame, start0, end0, aa). + Coordinates are 0-based on the forward strand of `seq`; frames 1-3 forward, -1..-3 reverse.""" + out = [] + n = len(seq) + for strand, s in ((1, seq), (-1, revcomp(seq))): + for f in range(3): + prot = translate(s[f:]) + pos = 0 + for chunk in prot.split("*"): + if len(chunk) >= min_aa: + a0 = f + pos * 3 + a1 = a0 + len(chunk) * 3 + if strand == 1: + out.append((f + 1, a0, a1, chunk)) + else: + out.append((-(f + 1), n - a1, n - a0, chunk)) + pos += len(chunk) + 1 + return out + + +def read_fasta_region(fa, contig, start, end): + """Sequence of contig[start-1:end] from a (plain or gz) FASTA, streamed.""" + import gzip + op = gzip.open if fa.endswith(".gz") else open + buf, on = [], False + with op(fa, "rt") as fh: + for line in fh: + if line.startswith(">"): + if on: + break + on = line[1:].split()[0] == contig + elif on: + buf.append(line.strip()) + return "".join(buf)[start - 1:end] + + +def main(): + ap = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter) + ap.add_argument("--regions", required=True) + ap.add_argument("--hmm", required=True) + ap.add_argument("--out", required=True) + ap.add_argument("--pad", type=int, default=600) + ap.add_argument("--min-aa", type=int, default=40) + ap.add_argument("--tmp", default=os.environ.get("SCRATCH", "/tmp")) + a = ap.parse_args() + os.makedirs(a.out, exist_ok=True) + fo = open(os.path.join(a.out, "region_pfam.tsv"), "w") + fo.write("name\tregion\torf_frame\torf_start\torf_end\taa_len\tdomain\tevalue\n") + for line in open(a.regions): + name, fa, contig, s, e = line.rstrip("\n").split("\t") + s, e = max(1, int(s) - a.pad), int(e) + a.pad + seq = read_fasta_region(fa, contig, s, e) + faa = os.path.join(a.tmp, "orfs.faa") + meta = {} + with open(faa, "w") as fh: + for i, (fr, o0, o1, prot) in enumerate(orfs(seq, a.min_aa)): + fh.write(f">o{i}\n{prot}\n") + meta[f"o{i}"] = (fr, s + o0, s + o1 - 1, len(prot)) # 1-based, inclusive + tbl = os.path.join(a.tmp, "orfs.tbl") + subprocess.run(["hmmsearch", "--cut_ga", "--domtblout", tbl, "-o", "/dev/null", a.hmm, faa], check=True) + hits = {} + for l in open(tbl): + if l[0] != "#": + f = l.split() + hits.setdefault(f[0], []).append((f[3], f[6])) + region = f"{contig}:{s}-{e}" + if not hits: + fo.write(f"{name}\t{region}\t\t\t\t\tnone\t\n") + for oid, hs in hits.items(): + fr, o0, o1, n = meta[oid] + for dom, ev in hs: + fo.write(f"{name}\t{region}\t{fr}\t{o0}\t{o1}\t{n}\t{dom}\t{ev}\n") + fo.close() + print(open(os.path.join(a.out, "region_pfam.tsv")).read()) + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/scripts/rnaseq_locus_expression.slurm b/scripts/rnaseq_locus_expression.slurm new file mode 100644 index 00000000..563d217e --- /dev/null +++ b/scripts/rnaseq_locus_expression.slurm @@ -0,0 +1,37 @@ +#!/usr/bin/bash -l +#SBATCH --job-name=rna-locus +#SBATCH --partition=epyc +#SBATCH --cpus-per-task=4 +#SBATCH --mem=24gb +#SBATCH --time=6:00:00 +#SBATCH --output=/bigdata/stajichlab/jstajich/projects/MATPredict/logs/rnalocus_%A_%a.log +# Map public RNA-seq to a genome and measure depth over annotated genes and over named loci. +# Env: SRC (worktree), OUT (folder), RUN (SRA accession; .sra already fetched under $OUT/sra/$RUN), ENA_COUNT (read pairs), +# NAME (label), FASTA, GFF3, LOCI (TSV: name chrom start end, 1-based inclusive; extra regions to report), REPORT (space-separated +# names to report: gene ids and loci names). +# Steps: fasterq-dump, read-count check against ENA (fail on mismatch), hisat2, samtools bedcov, locus_expression.py. +set -uo pipefail +: "${SRC:?}" "${OUT:?}" "${RUN:?}" "${ENA_COUNT:?}" "${NAME:?}" "${FASTA:?}" "${GFF3:?}" "${LOCI:?}" "${REPORT:?}" +module load sratoolkit/3.2.0 hisat2/2.2.1 samtools/1.22.1 +W="${SCRATCH:?}/rna_$NAME"; mkdir -p "$W" "$OUT/$NAME" +cd "$W" +fasterq-dump "$OUT/sra/$RUN/$RUN.sra" --split-files -e ${SLURM_CPUS_PER_TASK:-4} -O "$W" -t "$W" > fd.log 2>&1 || { echo "fasterq-dump failed"; tail -3 fd.log; exit 1; } +n1=$(( $(wc -l < "${RUN}_1.fastq") / 4 )); n2=$(( $(wc -l < "${RUN}_2.fastq") / 4 )) +echo "reads: mate1=$n1 mate2=$n2 ena=$ENA_COUNT" +if [[ "$n1" != "$ENA_COUNT" || "$n2" != "$ENA_COUNT" ]]; then echo "READ COUNT MISMATCH"; exit 1; fi +zcat -f "$FASTA" > genome.fa +hisat2-build -p ${SLURM_CPUS_PER_TASK:-4} genome.fa idx > hb.log 2>&1 +hisat2 -p ${SLURM_CPUS_PER_TASK:-4} --dta --max-intronlen 5000 -x idx -1 "${RUN}_1.fastq" -2 "${RUN}_2.fastq" 2> "$OUT/$NAME/hisat2.log" | samtools sort -@ ${SLURM_CPUS_PER_TASK:-4} -o "$NAME.bam" - +samtools index "$NAME.bam" +# BED of all genes (0-based start) plus the named loci +zcat -f "$GFF3" | awk -F'\t' '$3=="gene"{split($9,a,";"); id=a[1]; sub("ID=","",id); print $1"\t"$4-1"\t"$5"\t"id}' > regions.bed +awk -F'\t' '{print $2"\t"$3-1"\t"$4"\t"$1}' "$LOCI" >> regions.bed +samtools bedcov regions.bed "$NAME.bam" > bedcov.tsv +python3 "$SRC/scripts/locus_expression.py" --bedcov bedcov.tsv --report $REPORT --gene-prefix "${GENE_PREFIX:-}" --out "$OUT/$NAME/locus_expression.tsv" +# spliced reads over each named locus (CIGAR with N) +while IFS=$'\t' read -r lname chrom s e; do + tot=$(samtools view -c "$NAME.bam" "$chrom:$s-$e"); sp=$(samtools view "$NAME.bam" "$chrom:$s-$e" | awk '$6 ~ /N/' | wc -l) + echo -e "$lname\treads_overlapping=$tot\tspliced_reads=$sp" | tee -a "$OUT/$NAME/spliced.tsv" +done < "$LOCI" +cp "$NAME.bam" "$NAME.bam.bai" "$OUT/$NAME/" 2>/dev/null +echo done diff --git a/scripts/unannotated_genome_search.py b/scripts/unannotated_genome_search.py new file mode 100644 index 00000000..2106322c --- /dev/null +++ b/scripts/unannotated_genome_search.py @@ -0,0 +1,158 @@ +#!/usr/bin/env python3 +"""Annotation-free search for HMG-box and homeodomain regions in assemblies without gene models. + +Read-only discovery tool. For genomes that BFD did not annotate (fragmentary assemblies), a gene-order scan is not possible. This script +searches the assembly directly with tblastn and reports, per genome, the regions that match HMG-class and homeodomain-class controls and +the contigs that carry both within --pair-dist bp. + +Queries (FASTA headers): the class comes from the header. Two header styles are understood: + curated '>id|gene|class' (class sexM, sexP -> HMG; matMc, mat1-Mc, matMi... -> HMG; matPi, mat1-Pc, mat1-Pi, matPc -> HD) + free text containing 'hd1' or 'hd2' -> HD +Other classes (flank genes) are ignored. +Per genome (TSV: name, fasta): tblastn (E <= --evalue, SEG off); hits of one class on one contig closer than --merge bp are merged into +a region; a pair is an HMG region and an HD region on one contig with a gap <= --pair-dist bp. +Output (--out): regions.tsv (genome, class, contig, start, end, identity, evalue, bitscore) and summary.tsv (genome, contigs, bp, +hmg_regions, hd_regions, pairs, contigs_with_pair, longest_pair_contig_bp). +Limit: tblastn with controls from Mucoromycota and Taphrinomycotina finds HMG and homeodomain genes of any family; a pair in a short contig +is weak evidence (contigs are shorter than the pair distance), and no pair is not evidence of absence. +""" +import argparse +import collections +import gzip +import os +import re +import subprocess +import sys + +HMG = {"sexM", "sexP", "matMc", "mat1-Mc", "matMi", "mat1-Mi", "matMc|"} +HD = {"matPi", "mat1-Pc", "mat1-Pi", "matPc", "HD1", "HD2"} + + +def query_class(header): + """'HMG', 'HD' or None from a FASTA header (without '>').""" + h = header.strip() + low = h.lower() + if "|" in h: + tail = h.split("|")[-1].split()[0] + if "name=" in h: + for tok in h.split("|"): + if tok.startswith("name="): + tail = tok[5:] + if tail in HMG: + return "HMG" + if tail in HD: + return "HD" + return None + if "hd1" in low or "hd2" in low: + return "HD" + return None + + +def merge(hits, gap): + """hits: (contig, start, end, ident, evalue, bits) -> merged regions sorted by contig and start.""" + by = collections.defaultdict(list) + for c, s, e, p, ev, b in hits: + by[c].append((min(s, e), max(s, e), p, ev, b)) + out = [] + for c, v in by.items(): + v.sort() + cur = None + for s, e, p, ev, b in v: + if cur and s - cur[2] <= gap: + cur[2] = max(cur[2], e) + cur[3] = max(cur[3], p) + cur[4] = min(cur[4], ev) + cur[5] += b + else: + if cur: + out.append(tuple(cur)) + cur = [c, s, e, p, ev, b] + if cur: + out.append(tuple(cur)) + return sorted(out) + + +def pairs(hmg, hd, dist): + """(hmg_region, hd_region) with both on one contig and a gap <= dist.""" + out = [] + for a in hmg: + for b in hd: + if a[0] == b[0] and max(0, max(a[1], b[1]) - min(a[2], b[2])) <= dist: + out.append((a, b)) + return out + + +def main(): + ap = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter) + ap.add_argument("--genomes", required=True) + ap.add_argument("--queries", nargs="+", required=True, help="FASTA files; classes from headers") + ap.add_argument("--out", required=True) + ap.add_argument("--evalue", type=float, default=1e-5) + ap.add_argument("--merge", type=int, default=2000) + ap.add_argument("--pair-dist", type=int, default=20000) + ap.add_argument("--tmp", default=os.environ.get("SCRATCH", "/tmp")) + a = ap.parse_args() + os.makedirs(a.out, exist_ok=True) + qfa = {"HMG": os.path.join(a.tmp, "q_hmg.faa"), "HD": os.path.join(a.tmp, "q_hd.faa")} + handles = {k: open(v, "w") for k, v in qfa.items()} + counts = collections.Counter() + for path in a.queries: + cur, buf = None, [] + for line in open(path): + if line[0] == ">": + if cur: + handles[cur].write("".join(buf)) + counts[cur] += 1 + cls = query_class(line[1:]) + cur, buf = cls, ([line] if cls else []) + elif cur: + buf.append(line) + if cur: + handles[cur].write("".join(buf)) + counts[cur] += 1 + for h in handles.values(): + h.close() + print("queries:", dict(counts)) + fr = open(os.path.join(a.out, "regions.tsv"), "w") + fs = open(os.path.join(a.out, "summary.tsv"), "w") + fr.write("genome\tclass\tcontig\tstart\tend\tidentity\tevalue\tbitscore\n") + fs.write("genome\tcontigs\tbp\thmg_regions\thd_regions\tpairs\tcontigs_with_pair\tlongest_pair_contig_bp\n") + for line in open(a.genomes): + name, fasta = line.rstrip("\n").split("\t")[:2] + safe = re.sub(r"[^A-Za-z0-9_.-]", "_", name) # the label may hold '|' or spaces; file names must be shell-safe + genome = os.path.join(a.tmp, safe + ".fa") + subprocess.run(["bash", "-c", f"zcat -f \"$0\" > \"$1\"", fasta, genome], check=True) + db = os.path.join(a.tmp, "db_" + safe) + subprocess.run(["makeblastdb", "-in", genome, "-dbtype", "nucl", "-out", db, "-logfile", "/dev/null"], check=True) + lens, cur = {}, None + for l in open(genome): + if l[0] == ">": + cur = l[1:].split()[0] + lens[cur] = 0 + else: + lens[cur] += len(l.strip()) + regs = {} + for cls in ("HMG", "HD"): + out = os.path.join(a.tmp, safe + "." + cls + ".tb") + subprocess.run(["tblastn", "-query", qfa[cls], "-db", db, "-seg", "no", "-evalue", str(a.evalue), "-out", out, + "-outfmt", "6 sseqid sstart send pident evalue bitscore"], check=True) + hits = [] + for l in open(out): + c, s, e, p, ev, b = l.split("\t") + hits.append((c, int(s), int(e), float(p), float(ev), float(b))) + regs[cls] = merge(hits, a.merge) + for r in regs[cls]: + fr.write(f"{name}\t{cls}\t{r[0]}\t{r[1]}\t{r[2]}\t{r[3]}\t{r[4]}\t{r[5]}\n") + os.remove(out) + pr = pairs(regs["HMG"], regs["HD"], a.pair_dist) + pc = {p[0][0] for p in pr} + longest = max((lens[c] for c in pc), default=0) + fs.write(f"{name}\t{len(lens)}\t{sum(lens.values())}\t{len(regs['HMG'])}\t{len(regs['HD'])}\t{len(pr)}\t{len(pc)}\t{longest}\n") + os.remove(genome) + fr.close() + fs.close() + print(open(os.path.join(a.out, "summary.tsv")).read()) + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/tests/test_adjacent_pair_null.py b/tests/test_adjacent_pair_null.py new file mode 100644 index 00000000..48a6766e --- /dev/null +++ b/tests/test_adjacent_pair_null.py @@ -0,0 +1,49 @@ +"""Tests for scripts/adjacent_pair_null.py (pair helpers and the p-value logic on a toy lineage).""" +import importlib.util +import pathlib + +SCRIPTS = pathlib.Path(__file__).resolve().parents[1] / "scripts" +spec = importlib.util.spec_from_file_location("adjacent_pair_null", SCRIPTS / "adjacent_pair_null.py") +apn = importlib.util.module_from_spec(spec) +spec.loader.exec_module(apn) + + +def test_has_pair_window_and_contig(): + assert apn.has_pair([("c1", 10)], [("c1", 13)], 5, False) + assert not apn.has_pair([("c1", 10)], [("c1", 17)], 5, False) + assert not apn.has_pair([("c1", 10)], [("c2", 11)], 5, False) + + +def test_has_pair_same_gene_is_not_a_pair(): + assert not apn.has_pair([("c1", 10)], [("c1", 10)], 5, True) + assert apn.has_pair([("c1", 10), ("c1", 12)], [("c1", 10), ("c1", 12)], 5, True) + + +def test_pair_strands(): + a = [("c1", 10, "+")] + b = [("c1", 12, "+"), ("c1", 14, "-"), ("c1", 30, "+")] + assert apn.pair_strands(a, b, 5) == ["same", "opposite"] + + +def _write(tmp_path, name, genes, cands): + with open(tmp_path / f"{name}.genes_all.tsv", "w") as fo: + fo.write("gene\tcontig\tstart\tend\tstrand\tindex\n") + for i, g in enumerate(genes): + fo.write(f"{g}\tc1\t{i * 10}\t{i * 10 + 5}\t+\t{i}\n") + with open(tmp_path / f"{name}.candidates.tsv", "w") as fo: + fo.write("gene\tcontig\tindex\tpfam\tpfam_evalue\tcontrol_class\tcontrol_id\tcontrol_evalue\n") + for g, d in cands.items(): + fo.write(f"{g}\tc1\t0\t{d}\t1e-10\t\t\t\n") + + +def test_main_counts_observed_pair(tmp_path, monkeypatch, capsys): + genes = [f"g{i}" for i in range(200)] + _write(tmp_path, "G1", genes, {"g10": "HMG_box", "g12": "Homeodomain"}) + (tmp_path / "list.txt").write_text("G1\n") + out = tmp_path / "out.tsv" + monkeypatch.setattr("sys.argv", ["x", "--stage1", str(tmp_path), "--out", str(out), "--perms", "50", str(tmp_path / "list.txt") + ":L"]) + apn.main() + rows = {l.split("\t")[1]: l.split("\t") for l in out.read_text().splitlines()[1:]} + assert rows["HMG+Homeo"][3] == "1" # observed genomes + assert float(rows["HMG+Homeo"][4]) < 0.5 # a random pair in 200 genes is rare + assert rows["2xHomeo"][3] == "0" diff --git a/tests/test_flank_idiomorph_probe.py b/tests/test_flank_idiomorph_probe.py new file mode 100644 index 00000000..b5657294 --- /dev/null +++ b/tests/test_flank_idiomorph_probe.py @@ -0,0 +1,41 @@ +"""Tests for scripts/flank_idiomorph_probe.py (classify_gene).""" +import importlib.util +import pathlib + +SCRIPTS = pathlib.Path(__file__).resolve().parents[1] / "scripts" +spec = importlib.util.spec_from_file_location("flank_idiomorph_probe", SCRIPTS / "flank_idiomorph_probe.py") +fip = importlib.util.module_from_spec(spec) +spec.loader.exec_module(fip) + +# genome B: contig c1 genes b0..b29 at index 0..29 +IDX_B = {f"b{i}": ("c1", i) for i in range(30)} +FLANK = [f"a{i}" for i in range(1, 6)] +ORTH = {f"a{i}": f"b{10 + i}" for i in range(1, 6)} # flank maps to b11..b15 + + +def test_conserved_when_x_has_ortholog_in_region(): + orth = dict(ORTH, x="b12x") + idx = dict(IDX_B, b12x=("c1", 12)) + assert fip.classify_gene("x", FLANK, orth, idx, set(), 3, 25)[0] == "conserved" + + +def test_absent_when_region_has_no_domain_gene(): + assert fip.classify_gene("x", FLANK, ORTH, IDX_B, set(), 3, 25)[:2] == ("absent", 5) + + +def test_other_domain_when_region_has_unrelated_domain_gene(): + assert fip.classify_gene("x", FLANK, ORTH, IDX_B, {"b13"}, 3, 25)[0] == "other_domain" + + +def test_domain_gene_far_from_region_does_not_count(): + assert fip.classify_gene("x", FLANK, ORTH, IDX_B, {"b29"}, 3, 25)[0] == "absent" + + +def test_no_synteny_with_too_few_flank_hits(): + orth = {"a1": "b11", "a2": "b12"} + assert fip.classify_gene("x", FLANK, orth, IDX_B, set(), 3, 25)[0] == "no_synteny" + + +def test_flank_genes_split_over_contigs_are_not_one_block(): + idx = {f"b{i}": ("c1" if i < 12 else "c2", i) for i in range(30)} + assert fip.classify_gene("x", FLANK, ORTH, idx, set(), 5, 25)[0] == "no_synteny" diff --git a/tests/test_locus_expression.py b/tests/test_locus_expression.py new file mode 100644 index 00000000..2a08d63a --- /dev/null +++ b/tests/test_locus_expression.py @@ -0,0 +1,47 @@ +"""Tests for scripts/locus_expression.py.""" +import importlib.util +import pathlib + +SCRIPTS = pathlib.Path(__file__).resolve().parents[1] / "scripts" +spec = importlib.util.spec_from_file_location("locus_expression", SCRIPTS / "locus_expression.py") +le = importlib.util.module_from_spec(spec) +spec.loader.exec_module(le) + + +def test_parse_bedcov_mean_depth(tmp_path): + p = tmp_path / "b.tsv" + p.write_text("c1\t0\t1000\tg1\t5000\nc1\t2000\t2500\tg2\t0\n") + assert le.parse_bedcov(str(p)) == {"g1": (1000, 5.0), "g2": (500, 0.0)} + + +def test_percentile_of(): + assert le.percentile_of(5.0, [1.0, 2.0, 5.0, 9.0]) == 0.5 + assert le.percentile_of(0.0, [1.0, 2.0]) == 0.0 + + +def test_locus_transcripts_helpers(tmp_path): + spec2 = importlib.util.spec_from_file_location("locus_transcripts", SCRIPTS / "locus_transcripts.py") + lt = importlib.util.module_from_spec(spec2) + spec2.loader.exec_module(lt) + gtf = tmp_path / "x.gtf" + gtf.write_text('c1\tStringTie\ttranscript\t100\t500\t.\t-\t.\ttranscript_id "t1"; gene_id "g1";\n' + 'c1\tStringTie\texon\t100\t200\t.\t-\t.\ttranscript_id "t1"; gene_id "g1";\n' + 'c1\tStringTie\texon\t400\t500\t.\t-\t.\ttranscript_id "t1"; gene_id "g1";\n' + 'c2\tStringTie\texon\t1\t50\t.\t+\t.\ttranscript_id "t2"; gene_id "g2";\n') + r = lt.read_gtf_transcripts(str(gtf), "c1") + assert list(r) == ["t1"] and r["t1"]["strand"] == "-" and r["t1"]["exons"] == [(100, 200), (400, 500)] + assert lt.overlaps(r["t1"]["exons"], 450, 600) + assert not lt.overlaps(r["t1"]["exons"], 600, 700) + + +def test_strandedness_helpers(): + spec3 = importlib.util.spec_from_file_location("infer_strandedness", SCRIPTS / "infer_strandedness.py") + st = importlib.util.module_from_spec(spec3) + spec3.loader.exec_module(st) + assert st.classify(900, 100) == "forward-stranded" + assert st.classify(80, 920) == "reverse-stranded" + assert st.classify(520, 480) == "unstranded" + assert st.classify(0, 0) == "no_reads" + assert st.implied_strand(90, 10, "forward-stranded") == "+" + assert st.implied_strand(90, 10, "reverse-stranded") == "-" + assert st.implied_strand(90, 10, "unstranded") == "unknown" diff --git a/tests/test_pm_lead_followup.py b/tests/test_pm_lead_followup.py new file mode 100644 index 00000000..9bf506f0 --- /dev/null +++ b/tests/test_pm_lead_followup.py @@ -0,0 +1,49 @@ +"""Tests for scripts/pm_lead_followup.py (gene lookup and layout helpers).""" +import gzip +import importlib.util +import pathlib + +SCRIPTS = pathlib.Path(__file__).resolve().parents[1] / "scripts" +spec = importlib.util.spec_from_file_location("pm_lead_followup", SCRIPTS / "pm_lead_followup.py") +pm = importlib.util.module_from_spec(spec) +spec.loader.exec_module(pm) + +GENES = {"c1": [(100, 200, "+", "g1"), (300, 400, "-", "g2"), (500, 600, "+", "g3")]} + + +def test_overlapping_gene_picks_largest_overlap(): + assert pm.overlapping_gene(GENES, "c1", 350, 520)[1][3] == "g2" # 50 bp on g2, 21 bp on g3 + assert pm.overlapping_gene(GENES, "c1", 510, 700)[1][3] == "g3" + + +def test_overlapping_gene_none_when_no_overlap_or_contig(): + assert pm.overlapping_gene(GENES, "c1", 210, 290) == (None, None) + assert pm.overlapping_gene(GENES, "c9", 100, 200) == (None, None) + + +def test_read_gff_genes_sorted_and_gene_rows_only(tmp_path): + p = tmp_path / "x.gff3.gz" + with gzip.open(p, "wt") as fo: + fo.write("##gff-version 3\n") + fo.write("c1\tf\tgene\t300\t400\t.\t-\t.\tID=g2;Name=b\n") + fo.write("c1\tf\tmRNA\t300\t400\t.\t-\t.\tID=g2-T1\n") + fo.write("c1\tf\tgene\t100\t200\t.\t+\t.\tID=g1\n") + assert pm.read_gff_genes(str(p))["c1"] == [(100, 200, "+", "g1"), (300, 400, "-", "g2")] + + +def test_layout_row_flank_and_domains(): + hits = {"g2": [("HMG_box", 1e-9), ("Other", 1e-9)]} + rows = pm.layout_row([1], GENES["c1"], hits, 1) + assert [r[1] for r in rows] == ["g1", "g2", "g3"] + assert rows[1][5] == "HMG_box" + assert pm.layout_row([0], GENES["c1"], {}, 5)[0][0] == 0 # clipped at contig start + + +def test_augustus_proteins_blocks(tmp_path): + spec2 = importlib.util.spec_from_file_location("augustus_proteins", SCRIPTS / "augustus_proteins.py") + ap = importlib.util.module_from_spec(spec2) + spec2.loader.exec_module(ap) + lines = ["# start gene g1\n", "c1\tAUGUSTUS\tgene\t1\t90\t.\t+\t.\tID=g1\n", + "# protein sequence = [MKVL\n", "# AAGG]\n", "# end gene g1\n", + "# start gene g2\n", "# protein sequence = [MSS]\n", "# end gene g2\n"] + assert list(ap.proteins(lines)) == [("g1", "MKVLAAGG"), ("g2", "MSS")] diff --git a/tests/test_pm_locus_models.py b/tests/test_pm_locus_models.py new file mode 100644 index 00000000..09054e79 --- /dev/null +++ b/tests/test_pm_locus_models.py @@ -0,0 +1,45 @@ +"""Tests for scripts/pm_locus_models.py (exonerate GFF parsing and CDS translation).""" +import importlib.util +import pathlib + +SCRIPTS = pathlib.Path(__file__).resolve().parents[1] / "scripts" +import sys +sys.path.insert(0, str(SCRIPTS)) +spec = importlib.util.spec_from_file_location("pm_locus_models", SCRIPTS / "pm_locus_models.py") +pl = importlib.util.module_from_spec(spec) +spec.loader.exec_module(pl) + +GFF = """Command line: [exonerate ...] +# --- START OF GFF DUMP --- +# +w\texonerate:protein2genome:local\tgene\t11\t40\t394\t+\t.\tgene_id 0 ; sequence q1 ; gene_orientation + +w\texonerate:protein2genome:local\tcds\t11\t19\t.\t+\t.\t +w\texonerate:protein2genome:local\tcds\t31\t40\t.\t+\t.\t +# --- END OF GFF DUMP --- +# --- START OF GFF DUMP --- +w\texonerate:protein2genome:local\tgene\t1\t9\t100\t-\t.\tgene_id 0 ; sequence q2 ; gene_orientation - +w\texonerate:protein2genome:local\tcds\t1\t9\t.\t-\t.\t +# --- END OF GFF DUMP --- +""" + + +def test_parse_exonerate_gff_models(): + m = pl.parse_exonerate_gff(GFF) + assert len(m) == 2 + assert m[0]["score"] == 394.0 and m[0]["query"] == "q1" and m[0]["strand"] == "+" + assert m[0]["cds"] == [(11, 19), (31, 40)] + assert m[1]["strand"] == "-" and m[1]["cds"] == [(1, 9)] + + +def test_cds_protein_spliced_plus_strand(): + # exon 1 = ATGGCCAAA (window bases 11-19), an intron, exon 2 = TAA (bases 31-33): M A K stop + window = "N" * 10 + "ATGGCCAAA" + "GT" + "A" * 9 + "TAA" + "GGGCCCT" + assert window[30:33] == "TAA" + assert pl.cds_protein(window, [(11, 19), (31, 33)], "+") == "MAK" # the trailing stop is removed + + +def test_cds_protein_minus_strand(): + from region_pfam_check import revcomp + dna = "ATGGCCAAA" + window = "CC" + revcomp(dna) + "GG" + assert pl.cds_protein(window, [(3, 11)], "-") == "MAK" diff --git a/tests/test_region_pfam_check.py b/tests/test_region_pfam_check.py new file mode 100644 index 00000000..cbf0cbd7 --- /dev/null +++ b/tests/test_region_pfam_check.py @@ -0,0 +1,59 @@ +"""Tests for scripts/region_pfam_check.py (translation and ORF helpers) and scripts/matpi_tblastn.py (merge, distance).""" +import importlib.util +import pathlib + +SCRIPTS = pathlib.Path(__file__).resolve().parents[1] / "scripts" + + +def _load(name): + spec = importlib.util.spec_from_file_location(name, SCRIPTS / f"{name}.py") + mod = importlib.util.module_from_spec(spec) + spec.loader.exec_module(mod) + return mod + + +rp = _load("region_pfam_check") +mt = _load("matpi_tblastn") + + +def test_translate_and_revcomp(): + assert rp.translate("ATGGCCTAA") == "MA*" + assert rp.revcomp("AACG") == "CGTT" + + +def test_orfs_forward_and_reverse_coordinates(): + prot = "M" + "A" * 49 # 50 aa + dna = "ATG" + "GCC" * 49 + seq = "TT" + dna + "TAA" + "CC" + fw = [o for o in rp.orfs(seq, 40) if o[0] > 0] + assert any(len(o[3]) >= 50 and o[3].startswith("MAAA") for o in fw) + rc = rp.revcomp(seq) + rv = [o for o in rp.orfs(rc, 40) if o[0] < 0] + hit = [o for o in rv if len(o[3]) >= 50 and o[3].startswith("MAAA")][0] + # the ORF spans the same 150 bases of the reverse-complemented input: start0 .. end0 inside the sequence + assert 0 <= hit[1] < hit[2] <= len(rc) + assert hit[2] - hit[1] >= 150 + + +def test_orfs_min_length_filter(): + assert rp.orfs("ATGGCCTAA", 40) == [] + + +def test_merge_hits_and_distance(): + hits = [("c1", 100, 300, 50.0, 1e-10, 80.0), ("c1", 1000, 1200, 60.0, 1e-20, 90.0), ("c1", 9000, 9100, 40.0, 1e-5, 30.0), + ("c2", 500, 400, 45.0, 1e-8, 70.0)] + regs = mt.merge_hits(hits, 2000) + assert [(r["contig"], r["start"], r["end"]) for r in regs] == [("c1", 100, 1200), ("c2", 400, 500), ("c1", 9000, 9100)] + assert regs[0]["ident"] == 60.0 and regs[0]["bits"] == 170.0 + assert mt.distance(100, 200, 500, 600) == 300 + assert mt.distance(100, 700, 500, 600) == 0 + + +def test_orf_coordinates_roundtrip_reverse_strand(): + """The (start, end) of a reverse-strand ORF, 1-based inclusive, re-translates to the same protein.""" + dna = "ATG" + "GCC" * 49 + "TAA" + seq = "TT" + rp.revcomp(dna) + "CC" # the ORF is on the reverse strand + hit = [o for o in rp.orfs(seq, 40) if o[0] < 0 and o[3].startswith("MAAA")][0] + start1, end1 = 1 + hit[1], hit[2] # 0-based half-open -> 1-based inclusive + assert end1 - start1 + 1 == 3 * len(hit[3]) + assert rp.translate(rp.revcomp(seq[start1 - 1:end1])) == hit[3] diff --git a/tests/test_unannotated_genome_search.py b/tests/test_unannotated_genome_search.py new file mode 100644 index 00000000..413199e3 --- /dev/null +++ b/tests/test_unannotated_genome_search.py @@ -0,0 +1,35 @@ +"""Tests for scripts/unannotated_genome_search.py (query classes, region merging, pairing).""" +import importlib.util +import pathlib + +SCRIPTS = pathlib.Path(__file__).resolve().parents[1] / "scripts" +spec = importlib.util.spec_from_file_location("unannotated_genome_search", SCRIPTS / "unannotated_genome_search.py") +ug = importlib.util.module_from_spec(spec) +spec.loader.exec_module(ug) + + +def test_query_class_header_styles(): + assert ug.query_class("3231046_uomd23-19_MAT_Plus|gene1|sexP") == "HMG" + assert ug.query_class("4837_nrrl1555_MAT_Minus|gene1|sexM") == "HMG" + assert ug.query_class("5011_unknown-1_PM_combined|gene_index=1|name=matMc|role=core_MAT") == "HMG" + assert ug.query_class("5011_unknown-1_PM_combined|gene_index=0|name=matPi|role=core_MAT") == "HD" + assert ug.query_class("4896_972h_mat1_M|gene_index=2|name=mat1-Pc|role=core_MAT") == "HD" + assert ug.query_class("AMN92711.1 hd1-like protein [Rhizophagus irregularis]") == "HD" + assert ug.query_class("AMM63126.1 HD2 AMF mating type protein") == "HD" + assert ug.query_class("3108396_ai-2023a_MAT_Plus|gene1|tptA") is None + assert ug.query_class("AMM63120.1 choline transporter-like protein") is None + + +def test_merge_regions(): + hits = [("c1", 100, 300, 50.0, 1e-9, 60.0), ("c1", 1500, 1800, 60.0, 1e-20, 90.0), ("c1", 9000, 9100, 40.0, 1e-6, 30.0), + ("c2", 500, 400, 45.0, 1e-8, 70.0)] + reg = ug.merge(hits, 2000) + assert [(r[0], r[1], r[2]) for r in reg] == [("c1", 100, 1800), ("c1", 9000, 9100), ("c2", 400, 500)] + assert reg[0][3] == 60.0 and reg[0][5] == 150.0 + + +def test_pairs_distance_and_contig(): + hmg = [("c1", 100, 300, 50.0, 1e-9, 60.0), ("c2", 100, 300, 50.0, 1e-9, 60.0)] + hd = [("c1", 15000, 15500, 40.0, 1e-9, 50.0), ("c1", 90000, 90100, 40.0, 1e-9, 50.0), ("c3", 100, 200, 40.0, 1e-9, 50.0)] + assert ug.pairs(hmg, hd, 20000) == [(hmg[0], hd[0])] + assert ug.pairs(hmg, hd, 100) == []