# 11. Session info The versions this tutorial was run with. ## Python ```python import session_info2 session_info2.session_info(dependencies=True) ``` `scanpy` prints the same report via `sc.logging.print_header()`. | Package | Version | |---------|---------| | Python | 3.12.3 | | scanpy | 1.12 | | anndata | 0.12.19 | | numpy | 2.4.6 | | scipy | 1.18.0 | | pandas | 2.2.2 | | scikit-learn | 1.9.0 | | statsmodels | 0.14.6 | | matplotlib | 3.11.1 | | seaborn | 0.13.2 | | adjustText | 1.4.0 | | networkx | 3.6.1 | | python-igraph | 1.0.0 | | leidenalg | 0.12.0 | | liana | 1.8.1 | | decoupler | 2.2.0 | | intratalkerpy | `74fa5bb` | | pycrosstalker | `a057b01` | | deltacorrpy | `bb249bd` | The last three are installed from git, so they are pinned by commit rather than by version: ```bash pip install git+https://github.com/CostaLab/IntraTalkerpy.git@74fa5bb pip install git+https://github.com/CostaLab/pyCrossTalkeR.git@a057b01 pip install git+https://github.com/vckraemer/deltacorrpy.git@bb249bd ``` `deltacorrpy` is pulled in by `intratalkerpy`; it provides the partial correlation kernel that `project_perturbation_in_embedding` ([step 9](09_perturbation.md)) runs on. ## R The R half — the IntraTalker/CrossTalkeR integration of [step 4](04_intratalker_crosstalker.md) and the Sankey figures of [step 5](05_sankey_plots.md) — was run with: ```r sessionInfo() ``` | Package | Version | |---------|---------| | R | 4.6.0 (x86_64-pc-linux-gnu) | | Seurat | 5.5.0 | | SeuratObject | 5.4.0 | | CrossTalkeR | 2.0.0 | | LR2TF | 0.1.0 | | IntraTalker | 0.1.0 | | Matrix | 1.7.5 | | igraph | 2.3.1 | | ggraph | 2.2.2 | | ggplot2 | 4.0.3 | | ggalluvial | 0.12.6 | | dplyr | 1.2.1 | | tidyr | 1.3.2 | | scales | 1.4.0 | | colorspace | 2.1.2 | | colorBlindness | 0.1.9 | | oce | 1.8.3 | ## Randomness Everything that draws random numbers is seeded in the page where it runs: | Step | Seed | Fixes | |------|------|-------| | [Communication communities](06_communities.md) | `seed=12` | the Leiden partition and both spring layouts | | [KO simulations](09_perturbation.md) | `np.random.seed(15037)`, reset **inside** the receptor loop | the neighbour subsampling of the embedding projection | The MSC trajectory comes ready to use with the object of [step 8](08_trajectory.md), so the diffusion map and the pseudotime are the same on every run. The R half is deterministic given its input CSVs.