{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Working with text" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Create a FASTA file to play with" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "cat > bgp.fasta << EOF\n", ">HSBGPG Human gene for bone gla protein (BGP)\n", "GGCAGATTCCCCCTAGACCCGCCCGCACCATGGTCAGGCATGCCCCTCCTCATCGCTGGGCACAGCCCAGAGGGT\n", "ATAAACAGTGCTGGAGGCTGGCGGGGCAGGCCAGCTGAGTCCTGAGCAGCAGCCCAGCGCAGCCACCGAGACACC\n", "ATGAGAGCCCTCACACTCCTCGCCCTATTGGCCCTGGCCGCACTTTGCATCGCTGGCCAGGCAGGTGAGTGCCCC\n", "CACCTCCCCTCAGGCCGCATTGCAGTGGGGGCTGAGAGGAGGAAGCACCATGGCCCACCTCTTCTCACCCCTTTG\n", "GCTGGCAGTCCCTTTGCAGTCTAACCACCTTGTTGCAGGCTCAATCCATTTGCCCCAGCTCTGCCCTTGCAGAGG\n", "GAGAGGAGGGAAGAGCAAGCTGCCCGAGACGCAGGGGAAGGAGGATGAGGGCCCTGGGGATGAGCTGGGGTGAAC\n", "CAGGCTCCCTTTCCTTTGCAGGTGCGAAGCCCAGCGGTGCAGAGTCCAGCAAAGGTGCAGGTATGAGGATGGACC\n", "TGATGGGTTCCTGGACCCTCCCCTCTCACCCTGGTCCCTCAGTCTCATTCCCCCACTCCTGCCACCTCCTGTCTG\n", "GCCATCAGGAAGGCCAGCCTGCTCCCCACCTGATCCTCCCAAACCCAGAGCCACCTGATGCCTGCCCCTCTGCTC\n", "CACAGCCTTTGTGTCCAAGCAGGAGGGCAGCGAGGTAGTGAAGAGACCCAGGCGCTACCTGTATCAATGGCTGGG\n", "GTGAGAGAAAAGGCAGAGCTGGGCCAAGGCCCTGCCTCTCCGGGATGGTCTGTGGGGGAGCTGCAGCAGGGAGTG\n", "GCCTCTCTGGGTTGTGGTGGGGGTACAGGCAGCCTGCCCTGGTGGGCACCCTGGAGCCCCATGTGTAGGGAGAGG\n", "AGGGATGGGCATTTTGCACGGGGGCTGATGCCACCACGTCGGGTGTCTCAGAGCCCCAGTCCCCTACCCGGATCC\n", "CCTGGAGCCCAGGAGGGAGGTGTGTGAGCTCAATCCGGACTGTGACGAGTTGGCTGACCACATCGGCTTTCAGGA\n", "GGCCTATCGGCGCTTCTACGGCCCGGTCTAGGGTGTCGCTCTGCTGGCCTGGCCGGCAACCCCAGTTCTGCTCCT\n", "CTCCAGGCACCCTTCTTTCCTCTTCCCCTTGCCCTTGCCCTGACCTCCCAGCCCTATGGATGTGGGGTCCCCATC\n", "ATCCCAGCTGCTCCCAAATAAACTCCAGAAG\n", "EOF" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 18 25 1294 bgp.fasta\n" ] } ], "source": [ "wc bgp.fasta" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Using regular expresssions" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "GGCAGATTCCCCCTAGACCCGCCCGCACCATGGTCAGGCATGCCCCTCCTCATCGCTGGGCACAGCCCAGAGGGT\n", "TGATGGGTTCCTGGACCCTCCCCTCTCACCCTGGTCCCTCAGTCTCATTCCCCCACTCCTGCCACCTCCTGTCTG\n" ] } ], "source": [ "cat bgp.fasta | \n", "grep \"CCCCC\"" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2:GGCAGATTCCCCCTAGACCCGCCCGCACCATGGTCAGGCATGCCCCTCCTCATCGCTGGGCACAGCCCAGAGGGT\n", "9:TGATGGGTTCCTGGACCCTCCCCTCTCACCCTGGTCCCTCAGTCTCATTCCCCCACTCCTGCCACCTCCTGTCTG\n" ] } ], "source": [ "cat bgp.fasta | \n", "grep -n \"CCCCC\"" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1:>HSBGPG Human gene for bone gla protein (BGP)\n", "3:ATAAACAGTGCTGGAGGCTGGCGGGGCAGGCCAGCTGAGTCCTGAGCAGCAGCCCAGCGCAGCCACCGAGACACC\n", "4:ATGAGAGCCCTCACACTCCTCGCCCTATTGGCCCTGGCCGCACTTTGCATCGCTGGCCAGGCAGGTGAGTGCCCC\n", "5:CACCTCCCCTCAGGCCGCATTGCAGTGGGGGCTGAGAGGAGGAAGCACCATGGCCCACCTCTTCTCACCCCTTTG\n", "6:GCTGGCAGTCCCTTTGCAGTCTAACCACCTTGTTGCAGGCTCAATCCATTTGCCCCAGCTCTGCCCTTGCAGAGG\n", "7:GAGAGGAGGGAAGAGCAAGCTGCCCGAGACGCAGGGGAAGGAGGATGAGGGCCCTGGGGATGAGCTGGGGTGAAC\n", "8:CAGGCTCCCTTTCCTTTGCAGGTGCGAAGCCCAGCGGTGCAGAGTCCAGCAAAGGTGCAGGTATGAGGATGGACC\n", "10:GCCATCAGGAAGGCCAGCCTGCTCCCCACCTGATCCTCCCAAACCCAGAGCCACCTGATGCCTGCCCCTCTGCTC\n", "11:CACAGCCTTTGTGTCCAAGCAGGAGGGCAGCGAGGTAGTGAAGAGACCCAGGCGCTACCTGTATCAATGGCTGGG\n", "12:GTGAGAGAAAAGGCAGAGCTGGGCCAAGGCCCTGCCTCTCCGGGATGGTCTGTGGGGGAGCTGCAGCAGGGAGTG\n", "13:GCCTCTCTGGGTTGTGGTGGGGGTACAGGCAGCCTGCCCTGGTGGGCACCCTGGAGCCCCATGTGTAGGGAGAGG\n", "14:AGGGATGGGCATTTTGCACGGGGGCTGATGCCACCACGTCGGGTGTCTCAGAGCCCCAGTCCCCTACCCGGATCC\n", "15:CCTGGAGCCCAGGAGGGAGGTGTGTGAGCTCAATCCGGACTGTGACGAGTTGGCTGACCACATCGGCTTTCAGGA\n", "16:GGCCTATCGGCGCTTCTACGGCCCGGTCTAGGGTGTCGCTCTGCTGGCCTGGCCGGCAACCCCAGTTCTGCTCCT\n", "17:CTCCAGGCACCCTTCTTTCCTCTTCCCCTTGCCCTTGCCCTGACCTCCCAGCCCTATGGATGTGGGGTCCCCATC\n", "18:ATCCCAGCTGCTCCCAAATAAACTCCAGAAG\n" ] } ], "source": [ "cat bgp.fasta |\n", "grep -nv \"CCCCC\"" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "GGCAGATTCCCCCTAGACCCGCCCGCACCATGGTCAGGCATGCCCCTCCTCATCGCTGGGCACAGCCCAGAGGGT\n", "GCTGGCAGTCCCTTTGCAGTCTAACCACCTTGTTGCAGGCTCAATCCATTTGCCCCAGCTCTGCCCTTGCAGAGG\n", "TGATGGGTTCCTGGACCCTCCCCTCTCACCCTGGTCCCTCAGTCTCATTCCCCCACTCCTGCCACCTCCTGTCTG\n", "GCCTCTCTGGGTTGTGGTGGGGGTACAGGCAGCCTGCCCTGGTGGGCACCCTGGAGCCCCATGTGTAGGGAGAGG\n", "CCTGGAGCCCAGGAGGGAGGTGTGTGAGCTCAATCCGGACTGTGACGAGTTGGCTGACCACATCGGCTTTCAGGA\n" ] } ], "source": [ "cat bgp.fasta |\n", "grep \"GA*TT.*CA\"" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CACCTCCCCTCAGGCCGCATTGCAGTGGGGGCTGAGAGGAGGAAGCACCATGGCCCACCTCTTCTCACCCCTTTG\n", "CAGGCTCCCTTTCCTTTGCAGGTGCGAAGCCCAGCGGTGCAGAGTCCAGCAAAGGTGCAGGTATGAGGATGGACC\n", "CACAGCCTTTGTGTCCAAGCAGGAGGGCAGCGAGGTAGTGAAGAGACCCAGGCGCTACCTGTATCAATGGCTGGG\n", "CCTGGAGCCCAGGAGGGAGGTGTGTGAGCTCAATCCGGACTGTGACGAGTTGGCTGACCACATCGGCTTTCAGGA\n", "CTCCAGGCACCCTTCTTTCCTCTTCCCCTTGCCCTTGCCCTGACCTCCCAGCCCTATGGATGTGGGGTCCCCATC\n" ] } ], "source": [ "cat bgp.fasta |\n", "grep -E \"^C\"" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CACCTCCCCTCAGGCCGCATTGCAGTGGGGGCTGAGAGGAGGAAGCACCATGGCCCACCTCTTCTCACCCCTTTG\n", "GCTGGCAGTCCCTTTGCAGTCTAACCACCTTGTTGCAGGCTCAATCCATTTGCCCCAGCTCTGCCCTTGCAGAGG\n", "TGATGGGTTCCTGGACCCTCCCCTCTCACCCTGGTCCCTCAGTCTCATTCCCCCACTCCTGCCACCTCCTGTCTG\n", "CACAGCCTTTGTGTCCAAGCAGGAGGGCAGCGAGGTAGTGAAGAGACCCAGGCGCTACCTGTATCAATGGCTGGG\n", "GTGAGAGAAAAGGCAGAGCTGGGCCAAGGCCCTGCCTCTCCGGGATGGTCTGTGGGGGAGCTGCAGCAGGGAGTG\n", "GCCTCTCTGGGTTGTGGTGGGGGTACAGGCAGCCTGCCCTGGTGGGCACCCTGGAGCCCCATGTGTAGGGAGAGG\n", "ATCCCAGCTGCTCCCAAATAAACTCCAGAAG\n" ] } ], "source": [ "cat bgp.fasta |\n", "grep -E \"G$\"" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CACCTCCCCTCAGGCCGCATTGCAGTGGGGGCTGAGAGGAGGAAGCACCATGGCCCACCTCTTCTCACCCCTTTG\n", "CACAGCCTTTGTGTCCAAGCAGGAGGGCAGCGAGGTAGTGAAGAGACCCAGGCGCTACCTGTATCAATGGCTGGG\n" ] } ], "source": [ "cat bgp.fasta |\n", "grep -E \"^C.*G$\"" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "GATTCCCCCTAGACCCGCCCGCACCATGGTCAGGCATGCCCCTCCTCATCGCTGGGCACAGCCCA\n", "GTTGCAGGCTCAATCCATTTGCCCCAGCTCTGCCCTTGCA\n", "GTTCCTGGACCCTCCCCTCTCACCCTGGTCCCTCAGTCTCATTCCCCCACTCCTGCCA\n", "GTTGTGGTGGGGGTACAGGCAGCCTGCCCTGGTGGGCACCCTGGAGCCCCA\n", "GTTGGCTGACCACATCGGCTTTCA\n" ] } ], "source": [ "cat bgp.fasta |\n", "grep -o \"GA*TT.*CA\"" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "GGCAGATTCCCCCTAGACCCGCCCGCACCATGGTCAGGCATGCCCCTCCTCATCGCTGGGCACAGCCCAGAGGGT\n", "ATGAGAGCCCTCACACTCCTCGCCCTATTGGCCCTGGCCGCACTTTGCATCGCTGGCCAGGCAGGTGAGTGCCCC\n", "CACCTCCCCTCAGGCCGCATTGCAGTGGGGGCTGAGAGGAGGAAGCACCATGGCCCACCTCTTCTCACCCCTTTG\n", "AGGGATGGGCATTTTGCACGGGGGCTGATGCCACCACGTCGGGTGTCTCAGAGCCCCAGTCCCCTACCCGGATCC\n" ] } ], "source": [ "cat bgp.fasta | \n", "grep -E \"(GCAT)+\"" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "3:GCAGCA\n", "12:GCAGCA\n" ] } ], "source": [ "cat bgp.fasta | \n", "grep -Eon \"(GCA){2,}\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Transliteration" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CACCTCCCCTCAGGCCGCATTGCAGTGGGGGCTGAGAGGAGGAAGCACCATGGCCCACCTCTTCTCACCCCTTTG\n", "CACAGCCTTTGTGTCCAAGCAGGAGGGCAGCGAGGTAGTGAAGAGACCCAGGCGCTACCTGTATCAATGGCTGGG\n" ] } ], "source": [ "cat bgp.fasta |\n", "grep -E \"^C.*G$\" " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Complement" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ATAAGAAAAGATCCAACATGGCATCGCCCCCAGCTCTCCTCCTTCATAATGCCAAATAAGAGGAGATAAAAGGGC\n", "ATATCAAGGGCGCGAATTCATCCTCCCATCACTCCGTCGCTTCTCTAAATCCACAGTAAGCGTGATTGCCAGCCC\n" ] } ], "source": [ "cat bgp.fasta |\n", "grep -E \"^C.*G$\" |\n", "tr ACTG TAGC" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Reverse complement" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CGGGAAAATAGAGGAGAATAAACCGTAATACTTCCTCCTCTCGACCCCCGCTACGGTACAACCTAGAAAAGAATA\n", "CCCGACCGTTAGTGCGAATGACACCTAAATCTCTTCGCTGCCTCACTACCCTCCTACTTAAGCGCGGGAACTATA\n" ] } ], "source": [ "cat bgp.fasta |\n", "grep -E \"^C.*G$\" |\n", "tr ACTG TAGC |\n", "rev" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Sorting" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "AGGGATGGGCATTTTGCACGGGGGCTGATGCCACCACGTCGGGTGTCTCAGAGCCCCAGTCCCCTACCCGGATCC\n", "ATAAACAGTGCTGGAGGCTGGCGGGGCAGGCCAGCTGAGTCCTGAGCAGCAGCCCAGCGCAGCCACCGAGACACC\n", "ATCCCAGCTGCTCCCAAATAAACTCCAGAAG\n", "ATGAGAGCCCTCACACTCCTCGCCCTATTGGCCCTGGCCGCACTTTGCATCGCTGGCCAGGCAGGTGAGTGCCCC\n", "CACAGCCTTTGTGTCCAAGCAGGAGGGCAGCGAGGTAGTGAAGAGACCCAGGCGCTACCTGTATCAATGGCTGGG\n", "CACCTCCCCTCAGGCCGCATTGCAGTGGGGGCTGAGAGGAGGAAGCACCATGGCCCACCTCTTCTCACCCCTTTG\n", "CAGGCTCCCTTTCCTTTGCAGGTGCGAAGCCCAGCGGTGCAGAGTCCAGCAAAGGTGCAGGTATGAGGATGGACC\n", "CCTGGAGCCCAGGAGGGAGGTGTGTGAGCTCAATCCGGACTGTGACGAGTTGGCTGACCACATCGGCTTTCAGGA\n", "CTCCAGGCACCCTTCTTTCCTCTTCCCCTTGCCCTTGCCCTGACCTCCCAGCCCTATGGATGTGGGGTCCCCATC\n", "GAGAGGAGGGAAGAGCAAGCTGCCCGAGACGCAGGGGAAGGAGGATGAGGGCCCTGGGGATGAGCTGGGGTGAAC\n", "GCCATCAGGAAGGCCAGCCTGCTCCCCACCTGATCCTCCCAAACCCAGAGCCACCTGATGCCTGCCCCTCTGCTC\n", "GCCTCTCTGGGTTGTGGTGGGGGTACAGGCAGCCTGCCCTGGTGGGCACCCTGGAGCCCCATGTGTAGGGAGAGG\n", "GCTGGCAGTCCCTTTGCAGTCTAACCACCTTGTTGCAGGCTCAATCCATTTGCCCCAGCTCTGCCCTTGCAGAGG\n", "GGCAGATTCCCCCTAGACCCGCCCGCACCATGGTCAGGCATGCCCCTCCTCATCGCTGGGCACAGCCCAGAGGGT\n", "GGCCTATCGGCGCTTCTACGGCCCGGTCTAGGGTGTCGCTCTGCTGGCCTGGCCGGCAACCCCAGTTCTGCTCCT\n", "GTGAGAGAAAAGGCAGAGCTGGGCCAAGGCCCTGCCTCTCCGGGATGGTCTGTGGGGGAGCTGCAGCAGGGAGTG\n", "TGATGGGTTCCTGGACCCTCCCCTCTCACCCTGGTCCCTCAGTCTCATTCCCCCACTCCTGCCACCTCCTGTCTG\n" ] } ], "source": [ "cat bgp.fasta |\n", "grep -v \"^>\" |\n", "sort" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Sort by default uses lexicographic order" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "10:GCCATCAGGAAGGCCAGCCTGCTCCCCACCTGATCCTCCCAAACCCAGAGCCACCTGATGCCTGCCCCTCTGCTC\n", "11:CACAGCCTTTGTGTCCAAGCAGGAGGGCAGCGAGGTAGTGAAGAGACCCAGGCGCTACCTGTATCAATGGCTGGG\n", "12:GTGAGAGAAAAGGCAGAGCTGGGCCAAGGCCCTGCCTCTCCGGGATGGTCTGTGGGGGAGCTGCAGCAGGGAGTG\n", "13:GCCTCTCTGGGTTGTGGTGGGGGTACAGGCAGCCTGCCCTGGTGGGCACCCTGGAGCCCCATGTGTAGGGAGAGG\n", "14:AGGGATGGGCATTTTGCACGGGGGCTGATGCCACCACGTCGGGTGTCTCAGAGCCCCAGTCCCCTACCCGGATCC\n", "15:CCTGGAGCCCAGGAGGGAGGTGTGTGAGCTCAATCCGGACTGTGACGAGTTGGCTGACCACATCGGCTTTCAGGA\n", "16:GGCCTATCGGCGCTTCTACGGCCCGGTCTAGGGTGTCGCTCTGCTGGCCTGGCCGGCAACCCCAGTTCTGCTCCT\n", "17:CTCCAGGCACCCTTCTTTCCTCTTCCCCTTGCCCTTGCCCTGACCTCCCAGCCCTATGGATGTGGGGTCCCCATC\n", "18:ATCCCAGCTGCTCCCAAATAAACTCCAGAAG\n", "2:GGCAGATTCCCCCTAGACCCGCCCGCACCATGGTCAGGCATGCCCCTCCTCATCGCTGGGCACAGCCCAGAGGGT\n", "3:ATAAACAGTGCTGGAGGCTGGCGGGGCAGGCCAGCTGAGTCCTGAGCAGCAGCCCAGCGCAGCCACCGAGACACC\n", "4:ATGAGAGCCCTCACACTCCTCGCCCTATTGGCCCTGGCCGCACTTTGCATCGCTGGCCAGGCAGGTGAGTGCCCC\n", "5:CACCTCCCCTCAGGCCGCATTGCAGTGGGGGCTGAGAGGAGGAAGCACCATGGCCCACCTCTTCTCACCCCTTTG\n", "6:GCTGGCAGTCCCTTTGCAGTCTAACCACCTTGTTGCAGGCTCAATCCATTTGCCCCAGCTCTGCCCTTGCAGAGG\n", "7:GAGAGGAGGGAAGAGCAAGCTGCCCGAGACGCAGGGGAAGGAGGATGAGGGCCCTGGGGATGAGCTGGGGTGAAC\n", "8:CAGGCTCCCTTTCCTTTGCAGGTGCGAAGCCCAGCGGTGCAGAGTCCAGCAAAGGTGCAGGTATGAGGATGGACC\n", "9:TGATGGGTTCCTGGACCCTCCCCTCTCACCCTGGTCCCTCAGTCTCATTCCCCCACTCCTGCCACCTCCTGTCTG\n" ] } ], "source": [ "cat bgp.fasta |\n", "grep -nv \"^>\" |\n", "sort" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### use `-n` flag for numeric order" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2:GGCAGATTCCCCCTAGACCCGCCCGCACCATGGTCAGGCATGCCCCTCCTCATCGCTGGGCACAGCCCAGAGGGT\n", "3:ATAAACAGTGCTGGAGGCTGGCGGGGCAGGCCAGCTGAGTCCTGAGCAGCAGCCCAGCGCAGCCACCGAGACACC\n", "4:ATGAGAGCCCTCACACTCCTCGCCCTATTGGCCCTGGCCGCACTTTGCATCGCTGGCCAGGCAGGTGAGTGCCCC\n", "5:CACCTCCCCTCAGGCCGCATTGCAGTGGGGGCTGAGAGGAGGAAGCACCATGGCCCACCTCTTCTCACCCCTTTG\n", "6:GCTGGCAGTCCCTTTGCAGTCTAACCACCTTGTTGCAGGCTCAATCCATTTGCCCCAGCTCTGCCCTTGCAGAGG\n", "7:GAGAGGAGGGAAGAGCAAGCTGCCCGAGACGCAGGGGAAGGAGGATGAGGGCCCTGGGGATGAGCTGGGGTGAAC\n", "8:CAGGCTCCCTTTCCTTTGCAGGTGCGAAGCCCAGCGGTGCAGAGTCCAGCAAAGGTGCAGGTATGAGGATGGACC\n", "9:TGATGGGTTCCTGGACCCTCCCCTCTCACCCTGGTCCCTCAGTCTCATTCCCCCACTCCTGCCACCTCCTGTCTG\n", "10:GCCATCAGGAAGGCCAGCCTGCTCCCCACCTGATCCTCCCAAACCCAGAGCCACCTGATGCCTGCCCCTCTGCTC\n", "11:CACAGCCTTTGTGTCCAAGCAGGAGGGCAGCGAGGTAGTGAAGAGACCCAGGCGCTACCTGTATCAATGGCTGGG\n", "12:GTGAGAGAAAAGGCAGAGCTGGGCCAAGGCCCTGCCTCTCCGGGATGGTCTGTGGGGGAGCTGCAGCAGGGAGTG\n", "13:GCCTCTCTGGGTTGTGGTGGGGGTACAGGCAGCCTGCCCTGGTGGGCACCCTGGAGCCCCATGTGTAGGGAGAGG\n", "14:AGGGATGGGCATTTTGCACGGGGGCTGATGCCACCACGTCGGGTGTCTCAGAGCCCCAGTCCCCTACCCGGATCC\n", "15:CCTGGAGCCCAGGAGGGAGGTGTGTGAGCTCAATCCGGACTGTGACGAGTTGGCTGACCACATCGGCTTTCAGGA\n", "16:GGCCTATCGGCGCTTCTACGGCCCGGTCTAGGGTGTCGCTCTGCTGGCCTGGCCGGCAACCCCAGTTCTGCTCCT\n", "17:CTCCAGGCACCCTTCTTTCCTCTTCCCCTTGCCCTTGCCCTGACCTCCCAGCCCTATGGATGTGGGGTCCCCATC\n", "18:ATCCCAGCTGCTCCCAAATAAACTCCAGAAG\n" ] } ], "source": [ "cat bgp.fasta |\n", "grep -nv \"^>\" |\n", "sort -n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Sort descending" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "18:ATCCCAGCTGCTCCCAAATAAACTCCAGAAG\n", "17:CTCCAGGCACCCTTCTTTCCTCTTCCCCTTGCCCTTGCCCTGACCTCCCAGCCCTATGGATGTGGGGTCCCCATC\n", "16:GGCCTATCGGCGCTTCTACGGCCCGGTCTAGGGTGTCGCTCTGCTGGCCTGGCCGGCAACCCCAGTTCTGCTCCT\n", "15:CCTGGAGCCCAGGAGGGAGGTGTGTGAGCTCAATCCGGACTGTGACGAGTTGGCTGACCACATCGGCTTTCAGGA\n", "14:AGGGATGGGCATTTTGCACGGGGGCTGATGCCACCACGTCGGGTGTCTCAGAGCCCCAGTCCCCTACCCGGATCC\n", "13:GCCTCTCTGGGTTGTGGTGGGGGTACAGGCAGCCTGCCCTGGTGGGCACCCTGGAGCCCCATGTGTAGGGAGAGG\n", "12:GTGAGAGAAAAGGCAGAGCTGGGCCAAGGCCCTGCCTCTCCGGGATGGTCTGTGGGGGAGCTGCAGCAGGGAGTG\n", "11:CACAGCCTTTGTGTCCAAGCAGGAGGGCAGCGAGGTAGTGAAGAGACCCAGGCGCTACCTGTATCAATGGCTGGG\n", "10:GCCATCAGGAAGGCCAGCCTGCTCCCCACCTGATCCTCCCAAACCCAGAGCCACCTGATGCCTGCCCCTCTGCTC\n", "9:TGATGGGTTCCTGGACCCTCCCCTCTCACCCTGGTCCCTCAGTCTCATTCCCCCACTCCTGCCACCTCCTGTCTG\n", "8:CAGGCTCCCTTTCCTTTGCAGGTGCGAAGCCCAGCGGTGCAGAGTCCAGCAAAGGTGCAGGTATGAGGATGGACC\n", "7:GAGAGGAGGGAAGAGCAAGCTGCCCGAGACGCAGGGGAAGGAGGATGAGGGCCCTGGGGATGAGCTGGGGTGAAC\n", "6:GCTGGCAGTCCCTTTGCAGTCTAACCACCTTGTTGCAGGCTCAATCCATTTGCCCCAGCTCTGCCCTTGCAGAGG\n", "5:CACCTCCCCTCAGGCCGCATTGCAGTGGGGGCTGAGAGGAGGAAGCACCATGGCCCACCTCTTCTCACCCCTTTG\n", "4:ATGAGAGCCCTCACACTCCTCGCCCTATTGGCCCTGGCCGCACTTTGCATCGCTGGCCAGGCAGGTGAGTGCCCC\n", "3:ATAAACAGTGCTGGAGGCTGGCGGGGCAGGCCAGCTGAGTCCTGAGCAGCAGCCCAGCGCAGCCACCGAGACACC\n", "2:GGCAGATTCCCCCTAGACCCGCCCGCACCATGGTCAGGCATGCCCCTCCTCATCGCTGGGCACAGCCCAGAGGGT\n" ] } ], "source": [ "cat bgp.fasta |\n", "grep -nv \"^>\" |\n", "sort -rn" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Downloading files" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "--2019-06-26 09:17:00-- ftp://ftp.ensemblgenomes.org/pub/release-39/fungi/gtf/fungi_basidiomycota1_collection/cryptococcus_neoformans_var_grubii_h99/Cryptococcus_neoformans_var_grubii_h99.CNA3.39.gtf.gz\n", " => ‘Cryptococcus_neoformans_var_grubii_h99.CNA3.39.gtf.gz’\n", "Resolving ftp.ensemblgenomes.org (ftp.ensemblgenomes.org)... 193.62.197.94\n", "Connecting to ftp.ensemblgenomes.org (ftp.ensemblgenomes.org)|193.62.197.94|:21... connected.\n", "Logging in as anonymous ... Logged in!\n", "==> SYST ... done. ==> PWD ... done.\n", "==> TYPE I ... done. ==> CWD (1) /pub/release-39/fungi/gtf/fungi_basidiomycota1_collection/cryptococcus_neoformans_var_grubii_h99 ... done.\n", "==> SIZE Cryptococcus_neoformans_var_grubii_h99.CNA3.39.gtf.gz ... 1796344\n", "==> PASV ... done. ==> RETR Cryptococcus_neoformans_var_grubii_h99.CNA3.39.gtf.gz ... done.\n", "Length: 1796344 (1.7M) (unauthoritative)\n", "\n", "Cryptococcus_neofor 100%[===================>] 1.71M 2.44MB/s in 0.7s \n", "\n", "2019-06-26 09:17:02 (2.44 MB/s) - ‘Cryptococcus_neoformans_var_grubii_h99.CNA3.39.gtf.gz’ saved [1796344]\n", "\n" ] } ], "source": [ "wget ftp://ftp.ensemblgenomes.org/pub/release-39/fungi/gtf/fungi_basidiomycota1_collection/cryptococcus_neoformans_var_grubii_h99/Cryptococcus_neoformans_var_grubii_h99.CNA3.39.gtf.gz" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "a.txt\n", "bgp.fasta\n", "b.txt\n", "\u001b[0m\u001b[01;31mCryptococcus_neoformans_var_grubii_h99.CNA3.39.gtf.gz\u001b[0m\n", "c.txt\n", "\u001b[01;34mdata\u001b[0m\n", "\u001b[01;34mfigs\u001b[0m\n", "hello.md5\n", "hello.txt\n", "lsd1.txt\n", "lsd2.txt\n", "lsd3.txt\n", "MD5_CHECKSUM\n", "MD5SUM\n", "\u001b[01;31mnotebooks.tar.gz\u001b[0m\n", "R00_Review_Basics.ipynb\n", "R00_Review_Basics_Scratch.ipynb\n", "R01_Data_Manipulation.ipynb\n", "R01_Data_Manipulation_Scratch.ipynb\n", "R01_Data_Manipulation_Solutions.ipynb\n", "R01_Manipulating_Data_In_R.ipynb\n", "R02_Tidying_Data_In_R.ipynb\n", "R02_Tidying_Data.ipynb\n", "R02_Tidying_Data_Solutions.ipynb\n", "R03_FileIO.ipynb\n", "R04_Unsupervised_Learning.ipynb\n", "R04_Unsupervised_Learning_Scratch.ipynb\n", "R05_Unsupervised_Learning_More_Examples.ipynb\n", "R06_Graphics_Overview.ipynb\n", "R07_Graphics_Base.ipynb\n", "R08_Graphics_ggplot2.ipynb\n", "R09_Graphics_Exercise.ipynb\n", "R09_Graphics_Exercise_Solutions.ipynb\n", "\u001b[01;34mseqs\u001b[0m\n", "Unix01_File_And_Directory.ipynb\n", "Unix01_File_And_Directory_Solutions.ipynb\n", "Unix02_FileIO.ipynb\n", "Unix02_FileIO_Solutions.ipynb\n", "Unix03_File_Storage.ipynb\n", "Unix03_File_Storage_Solutions.ipynb\n", "Unix04_Text_Manipulation.ipynb\n", "Unix04_Text_Manipulation_Solutinos.ipynb\n", "Unix05_Variables.ipynb\n", "Unix05_Variables_Solutions.ipynb\n", "Unix06_Bash_Bioinformatics.ipynb\n", "Unix07_Capstone_Exercise.ipynb\n", "Unix07_Capstone_Exercise_Solutions.ipynb\n", "Unix_Appendix01_Regular_Expressions.ipynb\n", "Unix_Appendix02_Review.ipynb\n" ] } ], "source": [ "ls" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## File compression/uncompression" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-rw-r--r-- 1 jovyan users 1.8M Jun 26 09:17 \u001b[0m\u001b[01;31mCryptococcus_neoformans_var_grubii_h99.CNA3.39.gtf.gz\u001b[0m\n" ] } ], "source": [ "ls -lh Cryptococcus_neoformans_var_grubii_h99.CNA3.39.gtf.gz" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "gunzip Cryptococcus_neoformans_var_grubii_h99.CNA3.39.gtf.gz" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "total 39M\n", "-rw-r--r-- 1 jovyan users 6 Jun 26 09:16 a.txt\n", "-rw-r--r-- 1 jovyan users 1.3K Jun 26 09:16 bgp.fasta\n", "-rw-r--r-- 1 jovyan users 6 Jun 26 09:16 b.txt\n", "-rw-r--r-- 1 jovyan users 32M Jun 26 09:17 Cryptococcus_neoformans_var_grubii_h99.CNA3.39.gtf\n", "-rw-r--r-- 1 jovyan users 6 Jun 26 09:16 c.txt\n", "drwxr-xr-x 2 jovyan users 4.0K Jun 25 15:34 \u001b[0m\u001b[01;34mdata\u001b[0m\n", "drwxr-xr-x 2 jovyan users 4.0K Jun 26 08:52 \u001b[01;34mfigs\u001b[0m\n", "-rw-r--r-- 1 jovyan users 44 Jun 26 09:16 hello.md5\n", "-rw-r--r-- 1 jovyan users 45 Jun 26 09:16 hello.txt\n", "-rw-r--r-- 1 jovyan users 107 Jun 26 09:15 lsd1.txt\n", "-rw-r--r-- 1 jovyan users 107 Jun 26 09:15 lsd2.txt\n", "-rw-r--r-- 1 jovyan users 107 Jun 26 09:15 lsd3.txt\n", "-rw-r--r-- 1 jovyan users 2.2K Jun 26 09:16 MD5_CHECKSUM\n", "-rw-r--r-- 1 jovyan users 120 Jun 26 09:16 MD5SUM\n", "-rw-r--r-- 1 jovyan users 2.8M Jun 26 09:16 \u001b[01;31mnotebooks.tar.gz\u001b[0m\n", "-rw-r--r-- 1 jovyan users 20K Jun 26 08:42 R00_Review_Basics.ipynb\n", "-rw-r--r-- 1 jovyan users 2.9K Jun 25 15:34 R00_Review_Basics_Scratch.ipynb\n", "-rw-r--r-- 1 jovyan users 11K Jun 25 15:34 R01_Data_Manipulation.ipynb\n", "-rw-r--r-- 1 jovyan users 7.1K Jun 25 15:34 R01_Data_Manipulation_Scratch.ipynb\n", "-rw-r--r-- 1 jovyan users 117K Jun 26 08:43 R01_Data_Manipulation_Solutions.ipynb\n", "-rw-r--r-- 1 jovyan users 3.5K Jun 25 15:34 R01_Manipulating_Data_In_R.ipynb\n", "-rw-r--r-- 1 jovyan users 40K Jun 25 15:34 R02_Tidying_Data_In_R.ipynb\n", "-rw-r--r-- 1 jovyan users 4.8K Jun 25 15:34 R02_Tidying_Data.ipynb\n", "-rw-r--r-- 1 jovyan users 64K Jun 26 08:45 R02_Tidying_Data_Solutions.ipynb\n", "-rw-r--r-- 1 jovyan users 23K Jun 26 08:46 R03_FileIO.ipynb\n", "-rw-r--r-- 1 jovyan users 1.2M Jun 26 08:55 R04_Unsupervised_Learning.ipynb\n", "-rw-r--r-- 1 jovyan users 12K Jun 25 15:34 R04_Unsupervised_Learning_Scratch.ipynb\n", "-rw-r--r-- 1 jovyan users 1.1M Jun 26 08:55 R05_Unsupervised_Learning_More_Examples.ipynb\n", "-rw-r--r-- 1 jovyan users 154K Jun 26 08:55 R06_Graphics_Overview.ipynb\n", "-rw-r--r-- 1 jovyan users 210K Jun 26 08:55 R07_Graphics_Base.ipynb\n", "-rw-r--r-- 1 jovyan users 1.4M Jun 26 08:55 R08_Graphics_ggplot2.ipynb\n", "-rw-r--r-- 1 jovyan users 4.9K Jun 26 08:55 R09_Graphics_Exercise.ipynb\n", "-rw-r--r-- 1 jovyan users 102K Jun 26 08:55 R09_Graphics_Exercise_Solutions.ipynb\n", "drwxr-xr-x 2 jovyan users 4.0K Jun 25 15:34 \u001b[01;34mseqs\u001b[0m\n", "-rw-r--r-- 1 jovyan users 11K Jun 25 15:34 Unix01_File_And_Directory.ipynb\n", "-rw-r--r-- 1 jovyan users 39K Jun 26 09:14 Unix01_File_And_Directory_Solutions.ipynb\n", "-rw-r--r-- 1 jovyan users 12K Jun 25 15:34 Unix02_FileIO.ipynb\n", "-rw-r--r-- 1 jovyan users 32K Jun 26 09:15 Unix02_FileIO_Solutions.ipynb\n", "-rw-r--r-- 1 jovyan users 7.9K Jun 25 15:34 Unix03_File_Storage.ipynb\n", "-rw-r--r-- 1 jovyan users 27K Jun 26 09:16 Unix03_File_Storage_Solutions.ipynb\n", "-rw-r--r-- 1 jovyan users 11K Jun 25 15:34 Unix04_Text_Manipulation.ipynb\n", "-rw-r--r-- 1 jovyan users 12K Jun 25 15:34 Unix04_Text_Manipulation_Solutinos.ipynb\n", "-rw-r--r-- 1 jovyan users 16K Jun 25 15:34 Unix05_Variables.ipynb\n", "-rw-r--r-- 1 jovyan users 16K Jun 25 15:34 Unix05_Variables_Solutions.ipynb\n", "-rw-r--r-- 1 jovyan users 37K Jun 25 15:34 Unix06_Bash_Bioinformatics.ipynb\n", "-rw-r--r-- 1 jovyan users 5.3K Jun 25 15:34 Unix07_Capstone_Exercise.ipynb\n", "-rw-r--r-- 1 jovyan users 8.1K Jun 25 15:34 Unix07_Capstone_Exercise_Solutions.ipynb\n", "-rw-r--r-- 1 jovyan users 11K Jun 25 15:34 Unix_Appendix01_Regular_Expressions.ipynb\n", "-rw-r--r-- 1 jovyan users 5.9K Jun 25 15:34 Unix_Appendix02_Review.ipynb\n" ] } ], "source": [ "ls -lh" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Inspecting the GTF file\n", "\n", "A GTF file has some header lines, followed by tabular data in 9 columns:\n", "\n", "```\n", "chromosome name > chr{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,X,Y,M}\n", "annotation source > {ENSEMBL,HAVANA}\n", "feature-type > {gene,transcript,exon,CDS,UTR,start_codon,stop_codon,Selenocysteine}\n", "genomic start location > integer-value (1-based)\n", "genomic end location > integer-value\n", "score (not used) > .\n", "genomic strand > {+,-}\n", "genomic phase (for CDS features) > {0,1,2,.}\n", "additional information as key-value pairs > (format: key “value”;)\n", "```" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "#!genome-build CNA3\n", "#!genome-version CNA3\n", "#!genome-date 2015-11\n", "#!genome-build-accession GCA_000149245.3\n", "#!genebuild-last-updated 2015-11\n", "1\tena\tgene\t100\t5645\t.\t-\t.\tgene_id \"CNAG_04548\"; gene_source \"ena\"; gene_biotype \"protein_coding\";\n", "1\tena\ttranscript\t100\t5645\t.\t-\t.\tgene_id \"CNAG_04548\"; transcript_id \"AFR92135\"; gene_source \"ena\"; gene_biotype \"protein_coding\"; transcript_source \"ena\"; transcript_biotype \"protein_coding\";\n", "1\tena\texon\t5494\t5645\t.\t-\t.\tgene_id \"CNAG_04548\"; transcript_id \"AFR92135\"; exon_number \"1\"; gene_source \"ena\"; gene_biotype \"protein_coding\"; transcript_source \"ena\"; transcript_biotype \"protein_coding\"; exon_id \"AFR92135-1\";\n", "1\tena\tCDS\t5494\t5645\t.\t-\t0\tgene_id \"CNAG_04548\"; transcript_id \"AFR92135\"; exon_number \"1\"; gene_source \"ena\"; gene_biotype \"protein_coding\"; transcript_source \"ena\"; transcript_biotype \"protein_coding\"; protein_id \"AFR92135\"; protein_version \"1\";\n", "1\tena\tstart_codon\t5643\t5645\t.\t-\t0\tgene_id \"CNAG_04548\"; transcript_id \"AFR92135\"; exon_number \"1\"; gene_source \"ena\"; gene_biotype \"protein_coding\"; transcript_source \"ena\"; transcript_biotype \"protein_coding\";\n" ] } ], "source": [ "head Cryptococcus_neoformans_var_grubii_h99.CNA3.39.gtf" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mt\tena\tstop_codon\t23840\t23842\t.\t+\t0\tgene_id \"CNAG_09011\"; transcript_id \"AFR99113\"; exon_number \"1\"; gene_source \"ena\"; gene_biotype \"protein_coding\"; transcript_source \"ena\"; transcript_biotype \"protein_coding\";\n", "Mt\tEnsembl_Fungi\tgene\t23909\t23980\t.\t+\t.\tgene_id \"ENSRNA049545749\"; gene_name \"tRNA-Val\"; gene_source \"Ensembl_Fungi\"; gene_biotype \"tRNA\";\n", "Mt\tEnsembl_Fungi\ttranscript\t23909\t23980\t.\t+\t.\tgene_id \"ENSRNA049545749\"; transcript_id \"ENSRNA049545749-T1\"; gene_name \"tRNA-Val\"; gene_source \"Ensembl_Fungi\"; gene_biotype \"tRNA\"; transcript_source \"Ensembl_Fungi\"; transcript_biotype \"tRNA\";\n", "Mt\tEnsembl_Fungi\texon\t23909\t23980\t.\t+\t.\tgene_id \"ENSRNA049545749\"; transcript_id \"ENSRNA049545749-T1\"; exon_number \"1\"; gene_name \"tRNA-Val\"; gene_source \"Ensembl_Fungi\"; gene_biotype \"tRNA\"; transcript_source \"Ensembl_Fungi\"; transcript_biotype \"tRNA\"; exon_id \"ENSRNA049545749-E1\";\n", "Mt\tena\tgene\t24096\t24851\t.\t+\t.\tgene_id \"CNAG_09012\"; gene_source \"ena\"; gene_biotype \"protein_coding\";\n", "Mt\tena\ttranscript\t24096\t24851\t.\t+\t.\tgene_id \"CNAG_09012\"; transcript_id \"AFR99114\"; gene_source \"ena\"; gene_biotype \"protein_coding\"; transcript_source \"ena\"; transcript_biotype \"protein_coding\";\n", "Mt\tena\texon\t24096\t24851\t.\t+\t.\tgene_id \"CNAG_09012\"; transcript_id \"AFR99114\"; exon_number \"1\"; gene_source \"ena\"; gene_biotype \"protein_coding\"; transcript_source \"ena\"; transcript_biotype \"protein_coding\"; exon_id \"AFR99114-1\";\n", "Mt\tena\tCDS\t24096\t24848\t.\t+\t0\tgene_id \"CNAG_09012\"; transcript_id \"AFR99114\"; exon_number \"1\"; gene_source \"ena\"; gene_biotype \"protein_coding\"; transcript_source \"ena\"; transcript_biotype \"protein_coding\"; protein_id \"AFR99114\"; protein_version \"1\";\n", "Mt\tena\tstart_codon\t24096\t24098\t.\t+\t0\tgene_id \"CNAG_09012\"; transcript_id \"AFR99114\"; exon_number \"1\"; gene_source \"ena\"; gene_biotype \"protein_coding\"; transcript_source \"ena\"; transcript_biotype \"protein_coding\";\n", "Mt\tena\tstop_codon\t24849\t24851\t.\t+\t0\tgene_id \"CNAG_09012\"; transcript_id \"AFR99114\"; exon_number \"1\"; gene_source \"ena\"; gene_biotype \"protein_coding\"; transcript_source \"ena\"; transcript_biotype \"protein_coding\";\n" ] } ], "source": [ "tail Cryptococcus_neoformans_var_grubii_h99.CNA3.39.gtf" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Remove comment lines" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### If you know the number of lines" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1\tena\tgene\t100\t5645\t.\t-\t.\tgene_id \"CNAG_04548\"; gene_source \"ena\"; gene_biotype \"protein_coding\";\n", "1\tena\ttranscript\t100\t5645\t.\t-\t.\tgene_id \"CNAG_04548\"; transcript_id \"AFR92135\"; gene_source \"ena\"; gene_biotype \"protein_coding\"; transcript_source \"ena\"; transcript_biotype \"protein_coding\";\n", "1\tena\texon\t5494\t5645\t.\t-\t.\tgene_id \"CNAG_04548\"; transcript_id \"AFR92135\"; exon_number \"1\"; gene_source \"ena\"; gene_biotype \"protein_coding\"; transcript_source \"ena\"; transcript_biotype \"protein_coding\"; exon_id \"AFR92135-1\";\n", "tail: error writing 'standard output': Broken pipe\n" ] } ], "source": [ "tail +6 Cryptococcus_neoformans_var_grubii_h99.CNA3.39.gtf | head -3" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Using regular expressions (advanced)" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1\tena\tgene\t100\t5645\t.\t-\t.\tgene_id \"CNAG_04548\"; gene_source \"ena\"; gene_biotype \"protein_coding\";\n", "1\tena\ttranscript\t100\t5645\t.\t-\t.\tgene_id \"CNAG_04548\"; transcript_id \"AFR92135\"; gene_source \"ena\"; gene_biotype \"protein_coding\"; transcript_source \"ena\"; transcript_biotype \"protein_coding\";\n", "1\tena\texon\t5494\t5645\t.\t-\t.\tgene_id \"CNAG_04548\"; transcript_id \"AFR92135\"; exon_number \"1\"; gene_source \"ena\"; gene_biotype \"protein_coding\"; transcript_source \"ena\"; transcript_biotype \"protein_coding\"; exon_id \"AFR92135-1\";\n", "grep: write error: Broken pipe\n", "cat: write error: Broken pipe\n" ] } ], "source": [ "cat Cryptococcus_neoformans_var_grubii_h99.CNA3.39.gtf |\n", "grep -v '^#' |\n", "head -3" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Spliting columns" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "bash: File: command not found\n" ] } ], "source": [ "File compression and archivalcat Cryptococcus_neoformans_var_grubii_h99.CNA3.39.gtf |\n", "grep -v '^#' |\n", "cut -f3 |\n", "head -3" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "100\t5645\n", "100\t5645\n", "5494\t5645\n", "cut: write error: Broken pipe\n" ] } ], "source": [ "cat Cryptococcus_neoformans_var_grubii_h99.CNA3.39.gtf |\n", "grep -v '^#' |\n", "cut -f4-5 |\n", "head -3" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ena\t100\t5645\n", "ena\t100\t5645\n", "ena\t5494\t5645\n", "cut: write error: Broken pipe\n" ] } ], "source": [ "cat Cryptococcus_neoformans_var_grubii_h99.CNA3.39.gtf |\n", "grep -v '^#' |\n", "cut -f2,4-5 |\n", "head -3" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercises" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "1. Waht is the mRNA version of bgp.fasta?" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "GGCAGAUUCCCCCUAGACCCGCCCGCACCAUGGUCAGGCAUGCCCCUCCUCAUCGCUGGGCACAGCCCAGAGGGU\n", "AUAAACAGUGCUGGAGGCUGGCGGGGCAGGCCAGCUGAGUCCUGAGCAGCAGCCCAGCGCAGCCACCGAGACACC\n", "AUGAGAGCCCUCACACUCCUCGCCCUAUUGGCCCUGGCCGCACUUUGCAUCGCUGGCCAGGCAGGUGAGUGCCCC\n", "CACCUCCCCUCAGGCCGCAUUGCAGUGGGGGCUGAGAGGAGGAAGCACCAUGGCCCACCUCUUCUCACCCCUUUG\n", "GCUGGCAGUCCCUUUGCAGUCUAACCACCUUGUUGCAGGCUCAAUCCAUUUGCCCCAGCUCUGCCCUUGCAGAGG\n", "GAGAGGAGGGAAGAGCAAGCUGCCCGAGACGCAGGGGAAGGAGGAUGAGGGCCCUGGGGAUGAGCUGGGGUGAAC\n", "CAGGCUCCCUUUCCUUUGCAGGUGCGAAGCCCAGCGGUGCAGAGUCCAGCAAAGGUGCAGGUAUGAGGAUGGACC\n", "UGAUGGGUUCCUGGACCCUCCCCUCUCACCCUGGUCCCUCAGUCUCAUUCCCCCACUCCUGCCACCUCCUGUCUG\n", "GCCAUCAGGAAGGCCAGCCUGCUCCCCACCUGAUCCUCCCAAACCCAGAGCCACCUGAUGCCUGCCCCUCUGCUC\n", "CACAGCCUUUGUGUCCAAGCAGGAGGGCAGCGAGGUAGUGAAGAGACCCAGGCGCUACCUGUAUCAAUGGCUGGG\n", "GUGAGAGAAAAGGCAGAGCUGGGCCAAGGCCCUGCCUCUCCGGGAUGGUCUGUGGGGGAGCUGCAGCAGGGAGUG\n", "GCCUCUCUGGGUUGUGGUGGGGGUACAGGCAGCCUGCCCUGGUGGGCACCCUGGAGCCCCAUGUGUAGGGAGAGG\n", "AGGGAUGGGCAUUUUGCACGGGGGCUGAUGCCACCACGUCGGGUGUCUCAGAGCCCCAGUCCCCUACCCGGAUCC\n", "CCUGGAGCCCAGGAGGGAGGUGUGUGAGCUCAAUCCGGACUGUGACGAGUUGGCUGACCACAUCGGCUUUCAGGA\n", "GGCCUAUCGGCGCUUCUACGGCCCGGUCUAGGGUGUCGCUCUGCUGGCCUGGCCGGCAACCCCAGUUCUGCUCCU\n", "CUCCAGGCACCCUUCUUUCCUCUUCCCCUUGCCCUUGCCCUGACCUCCCAGCCCUAUGGAUGUGGGGUCCCCAUC\n", "AUCCCAGCUGCUCCCAAAUAAACUCCAGAAG\n" ] } ], "source": [ "cat bgp.fasta |\n", "grep -v '^>' |\n", "tr T U" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "2. Extract the nucleotides in positions 5,10 and 15 of each line of bgp.fasta." ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "GCA\n", "AGA\n", "GCA\n", "TTC\n", "GCT\n", "GGG\n", "CTT\n", "GCA\n", "TAC\n", "GTC\n", "GAA\n", "CGT\n", "ACT\n", "GCG\n", "TGT\n", "ACC\n", "CGC\n" ] } ], "source": [ "cat bgp.fasta |\n", "grep -v '^>' |\n", "cut -c5,10,15" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "3. Find the number of mitochondrial exons in the GTF file." ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "45\n" ] } ], "source": [ "cat Cryptococcus_neoformans_var_grubii_h99.CNA3.39.gtf |\n", "grep '^M' |\n", "cut -f3 |\n", "grep \"exon\" | \n", "wc -l" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Bash", "language": "bash", "name": "bash" }, "language_info": { "codemirror_mode": "shell", "file_extension": ".sh", "mimetype": "text/x-sh", "name": "bash" } }, "nbformat": 4, "nbformat_minor": 2 }