From f858c68e70146886aaa65bf4a842b9f51fbbd2eb Mon Sep 17 00:00:00 2001 From: Jayaram Kancherla Date: Wed, 17 Jul 2024 14:07:38 -0700 Subject: [PATCH] Add section on how to run the notebooks --- .gitignore | 4 +- README.md | 4 +- _quarto.yml | 40 +------- assets/colab_open_notebook.png | Bin 0 -> 40797 bytes assets/colab_session.png | Bin 0 -> 76037 bytes howto.qmd | 39 ++++++++ index.qmd | 3 +- notebook/genomic_ranges.ipynb | 177 +++------------------------------ tutorials/genomic_ranges.qmd | 2 +- 9 files changed, 63 insertions(+), 206 deletions(-) create mode 100644 assets/colab_open_notebook.png create mode 100644 assets/colab_session.png create mode 100644 howto.qmd diff --git a/.gitignore b/.gitignore index 324eab1..a5d65e8 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,6 @@ chapters/zilinois_lung_with_celltypist/ *.tiledb *_cache *_files -tutorials/cache/*`` \ No newline at end of file +tutorials/cache/*`` +cache/ +.ipynb_checkpoints \ No newline at end of file diff --git a/README.md b/README.md index ec4d43f..c3a42ea 100644 --- a/README.md +++ b/README.md @@ -9,14 +9,14 @@ To get started locally, follow these steps: - Install [quarto-cli](https://quarto.org/docs/get-started/). - Install the necessary packages listed in [requirements.txt](./requirements.txt) and [rpackages.R](rpackages.R). -```shell +```sh pip install -r requirements.txt Rscript rpackages.R ``` - Run quarto preview to view the HTML version of the site. -```shell +```sh qurto preview ``` diff --git a/_quarto.yml b/_quarto.yml index 4ce5d5c..87bda12 100644 --- a/_quarto.yml +++ b/_quarto.yml @@ -18,6 +18,7 @@ website: logo: ./assets/logo.png contents: - index.qmd + - howto.qmd - section: "Tutorials" contents: - tutorials/genomic_ranges.qmd @@ -30,46 +31,9 @@ website: center: - text: "(c) Jayaram Kancherla & Aaron Lun." - # navbar: - # left: - # - href: index.qmd - # text: Home - # - tutorials/annotate_cell_types.qmd - # - tutorials/sessioninfo - -# book: -# title: "Bioc2024: Interoperability between R and Python using BiocPy" -# author: "[Jayaram Kancherla](mailto:jayaram.kancherla@gmail.com)" -# contributor: "[Aaron Lun](mailto:infinite.monkeys.with.keys@gmail.com)" -# favicon: ./assets/short.png -# site-url: https://biocpy.github.io/tutorial -# date: "5/31/2024" -# search: true -# repo-url: https://github.com/BiocPy/tutorial -# repo-actions: [issue] -# # downloads: [pdf, epub] -# sharing: [twitter] -# twitter-card: true -# cover-image: ./assets/full.png -# page-footer: -# center: -# - text: "(c) BiocPy core contributors" -# # href: chapters/summary.qmd -# sidebar: -# style: docked -# background: light -# chapters: -# - index.qmd -# - tutorials/annotate_cell_types.qmd -# - tutorials/sessioninfo.qmd -# # - chapters/references.qmd - format: html: theme: sandstone number-sections: false code-link: true - toc: true - # pdf: - # keep-tex: true - # documentclass: scrreprt \ No newline at end of file + toc: true \ No newline at end of file diff --git a/assets/colab_open_notebook.png b/assets/colab_open_notebook.png new file mode 100644 index 0000000000000000000000000000000000000000..913553c2df2c10380c0ad2019490e224f3f0c497 GIT binary patch literal 40797 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 IZ2ac`0mekvkN^Mx literal 0 HcmV?d00001 diff --git a/assets/colab_session.png b/assets/colab_session.png new file mode 100644 index 0000000000000000000000000000000000000000..f77f44a16584bffcf89b226b8b4b85dd558fd853 GIT binary patch literal 76037 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

%|EQ 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%0D6m2dejwKgZLbgG^N+PF9dMX1MZURHJy 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 literal 0 HcmV?d00001 diff --git a/howto.qmd b/howto.qmd new file mode 100644 index 0000000..8ee7659 --- /dev/null +++ b/howto.qmd @@ -0,0 +1,39 @@ +# How to run the notebooks + +## Option 1: Run notebooks locally + +If you want to run locally, please clone the repository and install the python packages used for the workshop. + +```sh +git clone https://github.com/BiocPy/BiocWorkshop2024 +cd BiocWorkshop2024 + +# Assuming python is available +# You are free to use mamba, conda or virtualenv's +pip install -r requirements.txt + +# Start the jupyter server +jupyter lab +``` + +Then checkout the [notebook](https://github.com/BiocPy/BiocWorkshop2024/tree/master/notebook) directory that contain Jupyter notebooks. + +## Option 2: Using Google colab + +To open the session in Google colab + +1. Open [Google colab](https://colab.research.google.com/) in a new tab. +2. On the page, It should open up a dialog to "Open notebook" as shown in the screenshot below. If not, go to file -> Open Notebook from the menu in the top left. +3. Choose Github and enter the repository url for the workshop: `https://github.com/BiocPy/BiocWorkshop2024`. This will automatically find the python notebooks available in the repository. + +![](./assets/colab_session.png) + +4. Choose the open icon to explore this notebook + +![](./assets/colab_open_notebook.png) + +:::{.callout-important} +This process does not download the [RDS file](https://github.com/BiocPy/BiocWorkshop2024/tree/master/notebook) available in the repository. Folks might have to manually download this to their colab sessions. +::: + +and thats it! \ No newline at end of file diff --git a/index.qmd b/index.qmd index c01ef94..4020a8c 100644 --- a/index.qmd +++ b/index.qmd @@ -18,7 +18,6 @@ on [GitHub](https://github.com/BiocPy). ![](./assets/workshop.png) - ### Core contributors - [Jayaram Kancherla](https://github.com/jkanche) @@ -33,4 +32,4 @@ We are looking for more contributions from the community to improve our packages ## Developer notes -This is a reproducible Quarto book with reusable snippets. To learn more about Quarto books visit . Check out [sessioninfo](./tutorials/sessioninfo.qmd) for more information. \ No newline at end of file +This is a reproducible Quarto book with reusable snippets. Check out [sessioninfo](./tutorials/sessioninfo.qmd) for packages installed during the build. \ No newline at end of file diff --git a/notebook/genomic_ranges.ipynb b/notebook/genomic_ranges.ipynb index 3de0524..b14264e 100644 --- a/notebook/genomic_ranges.ipynb +++ b/notebook/genomic_ranges.ipynb @@ -41,175 +41,28 @@ ] }, { - "cell_type": "code", - "execution_count": 22, + "cell_type": "markdown", "metadata": { "scrolled": true }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Requirement already satisfied: biocutils in /Users/kancherj/miniforge3/lib/python3.10/site-packages (0.1.5)\n", - "Requirement already satisfied: genomicranges in /Users/kancherj/miniforge3/lib/python3.10/site-packages (0.4.28)\n", - "Requirement already satisfied: rds2py in /Users/kancherj/miniforge3/lib/python3.10/site-packages (0.4.4)\n", - "Requirement already satisfied: numpy in /Users/kancherj/miniforge3/lib/python3.10/site-packages (1.26.4)\n", - "Collecting numpy\n", - " Using cached numpy-2.0.0-cp310-cp310-macosx_14_0_arm64.whl.metadata (60 kB)\n", - "Requirement already satisfied: pandas in /Users/kancherj/miniforge3/lib/python3.10/site-packages (2.2.2)\n", - "Requirement already satisfied: geniml in /Users/kancherj/miniforge3/lib/python3.10/site-packages (0.4.0)\n", - "Requirement already satisfied: biocframe>=0.5.11 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from genomicranges) (0.5.11)\n", - "Requirement already satisfied: iranges>=0.2.11 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from iranges[optional]>=0.2.11->genomicranges) (0.2.11)\n", - "Requirement already satisfied: Cython in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from rds2py) (3.0.10)\n", - "Requirement already satisfied: scipy in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from rds2py) (1.12.0)\n", - "Requirement already satisfied: singlecellexperiment>=0.4.1 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from rds2py) (0.4.6)\n", - "Requirement already satisfied: summarizedexperiment>=0.4.1 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from rds2py) (0.4.5)\n", - "Requirement already satisfied: python-dateutil>=2.8.2 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from pandas) (2.9.0.post0)\n", - "Requirement already satisfied: pytz>=2020.1 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from pandas) (2024.1)\n", - "Requirement already satisfied: tzdata>=2022.7 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from pandas) (2024.1)\n", - "Requirement already satisfied: anndata>0.9.0 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from geniml) (0.10.8)\n", - "Requirement already satisfied: genimtools>=0.0.12 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from geniml) (0.0.13)\n", - "Requirement already satisfied: fastembed>=0.2.5 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from geniml) (0.3.4)\n", - "Requirement already satisfied: gensim in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from geniml) (4.3.2)\n", - "Requirement already satisfied: huggingface-hub in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from geniml) (0.23.5)\n", - "Requirement already satisfied: logmuse in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from geniml) (0.2.8)\n", - "Requirement already satisfied: matplotlib in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from geniml) (3.8.3)\n", - "Requirement already satisfied: hnswlib in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from geniml) (0.8.0)\n", - "Requirement already satisfied: paramiko>=3.0.0 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from geniml) (3.4.0)\n", - "Requirement already satisfied: peppy>=0.40.1 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from geniml) (0.40.3)\n", - "Requirement already satisfied: pyBigWig in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from geniml) (0.3.23)\n", - "Requirement already satisfied: qdrant-client in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from geniml) (1.10.1)\n", - "Requirement already satisfied: requests>=2.31.0 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from geniml) (2.31.0)\n", - "Requirement already satisfied: scanpy in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from geniml) (1.10.2)\n", - "Requirement already satisfied: seaborn in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from geniml) (0.13.2)\n", - "Requirement already satisfied: torch in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from geniml) (2.3.1)\n", - "Requirement already satisfied: ubiquerg>=0.6.3 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from geniml) (0.8.0)\n", - "Requirement already satisfied: pyarrow in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from geniml) (15.0.2)\n", - "Requirement already satisfied: lightning in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from geniml) (2.3.3)\n", - "Requirement already satisfied: langchain-huggingface==0.0.2 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from geniml) (0.0.2)\n", - "Requirement already satisfied: botocore>=1.34.54 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from geniml) (1.34.131)\n", - "Requirement already satisfied: boto3>=1.34.54 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from geniml) (1.34.131)\n", - "Requirement already satisfied: pybiocfilecache>=0.4.0 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from geniml) (0.4.0)\n", - "Requirement already satisfied: zarr>=2.17.2 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from geniml) (2.18.2)\n", - "Requirement already satisfied: pyyaml>=6.0.1 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from geniml) (6.0.1)\n", - "Requirement already satisfied: s3fs>=2024.3.1 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from geniml) (2024.6.1)\n", - "Requirement already satisfied: langchain-core<0.3,>=0.1.52 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from langchain-huggingface==0.0.2->geniml) (0.2.20)\n", - "Requirement already satisfied: sentence-transformers>=2.6.0 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from langchain-huggingface==0.0.2->geniml) (3.0.1)\n", - "Requirement already satisfied: text-generation<0.8.0,>=0.7.0 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from langchain-huggingface==0.0.2->geniml) (0.7.0)\n", - "Requirement already satisfied: tokenizers>=0.19.1 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from langchain-huggingface==0.0.2->geniml) (0.19.1)\n", - "Requirement already satisfied: transformers>=4.39.0 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from langchain-huggingface==0.0.2->geniml) (4.42.4)\n", - "Requirement already satisfied: array-api-compat!=1.5,>1.4 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from anndata>0.9.0->geniml) (1.7.1)\n", - "Requirement already satisfied: exceptiongroup in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from anndata>0.9.0->geniml) (1.2.1)\n", - "Requirement already satisfied: h5py>=3.1 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from anndata>0.9.0->geniml) (3.11.0)\n", - "Requirement already satisfied: natsort in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from anndata>0.9.0->geniml) (8.4.0)\n", - "Requirement already satisfied: packaging>=20.0 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from anndata>0.9.0->geniml) (23.2)\n", - "Requirement already satisfied: jmespath<2.0.0,>=0.7.1 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from boto3>=1.34.54->geniml) (1.0.1)\n", - "Requirement already satisfied: s3transfer<0.11.0,>=0.10.0 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from boto3>=1.34.54->geniml) (0.10.2)\n", - "Requirement already satisfied: urllib3!=2.2.0,<3,>=1.25.4 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from botocore>=1.34.54->geniml) (2.2.1)\n", - "Requirement already satisfied: PyStemmer<3.0.0,>=2.2.0 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from fastembed>=0.2.5->geniml) (2.2.0.1)\n", - "Requirement already satisfied: loguru<0.8.0,>=0.7.2 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from fastembed>=0.2.5->geniml) (0.7.2)\n", - "Requirement already satisfied: mmh3<5.0,>=4.0 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from fastembed>=0.2.5->geniml) (4.1.0)\n", - "Requirement already satisfied: onnx<2.0.0,>=1.15.0 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from fastembed>=0.2.5->geniml) (1.16.1)\n", - "Requirement already satisfied: onnxruntime<2.0.0,>=1.17.0 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from fastembed>=0.2.5->geniml) (1.18.1)\n", - "Requirement already satisfied: pillow<11.0.0,>=10.3.0 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from fastembed>=0.2.5->geniml) (10.4.0)\n", - "Requirement already satisfied: snowballstemmer<3.0.0,>=2.2.0 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from fastembed>=0.2.5->geniml) (2.2.0)\n", - "Requirement already satisfied: tqdm<5.0,>=4.66 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from fastembed>=0.2.5->geniml) (4.66.2)\n", - "Requirement already satisfied: filelock in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from huggingface-hub->geniml) (3.15.4)\n", - "Requirement already satisfied: fsspec>=2023.5.0 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from huggingface-hub->geniml) (2024.6.1)\n", - "Requirement already satisfied: typing-extensions>=3.7.4.3 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from huggingface-hub->geniml) (4.10.0)\n", - "Requirement already satisfied: ncls==0.0.68 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from iranges>=0.2.11->iranges[optional]>=0.2.11->genomicranges) (0.0.68)\n", - "Requirement already satisfied: polars in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from iranges[optional]>=0.2.11->genomicranges) (1.1.0)\n", - "Requirement already satisfied: bcrypt>=3.2 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from paramiko>=3.0.0->geniml) (4.1.3)\n", - "Requirement already satisfied: cryptography>=3.3 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from paramiko>=3.0.0->geniml) (42.0.8)\n", - "Requirement already satisfied: pynacl>=1.5 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from paramiko>=3.0.0->geniml) (1.5.0)\n", - "Requirement already satisfied: rich>=10.3.0 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from peppy>=0.40.1->geniml) (13.7.1)\n", - "Requirement already satisfied: pephubclient>=0.4.2 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from peppy>=0.40.1->geniml) (0.4.2)\n", - "Requirement already satisfied: sqlalchemy<2.1,>=2 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from pybiocfilecache>=0.4.0->geniml) (2.0.31)\n", - "Requirement already satisfied: six>=1.5 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from python-dateutil>=2.8.2->pandas) (1.16.0)\n", - "Requirement already satisfied: charset-normalizer<4,>=2 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from requests>=2.31.0->geniml) (3.3.2)\n", - "Requirement already satisfied: idna<4,>=2.5 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from requests>=2.31.0->geniml) (3.6)\n", - "Requirement already satisfied: certifi>=2017.4.17 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from requests>=2.31.0->geniml) (2024.2.2)\n", - "Requirement already satisfied: aiobotocore<3.0.0,>=2.5.4 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from s3fs>=2024.3.1->geniml) (2.13.1)\n", - "Requirement already satisfied: aiohttp!=4.0.0a0,!=4.0.0a1 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from s3fs>=2024.3.1->geniml) (3.9.5)\n", - "Requirement already satisfied: asciitree in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from zarr>=2.17.2->geniml) (0.3.3)\n", - "Requirement already satisfied: numcodecs>=0.10.0 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from zarr>=2.17.2->geniml) (0.13.0)\n", - "Requirement already satisfied: fasteners in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from zarr>=2.17.2->geniml) (0.19)\n", - "Requirement already satisfied: smart-open>=1.8.1 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from gensim->geniml) (7.0.4)\n", - "Requirement already satisfied: lightning-utilities<2.0,>=0.10.0 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from lightning->geniml) (0.11.5)\n", - "Requirement already satisfied: torchmetrics<3.0,>=0.7.0 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from lightning->geniml) (1.4.0.post0)\n", - "Requirement already satisfied: pytorch-lightning in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from lightning->geniml) (2.3.3)\n", - "Requirement already satisfied: sympy in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from torch->geniml) (1.13.0)\n", - "Requirement already satisfied: networkx in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from torch->geniml) (3.3)\n", - "Requirement already satisfied: jinja2 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from torch->geniml) (3.1.3)\n", - "Requirement already satisfied: setuptools in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from logmuse->geniml) (69.2.0)\n", - "Requirement already satisfied: contourpy>=1.0.1 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from matplotlib->geniml) (1.2.0)\n", - "Requirement already satisfied: cycler>=0.10 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from matplotlib->geniml) (0.12.1)\n", - "Requirement already satisfied: fonttools>=4.22.0 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from matplotlib->geniml) (4.50.0)\n", - "Requirement already satisfied: kiwisolver>=1.3.1 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from matplotlib->geniml) (1.4.5)\n", - "Requirement already satisfied: pyparsing>=2.3.1 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from matplotlib->geniml) (3.1.2)\n", - "Requirement already satisfied: grpcio>=1.41.0 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from qdrant-client->geniml) (1.64.1)\n", - "Requirement already satisfied: grpcio-tools>=1.41.0 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from qdrant-client->geniml) (1.64.1)\n", - "Requirement already satisfied: httpx>=0.20.0 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from httpx[http2]>=0.20.0->qdrant-client->geniml) (0.27.0)\n", - "Requirement already satisfied: portalocker<3.0.0,>=2.7.0 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from qdrant-client->geniml) (2.10.1)\n", - "Requirement already satisfied: pydantic>=1.10.8 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from qdrant-client->geniml) (2.8.2)\n", - "Requirement already satisfied: joblib in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from scanpy->geniml) (1.4.2)\n", - "Requirement already satisfied: legacy-api-wrap>=1.4 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from scanpy->geniml) (1.4)\n", - "Requirement already satisfied: numba>=0.56 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from scanpy->geniml) (0.60.0)\n", - "Requirement already satisfied: patsy in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from scanpy->geniml) (0.5.6)\n", - "Requirement already satisfied: pynndescent>=0.5 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from scanpy->geniml) (0.5.13)\n", - "Requirement already satisfied: scikit-learn>=0.24 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from scanpy->geniml) (1.5.1)\n", - "Requirement already satisfied: session-info in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from scanpy->geniml) (1.0.0)\n", - "Requirement already satisfied: statsmodels>=0.13 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from scanpy->geniml) (0.14.2)\n", - "Requirement already satisfied: umap-learn!=0.5.0,>=0.5 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from scanpy->geniml) (0.5.6)\n", - "Requirement already satisfied: wrapt<2.0.0,>=1.10.10 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from aiobotocore<3.0.0,>=2.5.4->s3fs>=2024.3.1->geniml) (1.16.0)\n", - "Requirement already satisfied: aioitertools<1.0.0,>=0.5.1 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from aiobotocore<3.0.0,>=2.5.4->s3fs>=2024.3.1->geniml) (0.11.0)\n", - "Requirement already satisfied: aiosignal>=1.1.2 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->s3fs>=2024.3.1->geniml) (1.3.1)\n", - "Requirement already satisfied: attrs>=17.3.0 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->s3fs>=2024.3.1->geniml) (23.2.0)\n", - "Requirement already satisfied: frozenlist>=1.1.1 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->s3fs>=2024.3.1->geniml) (1.4.1)\n", - "Requirement already satisfied: multidict<7.0,>=4.5 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->s3fs>=2024.3.1->geniml) (6.0.5)\n", - "Requirement already satisfied: yarl<2.0,>=1.0 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->s3fs>=2024.3.1->geniml) (1.9.4)\n", - "Requirement already satisfied: async-timeout<5.0,>=4.0 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->s3fs>=2024.3.1->geniml) (4.0.3)\n", - "Requirement already satisfied: cffi>=1.12 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from cryptography>=3.3->paramiko>=3.0.0->geniml) (1.16.0)\n", - "Requirement already satisfied: protobuf<6.0dev,>=5.26.1 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from grpcio-tools>=1.41.0->qdrant-client->geniml) (5.27.2)\n", - "Requirement already satisfied: anyio in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from httpx>=0.20.0->httpx[http2]>=0.20.0->qdrant-client->geniml) (4.4.0)\n", - "Requirement already satisfied: httpcore==1.* in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from httpx>=0.20.0->httpx[http2]>=0.20.0->qdrant-client->geniml) (1.0.5)\n", - "Requirement already satisfied: sniffio in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from httpx>=0.20.0->httpx[http2]>=0.20.0->qdrant-client->geniml) (1.3.1)\n", - "Requirement already satisfied: h11<0.15,>=0.13 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from httpcore==1.*->httpx>=0.20.0->httpx[http2]>=0.20.0->qdrant-client->geniml) (0.14.0)\n", - "Requirement already satisfied: h2<5,>=3 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from httpx[http2]>=0.20.0->qdrant-client->geniml) (4.1.0)\n", - "Requirement already satisfied: jsonpatch<2.0,>=1.33 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from langchain-core<0.3,>=0.1.52->langchain-huggingface==0.0.2->geniml) (1.33)\n", - "Requirement already satisfied: langsmith<0.2.0,>=0.1.75 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from langchain-core<0.3,>=0.1.52->langchain-huggingface==0.0.2->geniml) (0.1.88)\n", - "Requirement already satisfied: tenacity!=8.4.0,<9.0.0,>=8.1.0 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from langchain-core<0.3,>=0.1.52->langchain-huggingface==0.0.2->geniml) (8.2.3)\n", - "Requirement already satisfied: llvmlite<0.44,>=0.43.0dev0 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from numba>=0.56->scanpy->geniml) (0.43.0)\n", - "Requirement already satisfied: coloredlogs in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from onnxruntime<2.0.0,>=1.17.0->fastembed>=0.2.5->geniml) (15.0.1)\n", - "Requirement already satisfied: flatbuffers in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from onnxruntime<2.0.0,>=1.17.0->fastembed>=0.2.5->geniml) (24.3.25)\n", - "Requirement already satisfied: typer>=0.7.0 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from pephubclient>=0.4.2->peppy>=0.40.1->geniml) (0.12.3)\n", - "Requirement already satisfied: annotated-types>=0.4.0 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from pydantic>=1.10.8->qdrant-client->geniml) (0.7.0)\n", - "Requirement already satisfied: pydantic-core==2.20.1 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from pydantic>=1.10.8->qdrant-client->geniml) (2.20.1)\n", - "Requirement already satisfied: markdown-it-py>=2.2.0 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from rich>=10.3.0->peppy>=0.40.1->geniml) (3.0.0)\n", - "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from rich>=10.3.0->peppy>=0.40.1->geniml) (2.17.2)\n", - "Requirement already satisfied: threadpoolctl>=3.1.0 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from scikit-learn>=0.24->scanpy->geniml) (3.5.0)\n", - "Requirement already satisfied: regex!=2019.12.17 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from transformers>=4.39.0->langchain-huggingface==0.0.2->geniml) (2024.5.15)\n", - "Requirement already satisfied: safetensors>=0.4.1 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from transformers>=4.39.0->langchain-huggingface==0.0.2->geniml) (0.4.3)\n", - "Requirement already satisfied: MarkupSafe>=2.0 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from jinja2->torch->geniml) (2.1.5)\n", - "Requirement already satisfied: stdlib-list in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from session-info->scanpy->geniml) (0.10.0)\n", - "Requirement already satisfied: mpmath<1.4,>=1.1.0 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from sympy->torch->geniml) (1.3.0)\n", - "Requirement already satisfied: pycparser in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from cffi>=1.12->cryptography>=3.3->paramiko>=3.0.0->geniml) (2.21)\n", - "Requirement already satisfied: humanfriendly>=9.1 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from coloredlogs->onnxruntime<2.0.0,>=1.17.0->fastembed>=0.2.5->geniml) (10.0)\n", - "Requirement already satisfied: hyperframe<7,>=6.0 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from h2<5,>=3->httpx[http2]>=0.20.0->qdrant-client->geniml) (6.0.1)\n", - "Requirement already satisfied: hpack<5,>=4.0 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from h2<5,>=3->httpx[http2]>=0.20.0->qdrant-client->geniml) (4.0.0)\n", - "Requirement already satisfied: jsonpointer>=1.9 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from jsonpatch<2.0,>=1.33->langchain-core<0.3,>=0.1.52->langchain-huggingface==0.0.2->geniml) (2.4)\n", - "Requirement already satisfied: orjson<4.0.0,>=3.9.14 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from langsmith<0.2.0,>=0.1.75->langchain-core<0.3,>=0.1.52->langchain-huggingface==0.0.2->geniml) (3.10.6)\n", - "Requirement already satisfied: mdurl~=0.1 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from markdown-it-py>=2.2.0->rich>=10.3.0->peppy>=0.40.1->geniml) (0.1.2)\n", - "Requirement already satisfied: click>=8.0.0 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from typer>=0.7.0->pephubclient>=0.4.2->peppy>=0.40.1->geniml) (8.1.7)\n", - "Requirement already satisfied: shellingham>=1.3.0 in /Users/kancherj/miniforge3/lib/python3.10/site-packages (from typer>=0.7.0->pephubclient>=0.4.2->peppy>=0.40.1->geniml) (1.5.4)\n" - ] - } - ], "source": [ "!pip install -U biocutils genomicranges rds2py numpy pandas geniml" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you are using Google colab, you may not have access to the RDS file used, in this tutorial. Change the block below from markdown to code and run the chunk." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "!wget https://raw.githubusercontent.com/BiocPy/BiocWorkshop2024/master/notebook/hg38_exons_by_tx.rds" + ] + }, { "cell_type": "markdown", "metadata": {}, diff --git a/tutorials/genomic_ranges.qmd b/tutorials/genomic_ranges.qmd index b26090d..9be7102 100644 --- a/tutorials/genomic_ranges.qmd +++ b/tutorials/genomic_ranges.qmd @@ -25,7 +25,7 @@ Let's start by installing the required packages for R and Python. You can install the Python packages using pip: -```bash +```sh pip install -U biocutils genomicranges rds2py numpy pandas geniml ```