Giter Club home page Giter Club logo

scrna-python-workshop's Introduction

Analysis of single cell RNA-seq data (Python)

Course goals

Today it is possible to obtain genome-wide transcriptome data from single cells using high-throughput sequencing (scRNA-seq). The goal of this one-day workshop is to help scientists from all backgrounds (computational or otherwise) feel empowered to explore their scRNA-seq data. Specifically, we hope students leave with the ability to:

  • Understand a general workflow for dealing with scRNA-seq data
  • Anticipate and avoid some of the most common pitfalls in scRNA-seq analysis
  • Build intuition around the tradeoffs inherent in analytical choices
  • Feel comfortable and confident working with current Python-based tools for single cell analysis
  • Have better conversations with their collaborators
  • Know where to find additional information and assistance

Topics covered

We'll cover the basics of:

  • Quality control
  • Normalization
  • Dimensionality reduction
  • Clustering
  • Differential expression
  • Exploratory analysis

Course non-goals

We have tried to incorporate current best practices and build intuition around methodological choices throughout this workshop. However, single cell data is complex and the field is evolving rapidly. There are also many aspects of this analysis where the field has not yet reached consensus on best practices. A one-day course simply cannot cover all of the relevant considerations and tools. Here, we have prioritized topics and tools that build foundational intuition, and are available in Python with reasonable runtime. Given the one-day timetable, we opt to start from the expression matrix and do not cover processing raw data. While not a comprehensive guide, we hope this serves as a stepping stone to making single cell analysis approachable.

Prerequisites & resources

The workshop consists of explanatory discussions interspersed with hands-on exercises. We strongly encourage you to bring a laptop with all required packages installed in order to fully participate. Please follow the instructions here

The course is intended for those who have basic familiarity with Python (e.g., at the level covered in a software carpentry workshop). Basic familiarity with the Jupyter notebooks and the command line is helpful but not required.

We recommend the following introductory materials:

Recommended reading

The original source of much of the course content; as a 2-day course, it includes a broader overview of analytical methods and a guide to generating the expression matrix from raw data. While its examples are implemented in R, the conceptual underpinnings are broadly applicable.

Clear explanations of many of the methodological tradeoffs and our current understanding of best practices. Includes an in-depth tutorial, implemented primarily in Python.

Development, reuse and contributing

Content

This course was originally developed by the Hemberg Lab, and has been abbreviated and adapted for Python (with permission) by Sidney Bell and the Computational Biology team at the Chan Zuckerberg Initiative.
We gratefully acknowledge the work of the original authors of the course material: Vladimir Kiselev, Tallulah Andrews, Jennifer Westoby, Davis McCarthy, Maren Büttner, Jimmy Lee, Krzysztof Polanski, Sebastian Y. Müller, Elo Madissoon, Stephane Ballereau, Maria Do Nascimento Lopes Primo, Rocio Martinez Nunez and Martin Hemberg.

We have also incorporated practices and framing put forth in Luecken and Theis, 2019, and thank them for their work.

This curriculum was originally taught during one day of a CZI-sponsored workshop in Chicago, IL on October 18, 2019.

Contributing

We warmly welcome and encourage members of the scientific community to submit updates and improvements through github.

We adhere to the license of the original materials:

All of the course material is licensed under GPL-3. Anyone is welcome to go through the material in order to learn about analysis of scRNA-seq data. If you plan to use the material for your own teaching, we would appreciate if you tell the Hemberg lab about it in addition to providing a suitable citation to the original materials.

Contact

For conceptual questions about the original source material, please contact Vladimir Kisilev.
For questions about the Python adaptation, please contact Sidney Bell.

scrna-python-workshop's People

Contributors

ambrosejcarr avatar sidneymbell avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

scrna-python-workshop's Issues

Request for sfn-workshop-windows.yml

The drive link doesn't allow me to preview or download the sfn-workshop-windows.yml file. Also the the sfn-workshop.yml file doesn't work properly on windows.

ResolvePackageNotFound:

  • scikit-learn==0.21.3=py37hd4ffd6c_0
  • zeromq==4.3.2=h6de7cb9_2
  • libiconv==1.15=h01d97ff_1005
  • louvain==0.6.1=py37h0a44026_2
  • libxml2==2.9.9=h12c6b28_5
  • appnope==0.1.0=py37_1000
  • tk==8.6.9=h2573ce8_1003
  • pywavelets==1.0.3=py37h1e5eb4f_1
  • cairo==1.16.0=he1c11cd_1002
  • nss==3.46=h39b4b1f_0
  • readline==8.0=hcfe32e1_0
  • cytoolz==0.10.0=py37h01d97ff_0
  • zlib==1.2.11=h01d97ff_1006
  • xz==5.2.4=h1de35cc_1001
  • lz4-c==1.8.3=h6de7cb9_1001
  • libpng==1.6.37=h2573ce8_0
  • tornado==6.0.3=py37h01d97ff_0
  • mistune==0.8.4=py37h1de35cc_1000
  • jpeg==9c=h1de35cc_1001
  • libtiff==4.0.10=hd08fb8f_1003
  • pcre==8.41=h0a44026_1003
  • qt==5.12.5=h1b46049_0
  • icu==64.2=h6de7cb9_1
  • scikit-image==0.15.0=py37h86efe34_2
  • matplotlib-base==3.1.1=py37h3a684a6_1
  • libgfortran==4.0.0=2
  • python==3.7.3=h93065d6_1
  • markupsafe==1.1.1=py37h1de35cc_0
  • pyqt==5.12.3=py37h2a560b1_0
  • fontconfig==2.13.1=h6b1039f_1001
  • libcxxabi==9.0.0=0
  • libsodium==1.0.17=h01d97ff_0
  • gettext==0.19.8.1=h46ab8bc_1002
  • pandas==0.25.1=py37h86efe34_0
  • zstd==1.4.0=ha9f0a20_0
  • bzip2==1.0.8=h01d97ff_1
  • pytables==3.5.2=py37hd39446c_2
  • statsmodels==0.10.1=py37heacc8b8_0
  • pillow==6.2.0=py37hb6f49c9_0
  • libcxx==9.0.0=0
  • pyzmq==18.1.0=py37hee98d25_0
  • igraph==0.7.1=h7eb0474_1007
  • sqlite==3.30.0=h93121df_0
  • llvm-openmp==9.0.0=h40edb58_0
  • kiwisolver==1.1.0=py37h770b8ee_0
  • expat==2.2.5=h6de7cb9_1003
  • numpy==1.17.2=py37h6b0580a_0
  • nspr==4.20=h0a44026_1000
  • libopenblas==0.3.7=h4bb4525_1
  • numba==0.45.1=py37h86efe34_0
  • dbus==1.13.6=h2f22bb5_0
  • scipy==1.3.1=py37h7e0e109_2
  • pycairo==1.18.1=py37h650f75e_0
  • openssl==1.1.1c=h01d97ff_0
  • freetype==2.10.0=h24853df_1
  • pixman==0.38.0=h01d97ff_1003
  • blosc==1.17.0=h6de7cb9_1
  • glib==2.58.3=h9d45998_1002
  • ncurses==6.1=h0a44026_1002
  • pyrsistent==0.15.4=py37h01d97ff_0
  • python-igraph==0.7.1.post7=py37h01d97ff_0
  • hdf5==1.10.5=nompi_h15a436c_1103
  • llvmlite==0.29.0=py37h3fea490_1
  • numexpr==2.7.0=py37h86efe34_0
  • h5py==2.10.0=nompi_py37h6248fd5_100
  • gmp==6.1.2=h0a44026_1000
  • libllvm8==8.0.1=h770b8ee_0
  • libclang==8.0.1=h770b8ee_1
  • libffi==3.2.1=h6de7cb9_1006

Error while importing the .yml for windows

Hello,
I am facing an error while importing the .yml for windows.
This the error

ResolvePackageNotFound:

zeromq==4.3.2=h6de7cb9_2
markupsafe==1.1.1=py37h1de35cc_0
glib==2.58.3=h9d45998_1002
libgfortran==4.0.0=2
python-igraph==0.7.1.post7=py37h01d97ff_0
readline==8.0=hcfe32e1_0
python==3.7.3=h93065d6_1
numba==0.45.1=py37h86efe34_0
cairo==1.16.0=he1c11cd_1002
llvmlite==0.29.0=py37h3fea490_1
llvm-openmp==9.0.0=h40edb58_0
xz==5.2.4=h1de35cc_1001
libiconv==1.15=h01d97ff_1005
libtiff==4.0.10=hd08fb8f_1003
pandas==0.25.1=py37h86efe34_0
pyrsistent==0.15.4=py37h01d97ff_0
numexpr==2.7.0=py37h86efe34_0
igraph==0.7.1=h7eb0474_1007
gmp==6.1.2=h0a44026_1000
expat==2.2.5=h6de7cb9_1003
gettext==0.19.8.1=h46ab8bc_1002
scikit-learn==0.21.3=py37hd4ffd6c_0
cytoolz==0.10.0=py37h01d97ff_0
scipy==1.3.1=py37h7e0e109_2
tornado==6.0.3=py37h01d97ff_0
pytables==3.5.2=py37hd39446c_2
tk==8.6.9=h2573ce8_1003
icu==64.2=h6de7cb9_1
pycairo==1.18.1=py37h650f75e_0
libcxx==9.0.0=0
freetype==2.10.0=h24853df_1
h5py==2.10.0=nompi_py37h6248fd5_100
openssl==1.1.1c=h01d97ff_0
dbus==1.13.6=h2f22bb5_0
lz4-c==1.8.3=h6de7cb9_1001
libclang==8.0.1=h770b8ee_1
sqlite==3.30.0=h93121df_0
pillow==6.2.0=py37hb6f49c9_0
pyzmq==18.1.0=py37hee98d25_0
libxml2==2.9.9=h12c6b28_5
pixman==0.38.0=h01d97ff_1003
pyqt==5.12.3=py37h2a560b1_0
hdf5==1.10.5=nompi_h15a436c_1103
qt==5.12.5=h1b46049_0
blosc==1.17.0=h6de7cb9_1
libsodium==1.0.17=h01d97ff_0
libcxxabi==9.0.0=0
pcre==8.41=h0a44026_1003
nspr==4.20=h0a44026_1000
mistune==0.8.4=py37h1de35cc_1000
zstd==1.4.0=ha9f0a20_0
libllvm8==8.0.1=h770b8ee_0
fontconfig==2.13.1=h6b1039f_1001
jpeg==9c=h1de35cc_1001
nss==3.46=h39b4b1f_0
numpy==1.17.2=py37h6b0580a_0
pywavelets==1.0.3=py37h1e5eb4f_1
zlib==1.2.11=h01d97ff_1006
libffi==3.2.1=h6de7cb9_1006
kiwisolver==1.1.0=py37h770b8ee_0
scikit-image==0.15.0=py37h86efe34_2
bzip2==1.0.8=h01d97ff_1
appnope==0.1.0=py37_1000
ncurses==6.1=h0a44026_1002
louvain==0.6.1=py37h0a44026_2
matplotlib-base==3.1.1=py37h3a684a6_1
statsmodels==0.10.1=py37heacc8b8_0
libpng==1.6.37=h2573ce8_0
libopenblas==0.3.7=h4bb4525_1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.