victorfeagins / snakemake-workshop Goto Github PK
View Code? Open in Web Editor NEWThis project forked from brite-reu/snakemake-workshop
Worklflow managers are good mkay
This project forked from brite-reu/snakemake-workshop
Worklflow managers are good mkay
Hint: This rule uses the preprocess.py step
This rule should do the following:
Take the output of the download_data rule as input
Specify parameters to filter the data such that the minimum number of cells is 3, the minimum number of genes is 200, the maximum percent of mitochondrial reads is 5%, and the number of highly variable genes to retain is 2000
Output a processed '.h5ad' file. You should put this in some type of data directory. (Hint: can you specify different directories for raw and processed data?)
Now that the pipeline is working, add functionality to the snakefile to generate an html report. To do this you will need to:
Look at the snakemake documentation for the report feature
Add a report flag to output(s) you want to display in the report (e.g. a plot)
Specify categories for the output(s) in the report (i.e. sections)
Run snakemake with the report flag
Hint: snakemake documentatiion
Hint: This uses the cluster_cells.py step
This rule should do the following to cluster the data and output it in an R-readable format:
Take the output of the preprocess_data rule as input
Specify parameters such that the number of clusters is 15 and the resolution is 1
Create three output files for the count matrix, cell metadata, and gene metadata. (Tip: think about directory structure when choosing where this clustered data should save to)
Hint: This rule uses the script download_data.py
This rule should do the following:
Download the dataset 'pbmc3k'
Output a '.h5ad' file. You should output this file to some type of data directory
One of the first things you should do when creating a git repository is make a '.gitignore' file. In this file, you should list all files and directories that you do no want git to track. One reason might be that you are keeping track of your git repository on a version control platform such as GitHub, which has file size limits. Another reason might be that you want to keep certain data private. For example, it is general practice to not include /data and /figures directories in GitHub repositories when the code/pipeline to create those data and/or figures is available (hint hint)
Your task is to do the following:
create a .gitignore file
as you work through the tasks, add files and/or directories to the .gitignore that you do not want to track
Up until now, you have hardcoded the parameters needed into each rule. A more elegant solution is to have the Snakefile use a config.yaml file that specifies these parameters. In this step you should do the following:
Create a config.yaml file
Specify the parameters in the config.yaml file
Import the config.yaml file into the Snakefile
Have the Snakefile use the parameters specified in the config.yaml file
Right now, your Snakefile will process one data set that is hard coded in. A more realistic use of a snakemake pipeline is to apply it to multiple data sets.
Here, use wildcards to generalize the rules for multiple data sets.
Hint: snakemake wildcards doc
Hint: This uses the plot_cells.R script
This rule should do the following to make plots of the clusters found in the single-cell data:
Take as input the three output files from the cluster_cells rule
Specify which attribute to color the data by (Hint: an attribute is usually a piece of metadata or categorical label for a data point. In this example, the attribute is the column titled "louvain")
Output a '.png' plot of clustered data
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.