{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Example of reproducible analysis pipeline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We are going to reproduce a couple of figures (2A and 8A) of the following paper:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.display import IFrame\n", "url = \"http://www.ncbi.nlm.nih.gov/pubmed/22219510\"\n", "IFrame(url, 800, 400)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "I select this paper because: \n", "* The article is open access \n", "* The reference organism is yeast (12Mb) \n", "* The data are freely available \n", "* I know it very well... " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Required software:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* [SRA](http://www.ncbi.nlm.nih.gov/Traces/sra/?view=software): The Sequence Read Archive (SRA) stores raw sequencing data from the next generation of sequencing platforms including Roche 454 GS System®, Illumina Genome Analyzer®, Applied Biosystems SOLiD® System, Helicos Heliscope®, Complete Genomics®, and Pacific Biosciences SMRT®. **In the analysis version: 2.3.5-2 was used.**\n", "\n", "\n", "* [Bowtie](http://bowtie-bio.sourceforge.net/index.shtml): Bowtie is an ultrafast, memory-efficient short read aligner. It aligns short DNA sequences (reads) to the human genome at a rate of over 25 million 35-bp reads per hour. Bowtie indexes the genome with a Burrows-Wheeler index to keep its memory footprint small: typically about 2.2 GB for the human genome (2.9 GB for paired-end). **In the analysis version 1.0.1 was used.**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Required Python libraries:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is extracted from the command `pip freeze`. On the right of each library there is the version I have been using in the analysis: \n", "* ipython==3.1.0 \n", "* numpy==1.9.2 \n", "* matplotlib==1.4.3 \n", "* pandas==0.16.1 \n", "* Cython==0.22 \n", "* weblogo==3.4 \n", "* scipy==0.15.1 " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Import modules" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "source": [ "%pylab inline\n", "import pandas as pd\n", "import tarfile\n", "import urllib\n", "import os\n", "import weblogolib\n", "import random\n", "import seaborn as sns" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Define the paths of the required software" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [], "source": [ "SRA = \"bin/fastq-dump\"\n", "BOWTIE = \"bin\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# PIPELINE" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Download the data" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Download one of the set of raw reads of the paper\n", "sra_url = \"ftp://ftp-trace.ncbi.nlm.nih.gov/sra/sra-instant/reads/ByStudy/sra/\" + \\\n", " \"SRP%2FSRP009%2FSRP009462/SRR384975/SRR384975.sra\"\n", "sra_file = \"reads/SRR384975.sra\"\n", "# Download the yeast genomic sequences. The release used in this analysis is: R64-1-1\n", "yeast_url = \"http://downloads.yeastgenome.org/sequence/S288C_reference/\" + \\\n", " \"genome_releases/S288C_reference_genome_Current_Release.tgz\"\n", "yeast_file = \"data/yeast_genome.tgz\"\n", "genome_file = \"data/yeast_genome.fa\"\n", "# Download the yeast genomic annotations\n", "features_url = \"http://downloads.yeastgenome.org/curation/chromosomal_feature/SGD_features.tab\"\n", "features_file = \"data/yeast_features.tsv\"" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Create the directories \"reads\" and \"data\"\n", "folders = [\"data\", \"reads\", \"index\", \"sequences\", \"figures\"]\n", "_ = [os.mkdir(folder) for folder in folders if not os.path.isdir(folder)]" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 246 µs, sys: 461 µs, total: 707 µs\n", "Wall time: 1.48 ms\n" ] } ], "source": [ "%%time\n", "\n", "# Download the files and save it into the local directory\n", "for (get_url, get_file) in zip([sra_url, yeast_url, features_url], \n", " [sra_file, yeast_file, features_file]):\n", " if not os.path.isfile(get_file):\n", " urllib.request.urlretrieve(get_url, get_file)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "analysis.ipynb \u001b[1m\u001b[34mbin\u001b[m\u001b[m \u001b[1m\u001b[34mfigures\u001b[m\u001b[m \u001b[1m\u001b[34mreads\u001b[m\u001b[m\r\n", "analysis_slideshow.ipynb \u001b[1m\u001b[34mdata\u001b[m\u001b[m \u001b[1m\u001b[34mindex\u001b[m\u001b[m \u001b[1m\u001b[34msequences\u001b[m\u001b[m\r\n" ] } ], "source": [ "!ls" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Extract the SRA file" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Read 7990112 spots for reads/SRR384975.sra\r\n", "Written 7990112 spots for reads/SRR384975.sra\r\n", "\r\n", "real\t1m4.574s\r\n", "user\t0m57.743s\r\n", "sys\t0m1.949s\r\n" ] } ], "source": [ "!time $SRA $sra_file --outdir reads" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Extract the sequence of the yeast genome" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "['S288C_reference_genome_R64-2-1_20150113',\n", " 'S288C_reference_genome_R64-2-1_20150113/rna_coding_R64-2-1_20150113.fasta',\n", " 'S288C_reference_genome_R64-2-1_20150113/NotFeature_R64-2-1_20150113.fasta',\n", " 'S288C_reference_genome_R64-2-1_20150113/orf_coding_all_R64-2-1_20150113.fasta',\n", " 'S288C_reference_genome_R64-2-1_20150113/other_features_genomic_R64-2-1_20150113.fasta',\n", " 'S288C_reference_genome_R64-2-1_20150113/S288C_reference_sequence_R64-2-1_20150113.fsa',\n", " 'S288C_reference_genome_R64-2-1_20150113/gene_association_R64-2-1_20150113.sgd',\n", " 'S288C_reference_genome_R64-2-1_20150113/orf_trans_all_R64-2-1_20150113.fasta',\n", " 'S288C_reference_genome_R64-2-1_20150113/saccharomyces_cerevisiae_R64-2-1_20150113.gff']" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tar = tarfile.open(yeast_file)\n", "tar.getnames()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The right file to extract is **S288C_reference_sequence_R64-2-1_20150113.fsa**" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Extract the file\n", "tar.extract('S288C_reference_genome_R64-2-1_20150113/S288C_reference_sequence_R64-2-1_20150113.fsa',\n", " 'data')" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[1m\u001b[34mS288C_reference_genome_R64-2-1_20150113\u001b[m\u001b[m yeast_genome.fa\r\n", "yeast_features.tsv yeast_genome.tgz\r\n" ] } ], "source": [ "!ls data/" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Rename the reference_sequence file\n", "!mv data/S288C_reference_genome_R64-2-1_20150113/S288C_reference_sequence_R64-2-1_20150113.fsa $genome_file\n", "!rm -r data/S288C_reference_genome_R64-2-1_20150113/\n", "#!rm $yeast_file" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "yeast_features.tsv yeast_genome.fa yeast_genome.tgz\r\n" ] } ], "source": [ "!ls data/" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Build a bowtie index" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [], "source": [ "index_name = \"index/yeast_genome\"\n", "!$BOWTIE/bowtie-build -q $genome_file $index_name" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Trim and align the reads to the yeast genome" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The reads should start with the `Ty1 LTR` (Long Terminal Repeat), so I check for its presence. I also get rid of reads with _undefined (N)_ nucleotides. In the alignment step, in order to align only the genomic sequence downstream the insertion site, I trim the first 10bp." ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 1min 7s, sys: 4.04 s, total: 1min 11s\n", "Wall time: 1min 13s\n" ] } ], "source": [ "%%time\n", "\n", "# Reads should start with the Ty1 LTR (\"TATT\"). \n", "# I also discard those reads that have ambiguous nucleotides.\n", "fastq_file = os.path.splitext(sra_file)[0] + \".fastq\"\n", "trimmed_file = os.path.splitext(sra_file)[0] + \".trimmed\"\n", "\n", "LTR = \"TATT\"\n", "MAX_MISMATCHES = 0\n", "\n", "\n", "class ReadFastq:\n", " def load(self, line):\n", " self.lines = [line]\n", " self.output = \"\"\n", " \n", " def add_line(self, line):\n", " self.lines.append(line) \n", " \n", " def get_output(self):\n", " if self.lines[1].startswith(LTR) and self.lines[1].count(\"N\") <= MAX_MISMATCHES:\n", " self.output = \"\".join(self.lines)\n", " return self.output\n", " else:\n", " return False\n", " \n", "\n", "with open(fastq_file, 'r') as fi, open(trimmed_file, 'w') as fo:\n", " parser = ReadFastq()\n", " for n, line in enumerate(fi):\n", " if n % 4 == 0:\n", " if n != 0 and parser.get_output():\n", " fo.write(parser.get_output())\n", " parser.load(line)\n", " else:\n", " parser.add_line(line)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Time loading forward index: 00:00:00\n", "Time for 0-mismatch search: 00:00:28\n", "# reads processed: 7504175\n", "# reads with at least one reported alignment: 1187781 (15.83%)\n", "# reads that failed to align: 5885730 (78.43%)\n", "# reads with alignments suppressed due to -m: 430664 (5.74%)\n", "Reported 1187781 alignments to 1 output stream(s)\n", "Time searching: 00:00:28\n", "Overall time: 00:00:28\n" ] } ], "source": [ "# I align the reads to the yeast genome with Bowtie\n", "# I trim the first 10bp of the reads and then I require \n", "# unique (-m 1) and perfect (-v 0) alignments.\n", "mapped_file = os.path.splitext(sra_file)[0] + \".mapped\"\n", "!$BOWTIE/bowtie -t $index_name -m 1 -v 0 -5 10 -p 2 -q $trimmed_file $mapped_file" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Get rid of potential clonal reads" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1 loops, best of 1: 53.8 s per loop\n" ] } ], "source": [ "unique_file = mapped_file + \".unique\"\n", "%timeit -n 1 -r 1 !cut -f2-5 $mapped_file | sort -u > $unique_file" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "+\tref|NC_001133|\t101400\tGCATTATCTATCATTATAAATTCTTTTATT\r\n", "+\tref|NC_001133|\t11050\tTAAAGTCACTGAGATATTAGAGGTTATAAA\r\n", "+\tref|NC_001133|\t11333\tAAACTCTATGTAAACACTTATTTTATTGTG\r\n", "+\tref|NC_001133|\t115808\tCCTCTCAGATACCACGATGCATAAGGCTCA\r\n", "+\tref|NC_001133|\t118483\tATATGTGTATATATACATAGGTTAGTATGT\r\n", "+\tref|NC_001133|\t118488\tTGTATATATACATAGGTTAGTATGTATAGC\r\n", "+\tref|NC_001133|\t125037\tAGGGTAGAAGCCATGAAAAAACTAGATACC\r\n", "+\tref|NC_001133|\t125957\tGATCTTACCTGCTGTGCAGAATTTGAGTAT\r\n", "+\tref|NC_001133|\t127779\tGATCTCAGTACTCGCATTCTAGCGTATGTT\r\n", "+\tref|NC_001133|\t1289\tATTTCTAGTTACAGTTACACAAAAAACTAT\r\n" ] } ], "source": [ "!head $unique_file" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Extract the regions upstream and downstream the Ty1 insertion sites" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Load the yeast genome in memory\n", "dict_genome = {}\n", "sequence = \"\"\n", "\n", "with open(genome_file, 'r') as fi:\n", " for line in fi:\n", " if line.startswith(\">\"):\n", " if sequence != \"\":\n", " dict_genome[head] = sequence.upper()\n", " head = line.split()[0][1:]\n", " sequence = \"\"\n", " continue\n", " sequence += line.strip()\n", " if sequence != \"\":\n", " dict_genome[head] = sequence.upper()" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Define a class to read the alignment file\n", "class ParseAlignments:\n", " def read(self, line):\n", " self.line = line.strip().split(\"\\t\")\n", " self.strand = self.line[0]\n", " self.chromosome = self.line[1]\n", " self.position = int(self.line[2])" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Define a function to extract the genomic sequences\n", "# upstream and downstream a given position.\n", "def reverse_complement(sequence):\n", " d = {\"A\":\"T\", \"T\":\"A\", \"C\":\"G\", \"G\":\"C\", \"N\":\"N\"}\n", " sequence = sequence[::-1]\n", " return \"\".join([d[i] for i in sequence])\n", " \n", "def get_sequences(input_file, output_file, window=10):\n", " with open(input_file, 'r') as fi, open(output_file, 'w') as fo:\n", " parser = ParseAlignments()\n", " for n, line in enumerate(fi):\n", " parser.read(line)\n", " if parser.strand == \"+\":\n", " position = parser.position + 3\n", " else:\n", " position = parser.position - 3\n", " sequence = dict_genome[parser.chromosome][position - window: position + window]\n", " if parser.strand == \"-\":\n", " sequence = reverse_complement(sequence)\n", " fo.write(\">sequence_{}\\n{}\\n\".format(n, sequence))" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Extract sequences of 10bp and 1Kb\n", "get_sequences(input_file=unique_file, output_file=\"sequences/fasta_10bp.fa\")\n", "get_sequences(input_file=unique_file, output_file=\"sequences/fasta_1kb.fa\", window=1000)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Seqlogos" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First we will check the presence of the insertion site pattern. We will do a seqlogo of the flanking regions of the Ty1 insertion sites." ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def do_seqlogo(input_fasta, output_seqlogo):\n", " fin = open(input_fasta)\n", " seqs = weblogolib.read_seq_data(fin) \n", " data = weblogolib.LogoData.from_seqs(seqs)\n", " options = weblogolib.LogoOptions()\n", " options.yaxis_scale = 0.2\n", " options.yaxis_tic_interval = 0.2\n", " format_logo = weblogolib.LogoFormat(data, options)\n", " fout = weblogolib.eps_formatter(data, format_logo)\n", " with open(output_seqlogo, 'wb') as fo:\n", " fo.write(fout)" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Create the seqlogos\n", "do_seqlogo(\"sequences/fasta_10bp.fa\", \"figures/fasta_10bp.eps\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To verify that the above seqlogo is meaninful, we can compare it with a seqlogo obtained with 10000 random sequences." ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Select 10000 random position in the yeast genome\n", "N = 10000\n", "genome_length = sum([len(i) for i in dict_genome.values()])\n", "sample = random.sample(range(1, genome_length + 1), N)\n", "\n", "# This function map a random number to a chromosome and position in the yeast genome\n", "def get_coordinates(number):\n", " for chromosome, sequence in dict_genome.items():\n", " if (number - len(sequence)) > 0:\n", " number -= len(sequence)\n", " # Do not consider position that are too close to the start/end of the chromosome\n", " elif number < 10 or number > len(sequence) - 10:\n", " continue\n", " else:\n", " return (chromosome, number)\n", " \n", "# Open the output file\n", "random_file = \"reads/random.mapped\"\n", "\n", "with open(random_file, \"w\") as fo:\n", " for n in sample:\n", " chromosome, position = get_coordinates(n) \n", " fo.write(\"+\\t{}\\t{}\\n\".format(chromosome, position))" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Extract sequences of 10bp and 1Kb\n", "get_sequences(input_file=random_file, output_file=\"sequences/random_10bp.fa\")\n", "\n", "# Create the seqlogos\n", "do_seqlogo(\"sequences/random_10bp.fa\", \"figures/random_10bp.eps\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Ty1 insertions around tRNAs" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Second, we will verify that the Ty1 retrotransposons have a strong preference for inserting upstream tRNA genes. \n", "First of all lets look at the structure of the features file." ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Create a dataframe with the yeast features\n", "df = pd.read_csv(features_file, sep=\"\\t\", header=None)" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
0123456789101112131415
0S000028864telomeric_repeatNaNTEL01L-TRNaNNaNchromosome 1NaN1621CNaN2003-09-092003-09-09Terminal telomeric repeats on the left arm of ...
1S000002143ORFDubiousYAL069WNaNNaNchromosome 1NaN1335649WNaN1996-07-311996-07-31Dubious open reading frame; unlikely to encode...
2S000031098CDSNaNNaNNaNNaNYAL069WNaN1335649WNaN1996-07-311996-07-31NaN
\n", "
" ], "text/plain": [ " 0 1 2 3 4 5 6 \\\n", "0 S000028864 telomeric_repeat NaN TEL01L-TR NaN NaN chromosome 1 \n", "1 S000002143 ORF Dubious YAL069W NaN NaN chromosome 1 \n", "2 S000031098 CDS NaN NaN NaN NaN YAL069W \n", "\n", " 7 8 9 10 11 12 13 14 \\\n", "0 NaN 1 62 1 C NaN 2003-09-09 2003-09-09 \n", "1 NaN 1 335 649 W NaN 1996-07-31 1996-07-31 \n", "2 NaN 1 335 649 W NaN 1996-07-31 1996-07-31 \n", "\n", " 15 \n", "0 Terminal telomeric repeats on the left arm of ... \n", "1 Dubious open reading frame; unlikely to encode... \n", "2 NaN " ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.head(3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The **feature** column is the second. Lets look at which features are in the file" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array(['ARS', 'ARS consensus sequence', 'CDEI', 'CDEII', 'CDEIII', 'CDS',\n", " 'ORF', 'W_region', 'X_element_combinatorial_repeats',\n", " 'X_element_core_sequence', 'X_region', \"Y'_element\", 'Y_region',\n", " 'Z1_region', 'Z2_region', 'binding_site', 'centromere',\n", " 'external_transcribed_spacer_region', 'five_prime_UTR_intron',\n", " 'gene_cassette', 'insertion', 'internal_transcribed_spacer_region',\n", " 'intron', 'long_terminal_repeat', 'mating_locus', 'multigene locus',\n", " 'ncRNA', 'non_transcribed_region', 'noncoding_exon',\n", " 'not in systematic sequence of S288C', 'not physically mapped',\n", " 'plus_1_translational_frameshift', 'pseudogene', 'rRNA',\n", " 'repeat_region', 'retrotransposon', 'snRNA', 'snoRNA', 'tRNA',\n", " 'telomere', 'telomeric_repeat', 'transposable_element_gene'], dtype=object)" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.unique(df[1])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will extract the the rows that contain the **tRNA** feature" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [], "source": [ "df_trna = df[df[1] == \"tRNA\"].copy()\n", "trna = pd.DataFrame({\"Chromosome\": df_trna[8], \n", " \"Start\": df_trna[9], \n", " \"End\": df_trna[10], \n", " \"Strand\": df_trna[11]})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The chromosomes in the features file are named from 1 to 17 but the mapped file have different names. \n", "Here we create a dictionary that convert one format into the other." ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false }, "outputs": [], "source": [ "dict_chromosomes = {\"NC_001133\": \"1\", \"NC_001134\": \"2\", \"NC_001135\": \"3\", \n", " \"NC_001136\": \"4\", \"NC_001137\": \"5\", \"NC_001138\": \"6\", \n", " \"NC_001139\": \"7\", \"NC_001140\": \"8\", \"NC_001141\": \"9\", \n", " \"NC_001142\": \"10\", \"NC_001143\": \"11\", \"NC_001144\": \"12\", \n", " \"NC_001145\": \"13\", \"NC_001146\": \"14\", \"NC_001147\": \"15\", \n", " \"NC_001148\": \"16\", \"NC_001224\": \"17\"}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Lets look at the first lines of the dataframe:" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ChromosomeEndStartStrand
1761139254139152W
2221166339166267W
2391181254181141W
2431182522182603C
376105910059172C
\n", "
" ], "text/plain": [ " Chromosome End Start Strand\n", "176 1 139254 139152 W\n", "222 1 166339 166267 W\n", "239 1 181254 181141 W\n", "243 1 182522 182603 C\n", "376 10 59100 59172 C" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "trna.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The strand column uses **W (Whatson)** and **C (Crick)** to indicate the positive and the negative strands. \n", "Lets use **+** and **-** instead." ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false }, "outputs": [], "source": [ "trna['Strand'] = trna['Strand'].apply(lambda x: \"+\" if x == \"W\" else \"-\")" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ChromosomeEndStartStrand
1761139254139152+
2221166339166267+
2391181254181141+
2431182522182603-
376105910059172-
\n", "
" ], "text/plain": [ " Chromosome End Start Strand\n", "176 1 139254 139152 +\n", "222 1 166339 166267 +\n", "239 1 181254 181141 +\n", "243 1 182522 182603 -\n", "376 10 59100 59172 -" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Look at the first lines of the dataframe\n", "trna.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we create a dataframe with the **Ty1** insertion positions." ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false }, "outputs": [], "source": [ "insertions = []\n", "with open(unique_file, 'r') as fi:\n", " parser = ParseAlignments()\n", " for line in fi:\n", " parser.read(line)\n", " chromosome = dict_chromosomes[parser.chromosome.split(\"|\")[1]]\n", " insertions.append([chromosome, parser.position, parser.strand])\n", " \n", "# We create a dataframe with the Ty1 insertion positions.\n", "insertions = pd.DataFrame(insertions, columns=[\"Chromosome\", \"Position\", \"Strand\"])" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ChromosomePositionStrand
01101400+
1111050+
2111333+
31115808+
41118483+
\n", "
" ], "text/plain": [ " Chromosome Position Strand\n", "0 1 101400 +\n", "1 1 11050 +\n", "2 1 11333 +\n", "3 1 115808 +\n", "4 1 118483 +" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Look at the first lines of the dataframe\n", "insertions.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We calculate the distances of the insertions 1Kb upstream and downstream tRNA genes." ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def calculate_distances(feature, insertions, window=1000):\n", " feature_grouped = feature.groupby([\"Chromosome\"])\n", " insertions_grouped = insertions.groupby([\"Chromosome\"])\n", " insertions_chromosomes = np.unique(insertions['Chromosome'])\n", "\n", " distances_from_feature = []\n", " \n", " for chromosome, feature_group in feature_grouped:\n", " if chromosome not in insertions_chromosomes:\n", " continue\n", " insertions_group = insertions_grouped.get_group(chromosome)\n", " \n", " for n, line in feature_group.iterrows():\n", " start, end, strand = line[1:]\n", " insertions_around = insertions_group[(insertions_group['Position'] >= start - window) &\n", " (insertions_group['Position'] <= start + window)]\n", " if len(insertions_around) == 0:\n", " continue\n", " \n", " # Calculate the distance of the insertions from the feature\n", " distances = insertions_around['Position'].apply(lambda x: x - start)\n", " \n", " # Correct for the strand of the feature\n", " distances = distances.apply(lambda x: x * -1 if strand == \"-\" else x)\n", " distances_from_feature.extend(distances)\n", " return distances_from_feature" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "collapsed": false }, "outputs": [], "source": [ "distances = calculate_distances(trna, insertions)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Represent with a histogram the distribution of the Ty1 insertions aroung tRNA TSS " ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "collapsed": false }, "outputs": [], "source": [ "sns.set_context('poster')\n", "def plot_distances(distances):\n", " fig = sns.distplot(distances)\n", " fig.set_xlim((-1000, 1000))\n", " fig.set_xlabel(\"Distance from tRNA TSS\")\n", " fig.plot([0, 0], [0, fig.axis()[3]], 'k--', lw=2, alpha=0.5)" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_distances(distances)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We got a peak of insertions just upstream the tRNA TSS, as expected. This is the position where \n", "the nucleosome is located. \n", "Also notice that there are other two smaller peaks that overlap with the positions of other nucleosomes." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can check if this happens with every TSS. So first we extract the rows of the features file\n", "that contain the **ORF** feature and are **not marked as Dubious**." ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "collapsed": false }, "outputs": [], "source": [ "df_orf = df[(df[1] == \"ORF\") & (df[2] != \"Dubious\")]\n", "orf = pd.DataFrame({\"Chromosome\": df_orf[8], \n", " \"Start\": df_orf[9], \n", " \"End\": df_orf[10], \n", " \"Strand\": df_orf[11]})\n", "orf['Strand'] = orf['Strand'].apply(lambda x: \"+\" if x == \"W\" else \"-\")" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ChromosomeEndStartStrand
11118072169-
13127072480+
16172359016-
2011156511951-
2211242612046+
\n", "
" ], "text/plain": [ " Chromosome End Start Strand\n", "11 1 1807 2169 -\n", "13 1 2707 2480 +\n", "16 1 7235 9016 -\n", "20 1 11565 11951 -\n", "22 1 12426 12046 +" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Look at the first lines of the dataframe\n", "orf.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Calculate the distances of the insertions from the ORF TSS" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "collapsed": false }, "outputs": [], "source": [ "distances = calculate_distances(orf, insertions)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Represent with a histogram the distribution of the Ty1 insertions aroung ORF TSS. " ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nZcM9dwBw5dU3pLkmIiIy1dQyIiIiIiIiaaFkRERERERE0kLJiIiIiIiIpIWSERERERERSQslIyIi\nIiIikhaaTUtERDLKtdffCIA/EEpzTUREZKqpZURERERERNJCyYiIiIiIiKSFkhEREREREUkLJSMi\nIiIiIpIWSkZERERERCQtNJuWiIhklA333AHAlVffkOaaiIjIVFPLiIiIiIiIpIWSERERERERSQsl\nIyIiIiIikhZKRkREREREJC2UjIiIiIiISFpoNi0REcko115/IwD+QCjNNRERkammlhEREREREUkL\nJSMiIiIiIpIWSkZERERERCQtlIyIiIiIiEhaKBkREREREZG00GxaIiKSUTbccwcAV159Q5prIiIi\nU00tIyIiIiIikhZKRkREREREJC2UjIiIiIiISFooGRERERERkbRQMiIiIiIiImmh2bRERCSjXHv9\njQD4A6E010RERKaaWkZERERERCQtlIyIiIiIiEhaKBkREREREZG0UDIiIiIiIiJpoWRERERERETS\nQrNpiYhIRtlwzx0AXHn1DWmuiYiITDW1jIiIiIiISFooGRERERERkbRQMiIiIiIiImmhZERERERE\nRNJCyYiIiIiIiKSFZtMSEZGMcu31NwLgD4TSXBMREZlqahkREREREZG0UDIiIiIiIiJpoWRERERE\nRETSQsmIiIiIiIikhZIRERERERFJC82mJSIiGWXDPXcAcOXVN6S5JiIiMtXUMiIiIiIiImmhZERE\nRERERNJCyYiIiIiIiKSFkhEREREREUkLJSMiIiIiIpIWmk1LREQyyrXX3wiAPxBKc01ERGSqqWVE\nRERERETSQsmIiIiIiIikhZIRERERERFJi3GNGTHGfAr4MjAf2AR8wVr74ijxa4A7gDOADuCH1trv\nJMW8G7gdWAM0ArdZa3+WFHMF8E1gGbAd+Lq19uHJ1E1ERERERDLDmC0jxpi/AO4EfglcBXQBjxpj\nlowQXwM8BkSAjwA/Br5ljPn7hJhVwCPALuBK4CHgp8aYDyXEXADcCzwBXAFsBn5jjFk/0bqJiIiI\niEjmGLVlxBjjAW4B7rLWftPd9hhggb8DbhzmsL/BSXIus9YOAI8YY3KBrxpjvmetjQD/AOy21l7j\nHrPRGFMF3ATc5267Gdhorb0xIWYx8DXg8gnWTUREMtyGe+4A4Mqrb0hzTUREZKqN1TKyHFgEPBjf\n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\nxN9HZUndaw7J0wAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_distances(distances)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.4.3" } }, "nbformat": 4, "nbformat_minor": 0 }