punkst is an ongoing effort to implement scalable tools for analyzing high resolution spatial transcriptomics data.
punkst includes a pipeline for efficient pixel level factor analysis (FICTURE) with improved efficiency and flexibility. (Previous python package is still available but is no longer maintained)
You can use punkst to prepare your data for visualization on CartoScope, including raw transcript data, segmented cells, morphology images, and punkst analysis results.
Documentation: https://Yichen-Si.github.io/punkst
See more details in install page.
If you have difficulty installing, let us known (by opening an issue). You can also try Docker (see below), but the Docker image is not always up to date.
Linux tarballs for HPC clusters are attached to GitHub Releases. Download the build with CPU features matching your machine (x86_64, x86_64-v3, or x86_64-v4), unpack it, and run:
bin/punkst --helpSee the installation documentation for details on choosing the right build and verifying the installation.
Prerequisites
- Git
- CMake >= 3.15
- C++17 compiler* (GCC >= 9, Clang/Apple Clang/MSVC with C++17 standard library support)
- TBB
- libpng (optional; enabled by default for generating
pngimages) - libcurl (optional; enabled by default for
http(s)/s3://input support)
*GCC 9 or newer is the supported Linux baseline. GCC 8 may work in some environments, but older std::filesystem support varies across distributions.
# 1) Clone the repository
git clone --recursive https://github.com/Yichen-Si/punkst.git
cd punkst
# 2) Create and enter a build directory
mkdir build && cd build
# 3) Configure
cmake ..
# 4) Build
cmake --build . --parallel # or makeIf you did not clone the submodule (Eigen) initially, you can do
git submodule update --initIf TBB is not found, you can install it by sudo apt-get install libtbb-dev or yum install tbb-devel on linux and brew install tbb on macOS. If you don't have root access on linux, you can install oneTBB locally.
Remote readers for http(s) and s3:// inputs are controlled by the CMake option ENABLE_REMOTE_IO (default ON). It requires libcurl at configure/build time, set -DENABLE_REMOTE_IO=OFF to build without libcurl; local-file input still works, but remote URL input is disabled
If you installed some dependencies locally, you might need to specify their paths like
cmake .. -DTBB_DIR=$HOME/user/opt/tbb/lib/cmake/tbb \
-DCMAKE_PREFIX_PATH="$HOME/.local"The punkst binary will be placed in bin/ under the project root.
Verify the Build
punkst/bin/punkst --helpYou should see a message starting with
Available Commands
The following commands are available:
The docker image is not often up to date, we recommend using the prebuilt binaries or building from source.
docker pull philo1984/punkst:latestIf your machine does not support x86-64-v3, use the portable tag instead (but it may be significantly slower):
docker pull philo1984/punkst:portableViirfy the installation:
docker run --rm philo1984/punkst:latest punkst --help