« Le mari idéal ? Quand une simple phrase anéantit une union sans amour »
« Tu es lépoux parfait, Philippe » : comment ces mots ont brisé un mariage fondé sur l’indifférence
Camille entra dans lappartement, les bras chargés de sacs trop lourds. À peine avait-elle posé le pied sur le parquet quune voix retentit depuis le canapé :
Enfin ! Il est déjà huit heures ?
Il est neuf heures, répondit-elle, épuisée, en se dirigeant vers la cuisine.
Sur la table, trois tasses à café trahissaient une visite impromptue. Sa belle-mère était venue, sans doute avec sa cousine Math# prokaryotes
Prokaryotes project with David and Micah
## Workflow
1. We start with a list of KOs and species in `data/`
2. Run the jupyter notebook `scripts/get_tblastn_hits.ipynb` to search for the KOs against the species genomes.
3. Run the jupyter notebook `scripts/get_tblastn_hits.ipynb` to aggregate the top hits in each species for each KO.
4. Run the jupyter notebook `scripts/kos_of_interest.ipynb` to produce the final lists of validated KOs and species, and blast against UniProtKB/Swiss-Prot to get functional annotations.
5. Make the KO-phylogeny heatmap in `scripts/ko_heatmap.R`
## Re-running the analysis
Most of the data files are stored in compressed or binary form, but you can regenerate them as follows:
1. The KO and species lists are in `data/`
2. The BLAST databases must be manually downloaded (see `scripts/get_tblastn_hits.ipynb`)
3. The UniProtKB/Swiss-Prot database must be manually downloaded (see `scripts/kos_of_interest.ipynb`)
4. The outputs of `get_tblastn_hits.ipynb` are saved in `data/`, including compressed BLAST results (`hits/`), species taxonomy (`ncbi_taxonomy/`), and KO metadata (`ko00001.tsv`)
5. The outputs of `compile_blast_hits.ipynb` are saved in `data/compiled_hits/`
6. The outputs of `kos_of_interest.ipynb` are saved in `kos/` and the Swiss-Prot annotations in `uniprot/`
The entire analysis can be run from top to bottom by executing the notebooks in order. The first notebook (`get_tblastn_hits.ipynb`) can be optionally skipped if you download the precomputed results from Zenodo (see below).
## Re-using this repo for your own project
### Input files
1. Edit `data/ko_list.txt` to contain the KOs you’re interested in, one per line.
2. Edit `data/species_list.txt` to contain the species (either binomial name, strain, or assembly accession) you’re interested in, one per line.
### Dependencies
1. Ensure you have `python3` and the following packages: `pandas numpy biopython requests scipy matplotlib seaborn tqdm`. The easiest way to do this is to install [Anaconda](https://www.anaconda.com/products/distribution).
2. Ensure you have `blast` installed and in your path. The easiest way is via conda: `conda install -c bioconda blast`
3. Ensure you have `R` installed. The easiest way is via conda: `conda install -c conda-forge r-base`
4. For the heatmap, you will need the R packages `pheatmap`, `ape`, `phytools`, `dplyr`, `tidyr`, and `stringr`. These can be installed with `install.packages(c(“pheatmap”, “ape”, “phytools”, “dplyr”, “tidyr”, “stringr”))` in R.
### Running the analysis
1. Run the notebooks in order: `get_tblastn_hits.ipynb`, `compile_blast_hits.ipynb`, `kos_of_interest.ipynb`.
2. Run the R script `scripts/ko_heatmap.R` to generate the heatmap.
## What do all these output files mean?
### `data/ko00001.tsv`
Contains metadata about all KOs and their pathways, downloaded from KEGG.
### `data/ncbi_taxonomy/nodes.dmp` and `names.dmp`
Taxonomy information downloaded from NCBI, used to map species names to their taxonomy.
### `data/hits/[KO]/[species].hits` (gzipped)
Raw BLAST output for each KO against each species genome.
### `data/compiled_hits/[KO].hits.tsv`
Compiled BLAST hits for each KO across all species. Each row is a hit, with columns for the species, bitscore, evalue, KO, and hit sequence.
### `data/compiled_hits/ko_stats.tsv`
Summarizes the best BLAST hit for each KO in each species (the best hit above the bitscore threshold, as described in the paper).
### `uniprot/[KO].hits.xml`
Results from BLASTing the sequence of the representative hit for each KO (across all species) against Swiss-Prot.
### `kos/ko_info.tsv`
Information about the final KOs (KEGG metadata and Swiss-Prot annotations).
### `kos/species_info.tsv`
Contains species names and the KOs for which BLAST hits were found.
### `kos/core_kos.txt`
List of KOs that were found in all species, as in Fig. S4.
### `kos/multi_kos.txt`
List of KOs that were found in multiple species, but not all, as in Fig. S4.
### `kos/uniq_kos.txt`
List of KOs that were found in only one species, as in Fig. S4.
## Precomputed results
The BLAST hits and Swiss-Prot annotations can be downloaded from Zenodo at the following link: [](https://doi.org/10.5281/zenodo.8330085)







