«Le mari parfait ? Quand une simple phrase fait chavirer un mariage devenu indifférent»

« 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: [![DOI:https://doi.org/10.5281/zenodo.8330085](https://zenodo.org/badge/DOI/10.5281/zenodo.8330085.svg)](https://doi.org/10.5281/zenodo.8330085)

Rate article
Add a comment

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

3 × five =

«Le mari parfait ? Quand une simple phrase fait chavirer un mariage devenu indifférent»
Un chien qui continue de dormir devant la porte de l’hôpital où son maître est décédé, sans comprendre pourquoi il ne revient plus.