«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: :???: :?: :!:

eleven + 5 =