Created
June 16, 2017 05:35
-
-
Save murrellb/b095c433350b93c3f554ddc6ca74d8e2 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells": [ | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "### Day 14." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "#wget https://gist.githubusercontent.com/murrellb/ac46b9a15f3f34ca38fea6b7f59c5f00/raw/40138215547b6aeb54866b5790d44b29560923eb/day14.fasta" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 1, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "envPBseqSim (generic function with 1 method)" | |
| ] | |
| }, | |
| "execution_count": 1, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "#If you weren't here last week\n", | |
| "Pkg.add(\"Bio\")" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 1, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "plotHistogram (generic function with 1 method)" | |
| ] | |
| }, | |
| "execution_count": 1, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "using Bio.Seq\n", | |
| "using PyPlot\n", | |
| "function read_fasta_records(filename)\n", | |
| " stream = open(FASTAReader, filename)\n", | |
| " records = FASTASeqRecord[]\n", | |
| " for entry in stream\n", | |
| " push!(records, entry)\n", | |
| " end\n", | |
| " return records\n", | |
| "end\n", | |
| "function read_fasta_with_names(filename)\n", | |
| " records = read_fasta_records(filename)\n", | |
| " return [String(r.name) for r in records],[String(r.seq) for r in records]\n", | |
| "end\n", | |
| "function plotHistogram(inp)\n", | |
| " plt[:hist](inp)\n", | |
| "end" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 2, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "names,seqs = read_fasta_with_names(\"day14.fasta\");" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "### You just imported a .fasta file with a collection of (noisy) sequences. The front and end of each seqeunce has 1 of 5 barcodes on it (each is 7bp). Write a function that returns an array (with an ordering that matches the sequences), of each sequence's barcodes. You will need to do many things with this list, so consider the most convenient way of storing the forward and reverse barcodes together." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 3, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "getBarcodes (generic function with 1 method)" | |
| ] | |
| }, | |
| "execution_count": 3, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "### Write a function (matchCount) that takes a long array of elements (long), and a short array of elements (short). It must return an array (counts) of length(short), where the ith element of counts is the number of elements in long that match the ith element of short." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 4, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "matchCount (generic function with 1 method)" | |
| ] | |
| }, | |
| "execution_count": 4, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "### Use the above function to get the number of sequences for each unique barcode. Plot a histogram of these numbers." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 5, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "image/png": "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", | |
| "text/plain": [ | |
| "PyPlot.Figure(PyObject <matplotlib.figure.Figure object at 0x316b85da0>)" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "### Pick a threshold for \"good\" barcodes. Store a list of only good barcodes. What do you notice?" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 7, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "25-element Array{String,1}:\n", | |
| " \"TTTCACA-CCTTATC\"\n", | |
| " \"TTTCACA-TGGAGAG\"\n", | |
| " \"TTTCACA-TTGGATA\"\n", | |
| " \"TTTCACA-TGTGTTA\"\n", | |
| " \"TTTCACA-GCTACTT\"\n", | |
| " \"GGTCGAC-CCTTATC\"\n", | |
| " \"GGTCGAC-TGGAGAG\"\n", | |
| " \"GGTCGAC-TTGGATA\"\n", | |
| " \"GGTCGAC-TGTGTTA\"\n", | |
| " \"GGTCGAC-GCTACTT\"\n", | |
| " \"AGTTTCT-CCTTATC\"\n", | |
| " \"AGTTTCT-TGGAGAG\"\n", | |
| " \"AGTTTCT-TTGGATA\"\n", | |
| " \"AGTTTCT-TGTGTTA\"\n", | |
| " \"AGTTTCT-GCTACTT\"\n", | |
| " \"TAGTACG-CCTTATC\"\n", | |
| " \"TAGTACG-TGGAGAG\"\n", | |
| " \"TAGTACG-TTGGATA\"\n", | |
| " \"TAGTACG-TGTGTTA\"\n", | |
| " \"TAGTACG-GCTACTT\"\n", | |
| " \"CCGATCT-CCTTATC\"\n", | |
| " \"CCGATCT-TGGAGAG\"\n", | |
| " \"CCGATCT-TTGGATA\"\n", | |
| " \"CCGATCT-TGTGTTA\"\n", | |
| " \"CCGATCT-GCTACTT\"" | |
| ] | |
| }, | |
| "execution_count": 7, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "### For each good barcode, create an array of sequences that have this barcode." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 9, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [], | |
| "source": [] | |
| } | |
| ], | |
| "metadata": { | |
| "anaconda-cloud": {}, | |
| "kernelspec": { | |
| "display_name": "Julia 0.5.0", | |
| "language": "julia", | |
| "name": "julia-0.5" | |
| }, | |
| "language_info": { | |
| "file_extension": ".jl", | |
| "mimetype": "application/julia", | |
| "name": "julia", | |
| "version": "0.5.0" | |
| } | |
| }, | |
| "nbformat": 4, | |
| "nbformat_minor": 1 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment