{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### Running in Docker container on Ostrich\n", "\n", "#### Started Docker container with the following command:\n", "\n", "```docker run -p 8888:8888 -v /Users/sam/data/:/data -v /Users/sam/owl_home/:/owl_home -v /Users/sam/owl_web/:/owl_web -v /Users/sam/gitrepos:/gitrepos -it f99537d7e06a```\n", "\n", "The command allows access to Jupyter Notebook over port 8888 and makes my Jupyter Notebook GitHub repo and my data files on Owl/home and Owl/web accessible to the Docker container.\n", "\n", "Once the container was started, started Jupyter Notebook with the following command inside the Docker container:\n", "\n", "```jupyter notebook```\n", "\n", "This is configured in the Docker container to launch a Jupyter Notebook without a browser on port 8888.\n", "\n", "The Docker container is running on an image created from this [Dockerfile (Git commit 443bc42)](https://github.com/sr320/LabDocs/blob/443bc425cd36d23a07cf12625f38b7e3a397b9be/code/dockerfiles/Dockerfile.bio)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Fri Dec 30 20:17:00 UTC 2016\n" ] } ], "source": [ "%%bash\n", "date" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Check computer specs" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0f2bca9c664b\n" ] } ], "source": [ "%%bash\n", "hostname" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Architecture: x86_64\n", "CPU op-mode(s): 32-bit, 64-bit\n", "Byte Order: Little Endian\n", "CPU(s): 8\n", "On-line CPU(s) list: 0-7\n", "Thread(s) per core: 1\n", "Core(s) per socket: 8\n", "Socket(s): 1\n", "Vendor ID: GenuineIntel\n", "CPU family: 6\n", "Model: 26\n", "Model name: Intel(R) Xeon(R) CPU E5520 @ 2.27GHz\n", "Stepping: 5\n", "CPU MHz: 2260.998\n", "BogoMIPS: 4521.99\n", "Hypervisor vendor: KVM\n", "Virtualization type: full\n", "L1d cache: 32K\n", "L1i cache: 32K\n", "L2 cache: 256K\n", "L3 cache: 8192K\n" ] } ], "source": [ "%%bash\n", "lscpu" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### View MD5 checksums" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### View Genewiz MD5s" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "17dbac3c0a80c19b7cf9c65840188dc0 EPI-103_S27_L005_R1_001.fastq.gz\r\n", "4ec237a381460fd7635b77b84bc530f1 EPI-103_S27_L005_R2_001.fastq.gz\r\n", "1d4fb44a60cb4b50367f35751d71b040 EPI-104_S28_L005_R1_001.fastq.gz\r\n", "f534dea1569d9c3a7345fe0e6230f10d EPI-104_S28_L005_R2_001.fastq.gz\r\n", "5211ee55bda2d9fc104cd3fd862b4e5a EPI-111_S29_L005_R1_001.fastq.gz\r\n", "6bf50011fe4dacad4379828897d3b99b EPI-111_S29_L005_R2_001.fastq.gz\r\n", "7ca64d5b500f0768b3ce697c21614948 EPI-113_S30_L005_R1_001.fastq.gz\r\n", "ddc2988966835ea69cfd0f4a94d65cba EPI-113_S30_L005_R2_001.fastq.gz\r\n", "1cae2a72398e94e68947eca56f875d97 EPI-119_S31_L005_R1_001.fastq.gz\r\n", "8f3ab566a1e10c978a4ed6a90ecfcda2 EPI-119_S31_L005_R2_001.fastq.gz\r\n", "6d8058be169234534288abbd36066dee EPI-120_S32_L005_R1_001.fastq.gz\r\n", "3b2c02d050a9fc60a5b3894dcd8e5fd6 EPI-120_S32_L005_R2_001.fastq.gz\r\n", "1849c59c8f788a87ce038b684b7f50b0 EPI-127_S33_L005_R1_001.fastq.gz\r\n", "85b48a03757fbd3ae6738dce05cc62b8 EPI-127_S33_L005_R2_001.fastq.gz\r\n", "e84ecd41bb4254fd6d0307b39c662c79 EPI-128_S34_L005_R1_001.fastq.gz\r\n", "2256a06956601d00e8126f78c1ebd671 EPI-128_S34_L005_R2_001.fastq.gz\r\n", "b8772ae3cfef50928fdc8551bba3da39 EPI-135_S35_L005_R1_001.fastq.gz\r\n", "3a3da121e8871e57d7a09180831d2ffd EPI-135_S35_L005_R2_001.fastq.gz\r\n", "a59b275111575bcf5907561dabf3872a EPI-136_S36_L005_R1_001.fastq.gz\r\n", "b73945c56c67f79fb92c1e9283d90bdf EPI-136_S36_L005_R2_001.fastq.gz\r\n", "c89f049090efd2a6825cedee82f0c643 EPI-143_S37_L005_R1_001.fastq.gz\r\n", "01442d00a6aa4fb2bb83d1822124ee0d EPI-143_S37_L005_R2_001.fastq.gz\r\n", "74461e7cfc369eef5f3350e033de8544 EPI-145_S38_L005_R1_001.fastq.gz\r\n", "d7ec7b3c0766ea6bd16a992f275595cb EPI-145_S38_L005_R2_001.fastq.gz\r\n" ] } ], "source": [ "cat /owl_web/nightingales/P_generosa/md5sum_DW1604132.txt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### View our MD5 checksums" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "17dbac3c0a80c19b7cf9c65840188dc0 ftp2.genewiz.com/DW1604132_R3/EPI-103_S27_L005_R1_001.fastq.gz\n", "4ec237a381460fd7635b77b84bc530f1 ftp2.genewiz.com/DW1604132_R3/EPI-103_S27_L005_R2_001.fastq.gz\n", "1d4fb44a60cb4b50367f35751d71b040 ftp2.genewiz.com/DW1604132_R3/EPI-104_S28_L005_R1_001.fastq.gz\n", "f534dea1569d9c3a7345fe0e6230f10d ftp2.genewiz.com/DW1604132_R3/EPI-104_S28_L005_R2_001.fastq.gz\n", "5211ee55bda2d9fc104cd3fd862b4e5a ftp2.genewiz.com/DW1604132_R3/EPI-111_S29_L005_R1_001.fastq.gz\n", "6bf50011fe4dacad4379828897d3b99b ftp2.genewiz.com/DW1604132_R3/EPI-111_S29_L005_R2_001.fastq.gz\n", "7ca64d5b500f0768b3ce697c21614948 ftp2.genewiz.com/DW1604132_R3/EPI-113_S30_L005_R1_001.fastq.gz\n", "ddc2988966835ea69cfd0f4a94d65cba ftp2.genewiz.com/DW1604132_R3/EPI-113_S30_L005_R2_001.fastq.gz\n", "1cae2a72398e94e68947eca56f875d97 ftp2.genewiz.com/DW1604132_R3/EPI-119_S31_L005_R1_001.fastq.gz\n", "8f3ab566a1e10c978a4ed6a90ecfcda2 ftp2.genewiz.com/DW1604132_R3/EPI-119_S31_L005_R2_001.fastq.gz\n", "6d8058be169234534288abbd36066dee ftp2.genewiz.com/DW1604132_R3/EPI-120_S32_L005_R1_001.fastq.gz\n", "3b2c02d050a9fc60a5b3894dcd8e5fd6 ftp2.genewiz.com/DW1604132_R3/EPI-120_S32_L005_R2_001.fastq.gz\n", "1849c59c8f788a87ce038b684b7f50b0 ftp2.genewiz.com/DW1604132_R3/EPI-127_S33_L005_R1_001.fastq.gz\n", "85b48a03757fbd3ae6738dce05cc62b8 ftp2.genewiz.com/DW1604132_R3/EPI-127_S33_L005_R2_001.fastq.gz\n", "e84ecd41bb4254fd6d0307b39c662c79 ftp2.genewiz.com/DW1604132_R3/EPI-128_S34_L005_R1_001.fastq.gz\n", "2256a06956601d00e8126f78c1ebd671 ftp2.genewiz.com/DW1604132_R3/EPI-128_S34_L005_R2_001.fastq.gz\n", "b8772ae3cfef50928fdc8551bba3da39 ftp2.genewiz.com/DW1604132_R3/EPI-135_S35_L005_R1_001.fastq.gz\n", "3a3da121e8871e57d7a09180831d2ffd ftp2.genewiz.com/DW1604132_R3/EPI-135_S35_L005_R2_001.fastq.gz\n", "a59b275111575bcf5907561dabf3872a ftp2.genewiz.com/DW1604132_R3/EPI-136_S36_L005_R1_001.fastq.gz\n", "b73945c56c67f79fb92c1e9283d90bdf ftp2.genewiz.com/DW1604132_R3/EPI-136_S36_L005_R2_001.fastq.gz\n", "c89f049090efd2a6825cedee82f0c643 ftp2.genewiz.com/DW1604132_R3/EPI-143_S37_L005_R1_001.fastq.gz\n", "01442d00a6aa4fb2bb83d1822124ee0d ftp2.genewiz.com/DW1604132_R3/EPI-143_S37_L005_R2_001.fastq.gz\n", "74461e7cfc369eef5f3350e033de8544 ftp2.genewiz.com/DW1604132_R3/EPI-145_S38_L005_R1_001.fastq.gz\n", "d7ec7b3c0766ea6bd16a992f275595cb ftp2.genewiz.com/DW1604132_R3/EPI-145_S38_L005_R2_001.fastq.gz\n" ] } ], "source": [ "%%bash\n", "grep EPI /owl_web/nightingales/P_generosa/checksums.md5" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Remove path from my checksums file" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [], "source": [ "%%bash\n", "sed -i 's/DW1604132_R3\\/\\/DW1604132_R3\\///g' /owl_web/nightingales/P_generosa/checksums.md5" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "17dbac3c0a80c19b7cf9c65840188dc0 EPI-103_S27_L005_R1_001.fastq.gz\n", "4ec237a381460fd7635b77b84bc530f1 EPI-103_S27_L005_R2_001.fastq.gz\n", "1d4fb44a60cb4b50367f35751d71b040 EPI-104_S28_L005_R1_001.fastq.gz\n", "f534dea1569d9c3a7345fe0e6230f10d EPI-104_S28_L005_R2_001.fastq.gz\n", "5211ee55bda2d9fc104cd3fd862b4e5a EPI-111_S29_L005_R1_001.fastq.gz\n", "6bf50011fe4dacad4379828897d3b99b EPI-111_S29_L005_R2_001.fastq.gz\n", "7ca64d5b500f0768b3ce697c21614948 EPI-113_S30_L005_R1_001.fastq.gz\n", "ddc2988966835ea69cfd0f4a94d65cba EPI-113_S30_L005_R2_001.fastq.gz\n", "1cae2a72398e94e68947eca56f875d97 EPI-119_S31_L005_R1_001.fastq.gz\n", "8f3ab566a1e10c978a4ed6a90ecfcda2 EPI-119_S31_L005_R2_001.fastq.gz\n", "6d8058be169234534288abbd36066dee EPI-120_S32_L005_R1_001.fastq.gz\n", "3b2c02d050a9fc60a5b3894dcd8e5fd6 EPI-120_S32_L005_R2_001.fastq.gz\n", "1849c59c8f788a87ce038b684b7f50b0 EPI-127_S33_L005_R1_001.fastq.gz\n", "85b48a03757fbd3ae6738dce05cc62b8 EPI-127_S33_L005_R2_001.fastq.gz\n", "e84ecd41bb4254fd6d0307b39c662c79 EPI-128_S34_L005_R1_001.fastq.gz\n", "2256a06956601d00e8126f78c1ebd671 EPI-128_S34_L005_R2_001.fastq.gz\n", "b8772ae3cfef50928fdc8551bba3da39 EPI-135_S35_L005_R1_001.fastq.gz\n", "3a3da121e8871e57d7a09180831d2ffd EPI-135_S35_L005_R2_001.fastq.gz\n", "a59b275111575bcf5907561dabf3872a EPI-136_S36_L005_R1_001.fastq.gz\n", "b73945c56c67f79fb92c1e9283d90bdf EPI-136_S36_L005_R2_001.fastq.gz\n", "c89f049090efd2a6825cedee82f0c643 EPI-143_S37_L005_R1_001.fastq.gz\n", "01442d00a6aa4fb2bb83d1822124ee0d EPI-143_S37_L005_R2_001.fastq.gz\n", "74461e7cfc369eef5f3350e033de8544 EPI-145_S38_L005_R1_001.fastq.gz\n", "d7ec7b3c0766ea6bd16a992f275595cb EPI-145_S38_L005_R2_001.fastq.gz\n" ] } ], "source": [ "%%bash\n", "grep EPI /owl_web/nightingales/P_generosa/checksums.md5" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Compare checksums" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### The gist is that the output from the awk command is saved to an array. Then a for loop is run which iterates over the array and prints each position.\n", "\n", "---\n", "###### Break down the first line:\n", "\n", "```genewiz_md5=()``` - This is an empty array called \"genewiz_md5\".\n", "\n", "```$()``` - This is an empty command substitution. The stdout of commands within the parenthese are stored.\n", "\n", "```sort -k2``` - Sorts on column 2 of the file, which is the filename for each corresponding checksum.\n", "\n", "```awk '/EPI/{print $1}' md5_file``` - Awk looks for any lines from the input file (md5_file) with \"EPI\" in them. If a line contains \"EPI\", awk prints the first field (i.e. the first column).\n", "\n", "Summary - The output from each result printed by awk is saved in an auto-incrementing fashion in the array called \"genewiz_md5\".\n", "\n", "---\n", "###### Break down the 3rd line:\n", "\n", "```count=$(())``` - A variable called \"count\". This is a combination of empty command substitution and bash arithmeetic. Double parentheses are required for bash arithmetic.\n", "\n", "\n", "```${#genewiz_md5[@]} - 1``` - This prints the number of indeces in the array called \"genewiz_md5\" and subtracts 1 from that number. Subtraction of one is necessary because bash is a zero-based language (e.g. the array starts at index 0).\n", "\n", "Summary - The length of the array minus one is saved the the variable called \"count\".\n", "\n", "---\n", "###### Break down the for loop:\n", "\n", "```((i=0;i<=$count;++i))``` - Sets variable \"i\" to 0. Then, the loop evaluates whether or not the value of \"i\" is than/equal to the value in the variable \"count\". If that condition is met, the loop increases the value stored in \"i\" by 1 and continues through the loop.\n", "\n", "```printf \"%s\\n\" \"${genewiz_md5[$i]}\"``` - Prints the value at the array index designated by the value currently stored in \"i\" (the printing is specified by the \"%s\", which means string). This is followed by printing a new line (\\n).\n", "\n", "```${genewiz_filename[$i]##*/}``` - Like before, this prints the value of the array at each index specified by the value stored in \"i\". It also uses parameter substitution for substring removal. The ```##*/``` matches the longest pattern before, and including the last slash, and deletes that pattern. This effectively removes the full path details and leaves us with just the filename.\n", "\n", "Summary - This prints the value at each position within the array and uses printf to improve legibility of output." ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "EPI-103_S27_L005_R1_001.fastq.gz 17dbac3c0a80c19b7cf9c65840188dc0\n", "EPI-103_S27_L005_R1_001.fastq.gz 17dbac3c0a80c19b7cf9c65840188dc0\n", "\n", "EPI-103_S27_L005_R2_001.fastq.gz 4ec237a381460fd7635b77b84bc530f1\n", "EPI-103_S27_L005_R2_001.fastq.gz 4ec237a381460fd7635b77b84bc530f1\n", "\n", "EPI-104_S28_L005_R1_001.fastq.gz 1d4fb44a60cb4b50367f35751d71b040\n", "EPI-104_S28_L005_R1_001.fastq.gz 1d4fb44a60cb4b50367f35751d71b040\n", "\n", "EPI-104_S28_L005_R2_001.fastq.gz f534dea1569d9c3a7345fe0e6230f10d\n", "EPI-104_S28_L005_R2_001.fastq.gz f534dea1569d9c3a7345fe0e6230f10d\n", "\n", "EPI-111_S29_L005_R1_001.fastq.gz 5211ee55bda2d9fc104cd3fd862b4e5a\n", "EPI-111_S29_L005_R1_001.fastq.gz 5211ee55bda2d9fc104cd3fd862b4e5a\n", "\n", "EPI-111_S29_L005_R2_001.fastq.gz 6bf50011fe4dacad4379828897d3b99b\n", "EPI-111_S29_L005_R2_001.fastq.gz 6bf50011fe4dacad4379828897d3b99b\n", "\n", "EPI-113_S30_L005_R1_001.fastq.gz 7ca64d5b500f0768b3ce697c21614948\n", "EPI-113_S30_L005_R1_001.fastq.gz 7ca64d5b500f0768b3ce697c21614948\n", "\n", "EPI-113_S30_L005_R2_001.fastq.gz ddc2988966835ea69cfd0f4a94d65cba\n", "EPI-113_S30_L005_R2_001.fastq.gz ddc2988966835ea69cfd0f4a94d65cba\n", "\n", "EPI-119_S31_L005_R1_001.fastq.gz 1cae2a72398e94e68947eca56f875d97\n", "EPI-119_S31_L005_R1_001.fastq.gz 1cae2a72398e94e68947eca56f875d97\n", "\n", "EPI-119_S31_L005_R2_001.fastq.gz 8f3ab566a1e10c978a4ed6a90ecfcda2\n", "EPI-119_S31_L005_R2_001.fastq.gz 8f3ab566a1e10c978a4ed6a90ecfcda2\n", "\n", "EPI-120_S32_L005_R1_001.fastq.gz 6d8058be169234534288abbd36066dee\n", "EPI-120_S32_L005_R1_001.fastq.gz 6d8058be169234534288abbd36066dee\n", "\n", "EPI-120_S32_L005_R2_001.fastq.gz 3b2c02d050a9fc60a5b3894dcd8e5fd6\n", "EPI-120_S32_L005_R2_001.fastq.gz 3b2c02d050a9fc60a5b3894dcd8e5fd6\n", "\n", "EPI-127_S33_L005_R1_001.fastq.gz 1849c59c8f788a87ce038b684b7f50b0\n", "EPI-127_S33_L005_R1_001.fastq.gz 1849c59c8f788a87ce038b684b7f50b0\n", "\n", "EPI-127_S33_L005_R2_001.fastq.gz 85b48a03757fbd3ae6738dce05cc62b8\n", "EPI-127_S33_L005_R2_001.fastq.gz 85b48a03757fbd3ae6738dce05cc62b8\n", "\n", "EPI-128_S34_L005_R1_001.fastq.gz e84ecd41bb4254fd6d0307b39c662c79\n", "EPI-128_S34_L005_R1_001.fastq.gz e84ecd41bb4254fd6d0307b39c662c79\n", "\n", "EPI-128_S34_L005_R2_001.fastq.gz 2256a06956601d00e8126f78c1ebd671\n", "EPI-128_S34_L005_R2_001.fastq.gz 2256a06956601d00e8126f78c1ebd671\n", "\n", "EPI-135_S35_L005_R1_001.fastq.gz b8772ae3cfef50928fdc8551bba3da39\n", "EPI-135_S35_L005_R1_001.fastq.gz b8772ae3cfef50928fdc8551bba3da39\n", "\n", "EPI-135_S35_L005_R2_001.fastq.gz 3a3da121e8871e57d7a09180831d2ffd\n", "EPI-135_S35_L005_R2_001.fastq.gz 3a3da121e8871e57d7a09180831d2ffd\n", "\n", "EPI-136_S36_L005_R1_001.fastq.gz a59b275111575bcf5907561dabf3872a\n", "EPI-136_S36_L005_R1_001.fastq.gz a59b275111575bcf5907561dabf3872a\n", "\n", "EPI-136_S36_L005_R2_001.fastq.gz b73945c56c67f79fb92c1e9283d90bdf\n", "EPI-136_S36_L005_R2_001.fastq.gz b73945c56c67f79fb92c1e9283d90bdf\n", "\n", "EPI-143_S37_L005_R1_001.fastq.gz c89f049090efd2a6825cedee82f0c643\n", "EPI-143_S37_L005_R1_001.fastq.gz c89f049090efd2a6825cedee82f0c643\n", "\n", "EPI-143_S37_L005_R2_001.fastq.gz 01442d00a6aa4fb2bb83d1822124ee0d\n", "EPI-143_S37_L005_R2_001.fastq.gz 01442d00a6aa4fb2bb83d1822124ee0d\n", "\n", "EPI-145_S38_L005_R1_001.fastq.gz 74461e7cfc369eef5f3350e033de8544\n", "EPI-145_S38_L005_R1_001.fastq.gz 74461e7cfc369eef5f3350e033de8544\n", "\n", "EPI-145_S38_L005_R2_001.fastq.gz d7ec7b3c0766ea6bd16a992f275595cb\n", "EPI-145_S38_L005_R2_001.fastq.gz d7ec7b3c0766ea6bd16a992f275595cb\n", "\n" ] } ], "source": [ "%%bash\n", "genewiz_md5=($(sort -k2 /owl_web/nightingales/P_generosa/md5sum_DW1604132.txt | awk '/gz/{print $1}'))\n", "genewiz_filename=($(sort -k2 /owl_web/nightingales/P_generosa/md5sum_DW1604132.txt | awk '/gz/{print $2}'))\n", "my_md5=($(awk '/EPI/{print $1}' /owl_web/nightingales/P_generosa/checksums.md5))\n", "my_filename=($(awk '/EPI/{print $2}' /owl_web/nightingales/P_generosa/checksums.md5))\n", "count=$(( ${#genewiz_md5[@]} - 1 ))\n", "for ((i=0;i<=$count;++i))\n", " do\n", " printf \"%s %s\\n\" \"${genewiz_filename[$i]##*/}\" \"${genewiz_md5[$i]}\"\n", " printf \"%s %s\\n\\n\" \"${my_filename[$i]##*/}\" \"${my_md5[$i]}\"\n", " done" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Visual inspection suggests checksums are good! \n", "\n", "#### Will move these files out of this subdirectory to the ```nightingales/P_generosa``` directory." ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "\n", "real\t0m0.910s\n", "user\t0m0.010s\n", "sys\t0m0.000s\n" ] } ], "source": [ "%%bash\n", "time for file in /owl_web/nightingales/P_generosa/ftp2.genewiz.com/DW1604132_R3/*.gz\n", " do\n", " mv \"$file\" /owl_web/nightingales/P_generosa/\n", " done" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%%bash\n", "ls /owl_web/nightingales/P_generosa/ftp2.genewiz.com/DW1604132_R3/" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "total 144G\n", "-rw-rw-rw- 1 srlab staff 2.8K Nov 2 19:29 readme.md\n", "-rw-rw-rw- 1 srlab staff 1.6K Dec 30 20:00 md5sum_DW1604132.txt\n", "drwxrwxrwx 1 srlab staff 264 Dec 29 23:52 ftp2.genewiz.com\n", "-rw-rw-rw- 1 srlab staff 3.6K Dec 30 20:33 checksums.md5\n", "-rw-rw-rw- 1 srlab staff 11G Jun 30 2015 Geo_Pool_M_CTTGTA_L006_R2_001.fastq.gz\n", "-rw-rw-rw- 1 srlab staff 11G Jun 30 2015 Geo_Pool_M_CTTGTA_L006_R1_001.fastq.gz\n", "-rw-rw-rw- 1 srlab staff 9.4G Jun 30 2015 Geo_Pool_F_GGCTAC_L006_R2_001.fastq.gz\n", "-rw-rw-rw- 1 srlab staff 9.3G Jun 30 2015 Geo_Pool_F_GGCTAC_L006_R1_001.fastq.gz\n", "-rw-rw-rw- 1 srlab staff 1.5G Dec 28 18:33 EPI-145_S38_L005_R2_001.fastq.gz\n", "-rw-rw-rw- 1 srlab staff 1.5G Dec 28 18:33 EPI-145_S38_L005_R1_001.fastq.gz\n", "-rw-rw-rw- 1 srlab staff 1.3G Dec 28 18:33 EPI-143_S37_L005_R2_001.fastq.gz\n", "-rw-rw-rw- 1 srlab staff 1.3G Dec 28 18:33 EPI-143_S37_L005_R1_001.fastq.gz\n", "-rw-rw-rw- 1 srlab staff 1.6G Dec 28 18:33 EPI-136_S36_L005_R2_001.fastq.gz\n", "-rw-rw-rw- 1 srlab staff 1.6G Dec 28 18:33 EPI-136_S36_L005_R1_001.fastq.gz\n", "-rw-rw-rw- 1 srlab staff 1.7G Dec 28 18:33 EPI-135_S35_L005_R2_001.fastq.gz\n", "-rw-rw-rw- 1 srlab staff 1.6G Dec 28 18:33 EPI-135_S35_L005_R1_001.fastq.gz\n", "-rw-rw-rw- 1 srlab staff 1.4G Dec 28 18:33 EPI-128_S34_L005_R2_001.fastq.gz\n", "-rw-rw-rw- 1 srlab staff 1.4G Dec 28 18:33 EPI-128_S34_L005_R1_001.fastq.gz\n", "-rw-rw-rw- 1 srlab staff 1.3G Dec 28 18:33 EPI-127_S33_L005_R2_001.fastq.gz\n", "-rw-rw-rw- 1 srlab staff 1.3G Dec 28 18:33 EPI-127_S33_L005_R1_001.fastq.gz\n", "-rw-rw-rw- 1 srlab staff 1.4G Dec 28 18:33 EPI-120_S32_L005_R2_001.fastq.gz\n", "-rw-rw-rw- 1 srlab staff 1.4G Dec 28 18:33 EPI-120_S32_L005_R1_001.fastq.gz\n", "-rw-rw-rw- 1 srlab staff 1.7G Dec 28 18:33 EPI-119_S31_L005_R2_001.fastq.gz\n", "-rw-rw-rw- 1 srlab staff 1.7G Dec 28 18:33 EPI-119_S31_L005_R1_001.fastq.gz\n", "-rw-rw-rw- 1 srlab staff 1.5G Dec 28 18:33 EPI-113_S30_L005_R2_001.fastq.gz\n", "-rw-rw-rw- 1 srlab staff 1.5G Dec 28 18:33 EPI-113_S30_L005_R1_001.fastq.gz\n", "-rw-rw-rw- 1 srlab staff 1.5G Dec 28 18:33 EPI-111_S29_L005_R2_001.fastq.gz\n", "-rw-rw-rw- 1 srlab staff 1.6G Dec 28 18:33 EPI-111_S29_L005_R1_001.fastq.gz\n", "-rw-rw-rw- 1 srlab staff 1.7G Dec 28 18:33 EPI-104_S28_L005_R2_001.fastq.gz\n", "-rw-rw-rw- 1 srlab staff 1.7G Dec 28 18:33 EPI-104_S28_L005_R1_001.fastq.gz\n", "-rw-rw-rw- 1 srlab staff 1.2G Dec 28 18:33 EPI-103_S27_L005_R2_001.fastq.gz\n", "-rw-rw-rw- 1 srlab staff 1.2G Dec 28 18:33 EPI-103_S27_L005_R1_001.fastq.gz\n", "-rw-rw-rw- 1 srlab staff 1.3G Jan 25 2016 160103_I137_FCH3V5YBBXX_L6_WHPANwalDDACDTAAPEI-102_2.fq.gz\n", "-rw-rw-rw- 1 srlab staff 1.2G Jan 25 2016 160103_I137_FCH3V5YBBXX_L6_WHPANwalDDACDTAAPEI-102_1.fq.gz\n", "-rw-rw-rw- 1 srlab staff 1.9G Jan 27 2016 160103_I137_FCH3V5YBBXX_L6_WHPANwalDDABDLAAPEI-100_2.fq.gz\n", "-rw-rw-rw- 1 srlab staff 2.0G Jan 25 2016 160103_I137_FCH3V5YBBXX_L6_WHPANwalDDABDLAAPEI-100_1.fq.gz\n", "-rw-rw-rw- 1 srlab staff 1.3G Jan 25 2016 160103_I137_FCH3V5YBBXX_L5_WHPANwalDDACDTAAPEI-102_2.fq.gz\n", "-rw-rw-rw- 1 srlab staff 1.2G Jan 25 2016 160103_I137_FCH3V5YBBXX_L5_WHPANwalDDACDTAAPEI-102_1.fq.gz\n", "-rw-rw-rw- 1 srlab staff 2.3G Jan 25 2016 160103_I137_FCH3V5YBBXX_L5_WHPANwalDDABDLAAPEI-100_2.fq.gz\n", "-rw-rw-rw- 1 srlab staff 2.1G Jan 25 2016 160103_I137_FCH3V5YBBXX_L5_WHPANwalDDABDLAAPEI-100_1.fq.gz\n", "-rw-rw-rw- 1 srlab staff 2.0G Jan 25 2016 160103_I137_FCH3V5YBBXX_L4_WHPANwalDDAADWAAPEI-101_2.fq.gz\n", "-rw-rw-rw- 1 srlab staff 1.8G Jan 25 2016 160103_I137_FCH3V5YBBXX_L4_WHPANwalDDAADWAAPEI-101_1.fq.gz\n", "-rw-rw-rw- 1 srlab staff 1.9G Jan 25 2016 160103_I137_FCH3V5YBBXX_L3_WHPANwalDDAADWAAPEI-101_2.fq.gz\n", "-rw-rw-rw- 1 srlab staff 1.8G Jan 25 2016 160103_I137_FCH3V5YBBXX_L3_WHPANwalDDAADWAAPEI-101_1.fq.gz\n", "-rw-rw-rw- 1 srlab staff 7.2G Jan 25 2016 151122_I136_FCH3L2FBBXX_L7_wHAXPI023990-97_2.fq.gz\n", "-rw-rw-rw- 1 srlab staff 6.4G Jan 25 2016 151122_I136_FCH3L2FBBXX_L7_wHAXPI023990-97_1.fq.gz\n", "-rw-rw-rw- 1 srlab staff 8.1G Jan 25 2016 151114_I191_FCH3Y35BCXX_L2_wHAMPI023988-81_2.fq.gz\n", "-rw-rw-rw- 1 srlab staff 7.8G Jan 25 2016 151114_I191_FCH3Y35BCXX_L2_wHAMPI023988-81_1.fq.gz\n", "-rw-rw-rw- 1 srlab staff 11G Jan 25 2016 151114_I191_FCH3Y35BCXX_L1_wHAIPI023989-79_2.fq.gz\n", "-rw-rw-rw- 1 srlab staff 9.9G Jan 25 2016 151114_I191_FCH3Y35BCXX_L1_wHAIPI023989-79_1.fq.gz\n" ] } ], "source": [ "%%bash\n", "ls -lhr /owl_web/nightingales/P_generosa" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Verify checksums after moving files" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Generate new, temporary checksums for the newly moved files." ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "\n", "real\t23m51.232s\n", "user\t0m3.800s\n", "sys\t3m53.760s\n" ] } ], "source": [ "%%bash\n", "time for i in /owl_web/nightingales/P_generosa/EPI*.gz\n", " do\n", " md5sum \"$i\" >> /owl_web/nightingales/P_generosa/checksums.tmp\n", " done" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "17dbac3c0a80c19b7cf9c65840188dc0 /owl_web/nightingales/P_generosa/EPI-103_S27_L005_R1_001.fastq.gz\n", "4ec237a381460fd7635b77b84bc530f1 /owl_web/nightingales/P_generosa/EPI-103_S27_L005_R2_001.fastq.gz\n", "1d4fb44a60cb4b50367f35751d71b040 /owl_web/nightingales/P_generosa/EPI-104_S28_L005_R1_001.fastq.gz\n", "f534dea1569d9c3a7345fe0e6230f10d /owl_web/nightingales/P_generosa/EPI-104_S28_L005_R2_001.fastq.gz\n", "5211ee55bda2d9fc104cd3fd862b4e5a /owl_web/nightingales/P_generosa/EPI-111_S29_L005_R1_001.fastq.gz\n", "6bf50011fe4dacad4379828897d3b99b /owl_web/nightingales/P_generosa/EPI-111_S29_L005_R2_001.fastq.gz\n", "7ca64d5b500f0768b3ce697c21614948 /owl_web/nightingales/P_generosa/EPI-113_S30_L005_R1_001.fastq.gz\n", "ddc2988966835ea69cfd0f4a94d65cba /owl_web/nightingales/P_generosa/EPI-113_S30_L005_R2_001.fastq.gz\n", "1cae2a72398e94e68947eca56f875d97 /owl_web/nightingales/P_generosa/EPI-119_S31_L005_R1_001.fastq.gz\n", "8f3ab566a1e10c978a4ed6a90ecfcda2 /owl_web/nightingales/P_generosa/EPI-119_S31_L005_R2_001.fastq.gz\n", "6d8058be169234534288abbd36066dee /owl_web/nightingales/P_generosa/EPI-120_S32_L005_R1_001.fastq.gz\n", "3b2c02d050a9fc60a5b3894dcd8e5fd6 /owl_web/nightingales/P_generosa/EPI-120_S32_L005_R2_001.fastq.gz\n", "1849c59c8f788a87ce038b684b7f50b0 /owl_web/nightingales/P_generosa/EPI-127_S33_L005_R1_001.fastq.gz\n", "85b48a03757fbd3ae6738dce05cc62b8 /owl_web/nightingales/P_generosa/EPI-127_S33_L005_R2_001.fastq.gz\n", "e84ecd41bb4254fd6d0307b39c662c79 /owl_web/nightingales/P_generosa/EPI-128_S34_L005_R1_001.fastq.gz\n", "2256a06956601d00e8126f78c1ebd671 /owl_web/nightingales/P_generosa/EPI-128_S34_L005_R2_001.fastq.gz\n", "b8772ae3cfef50928fdc8551bba3da39 /owl_web/nightingales/P_generosa/EPI-135_S35_L005_R1_001.fastq.gz\n", "3a3da121e8871e57d7a09180831d2ffd /owl_web/nightingales/P_generosa/EPI-135_S35_L005_R2_001.fastq.gz\n", "a59b275111575bcf5907561dabf3872a /owl_web/nightingales/P_generosa/EPI-136_S36_L005_R1_001.fastq.gz\n", "b73945c56c67f79fb92c1e9283d90bdf /owl_web/nightingales/P_generosa/EPI-136_S36_L005_R2_001.fastq.gz\n", "c89f049090efd2a6825cedee82f0c643 /owl_web/nightingales/P_generosa/EPI-143_S37_L005_R1_001.fastq.gz\n", "01442d00a6aa4fb2bb83d1822124ee0d /owl_web/nightingales/P_generosa/EPI-143_S37_L005_R2_001.fastq.gz\n", "74461e7cfc369eef5f3350e033de8544 /owl_web/nightingales/P_generosa/EPI-145_S38_L005_R1_001.fastq.gz\n", "d7ec7b3c0766ea6bd16a992f275595cb /owl_web/nightingales/P_generosa/EPI-145_S38_L005_R2_001.fastq.gz\n" ] } ], "source": [ "%%bash\n", "cat /owl_web/nightingales/P_generosa/checksums.tmp" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Remove the pathnames from the temporary checksums file." ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%%bash\n", "sed -i 's/\\/owl_web\\/nightingales\\/P_generosa\\///g' /owl_web/nightingales/P_generosa/checksums.tmp" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "17dbac3c0a80c19b7cf9c65840188dc0 EPI-103_S27_L005_R1_001.fastq.gz\n", "4ec237a381460fd7635b77b84bc530f1 EPI-103_S27_L005_R2_001.fastq.gz\n", "1d4fb44a60cb4b50367f35751d71b040 EPI-104_S28_L005_R1_001.fastq.gz\n", "f534dea1569d9c3a7345fe0e6230f10d EPI-104_S28_L005_R2_001.fastq.gz\n", "5211ee55bda2d9fc104cd3fd862b4e5a EPI-111_S29_L005_R1_001.fastq.gz\n", "6bf50011fe4dacad4379828897d3b99b EPI-111_S29_L005_R2_001.fastq.gz\n", "7ca64d5b500f0768b3ce697c21614948 EPI-113_S30_L005_R1_001.fastq.gz\n", "ddc2988966835ea69cfd0f4a94d65cba EPI-113_S30_L005_R2_001.fastq.gz\n", "1cae2a72398e94e68947eca56f875d97 EPI-119_S31_L005_R1_001.fastq.gz\n", "8f3ab566a1e10c978a4ed6a90ecfcda2 EPI-119_S31_L005_R2_001.fastq.gz\n", "6d8058be169234534288abbd36066dee EPI-120_S32_L005_R1_001.fastq.gz\n", "3b2c02d050a9fc60a5b3894dcd8e5fd6 EPI-120_S32_L005_R2_001.fastq.gz\n", "1849c59c8f788a87ce038b684b7f50b0 EPI-127_S33_L005_R1_001.fastq.gz\n", "85b48a03757fbd3ae6738dce05cc62b8 EPI-127_S33_L005_R2_001.fastq.gz\n", "e84ecd41bb4254fd6d0307b39c662c79 EPI-128_S34_L005_R1_001.fastq.gz\n", "2256a06956601d00e8126f78c1ebd671 EPI-128_S34_L005_R2_001.fastq.gz\n", "b8772ae3cfef50928fdc8551bba3da39 EPI-135_S35_L005_R1_001.fastq.gz\n", "3a3da121e8871e57d7a09180831d2ffd EPI-135_S35_L005_R2_001.fastq.gz\n", "a59b275111575bcf5907561dabf3872a EPI-136_S36_L005_R1_001.fastq.gz\n", "b73945c56c67f79fb92c1e9283d90bdf EPI-136_S36_L005_R2_001.fastq.gz\n", "c89f049090efd2a6825cedee82f0c643 EPI-143_S37_L005_R1_001.fastq.gz\n", "01442d00a6aa4fb2bb83d1822124ee0d EPI-143_S37_L005_R2_001.fastq.gz\n", "74461e7cfc369eef5f3350e033de8544 EPI-145_S38_L005_R1_001.fastq.gz\n", "d7ec7b3c0766ea6bd16a992f275595cb EPI-145_S38_L005_R2_001.fastq.gz\n" ] } ], "source": [ "%%bash\n", "cat /owl_web/nightingales/P_generosa/checksums.tmp" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Compare new checksums of moved files to checksums I originally generated when files were downloaded" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "EPI-103_S27_L005_R1_001.fastq.gz 17dbac3c0a80c19b7cf9c65840188dc0\n", "EPI-103_S27_L005_R1_001.fastq.gz 17dbac3c0a80c19b7cf9c65840188dc0\n", "\n", "EPI-103_S27_L005_R2_001.fastq.gz 4ec237a381460fd7635b77b84bc530f1\n", "EPI-103_S27_L005_R2_001.fastq.gz 4ec237a381460fd7635b77b84bc530f1\n", "\n", "EPI-104_S28_L005_R1_001.fastq.gz 1d4fb44a60cb4b50367f35751d71b040\n", "EPI-104_S28_L005_R1_001.fastq.gz 1d4fb44a60cb4b50367f35751d71b040\n", "\n", "EPI-104_S28_L005_R2_001.fastq.gz f534dea1569d9c3a7345fe0e6230f10d\n", "EPI-104_S28_L005_R2_001.fastq.gz f534dea1569d9c3a7345fe0e6230f10d\n", "\n", "EPI-111_S29_L005_R1_001.fastq.gz 5211ee55bda2d9fc104cd3fd862b4e5a\n", "EPI-111_S29_L005_R1_001.fastq.gz 5211ee55bda2d9fc104cd3fd862b4e5a\n", "\n", "EPI-111_S29_L005_R2_001.fastq.gz 6bf50011fe4dacad4379828897d3b99b\n", "EPI-111_S29_L005_R2_001.fastq.gz 6bf50011fe4dacad4379828897d3b99b\n", "\n", "EPI-113_S30_L005_R1_001.fastq.gz 7ca64d5b500f0768b3ce697c21614948\n", "EPI-113_S30_L005_R1_001.fastq.gz 7ca64d5b500f0768b3ce697c21614948\n", "\n", "EPI-113_S30_L005_R2_001.fastq.gz ddc2988966835ea69cfd0f4a94d65cba\n", "EPI-113_S30_L005_R2_001.fastq.gz ddc2988966835ea69cfd0f4a94d65cba\n", "\n", "EPI-119_S31_L005_R1_001.fastq.gz 1cae2a72398e94e68947eca56f875d97\n", "EPI-119_S31_L005_R1_001.fastq.gz 1cae2a72398e94e68947eca56f875d97\n", "\n", "EPI-119_S31_L005_R2_001.fastq.gz 8f3ab566a1e10c978a4ed6a90ecfcda2\n", "EPI-119_S31_L005_R2_001.fastq.gz 8f3ab566a1e10c978a4ed6a90ecfcda2\n", "\n", "EPI-120_S32_L005_R1_001.fastq.gz 6d8058be169234534288abbd36066dee\n", "EPI-120_S32_L005_R1_001.fastq.gz 6d8058be169234534288abbd36066dee\n", "\n", "EPI-120_S32_L005_R2_001.fastq.gz 3b2c02d050a9fc60a5b3894dcd8e5fd6\n", "EPI-120_S32_L005_R2_001.fastq.gz 3b2c02d050a9fc60a5b3894dcd8e5fd6\n", "\n", "EPI-127_S33_L005_R1_001.fastq.gz 1849c59c8f788a87ce038b684b7f50b0\n", "EPI-127_S33_L005_R1_001.fastq.gz 1849c59c8f788a87ce038b684b7f50b0\n", "\n", "EPI-127_S33_L005_R2_001.fastq.gz 85b48a03757fbd3ae6738dce05cc62b8\n", "EPI-127_S33_L005_R2_001.fastq.gz 85b48a03757fbd3ae6738dce05cc62b8\n", "\n", "EPI-128_S34_L005_R1_001.fastq.gz e84ecd41bb4254fd6d0307b39c662c79\n", "EPI-128_S34_L005_R1_001.fastq.gz e84ecd41bb4254fd6d0307b39c662c79\n", "\n", "EPI-128_S34_L005_R2_001.fastq.gz 2256a06956601d00e8126f78c1ebd671\n", "EPI-128_S34_L005_R2_001.fastq.gz 2256a06956601d00e8126f78c1ebd671\n", "\n", "EPI-135_S35_L005_R1_001.fastq.gz b8772ae3cfef50928fdc8551bba3da39\n", "EPI-135_S35_L005_R1_001.fastq.gz b8772ae3cfef50928fdc8551bba3da39\n", "\n", "EPI-135_S35_L005_R2_001.fastq.gz 3a3da121e8871e57d7a09180831d2ffd\n", "EPI-135_S35_L005_R2_001.fastq.gz 3a3da121e8871e57d7a09180831d2ffd\n", "\n", "EPI-136_S36_L005_R1_001.fastq.gz a59b275111575bcf5907561dabf3872a\n", "EPI-136_S36_L005_R1_001.fastq.gz a59b275111575bcf5907561dabf3872a\n", "\n", "EPI-136_S36_L005_R2_001.fastq.gz b73945c56c67f79fb92c1e9283d90bdf\n", "EPI-136_S36_L005_R2_001.fastq.gz b73945c56c67f79fb92c1e9283d90bdf\n", "\n", "EPI-143_S37_L005_R1_001.fastq.gz c89f049090efd2a6825cedee82f0c643\n", "EPI-143_S37_L005_R1_001.fastq.gz c89f049090efd2a6825cedee82f0c643\n", "\n", "EPI-143_S37_L005_R2_001.fastq.gz 01442d00a6aa4fb2bb83d1822124ee0d\n", "EPI-143_S37_L005_R2_001.fastq.gz 01442d00a6aa4fb2bb83d1822124ee0d\n", "\n", "EPI-145_S38_L005_R1_001.fastq.gz 74461e7cfc369eef5f3350e033de8544\n", "EPI-145_S38_L005_R1_001.fastq.gz 74461e7cfc369eef5f3350e033de8544\n", "\n", "EPI-145_S38_L005_R2_001.fastq.gz d7ec7b3c0766ea6bd16a992f275595cb\n", "EPI-145_S38_L005_R2_001.fastq.gz d7ec7b3c0766ea6bd16a992f275595cb\n", "\n" ] } ], "source": [ "%%bash\n", "genewiz_md5=($(sort -k2 /owl_web/nightingales/P_generosa/md5sum_DW1604132.txt | awk '/gz/{print $1}'))\n", "genewiz_filename=($(sort -k2 /owl_web/nightingales/P_generosa/md5sum_DW1604132.txt | awk '/gz/{print $2}'))\n", "my_md5=($(awk '/EPI/{print $1}' /owl_web/nightingales/P_generosa/checksums.tmp))\n", "my_filename=($(awk '/EPI/{print $2}' /owl_web/nightingales/P_generosa/checksums.tmp))\n", "count=$(( ${#genewiz_md5[@]} - 1 ))\n", "for ((i=0;i<=$count;++i))\n", " do\n", " printf \"%s %s\\n\" \"${genewiz_filename[$i]##*/}\" \"${genewiz_md5[$i]}\"\n", " printf \"%s %s\\n\\n\" \"${my_filename[$i]##*/}\" \"${my_md5[$i]}\"\n", " done" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Checksums looks good after moving files" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Remove empty Genewiz subdirectories" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%%bash\n", "rm -rf /owl_web/nightingales/P_generosa/ftp2.genewiz.com/" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Remove temporary checksums file" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": true }, "outputs": [], "source": [ "rm /owl_web/nightingales/P_generosa/checksums.tmp" ] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python [default]", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.12" } }, "nbformat": 4, "nbformat_minor": 2 }