diff --git a/Chapter01/razan_files/README.md b/Chapter01/razan_files/README.md new file mode 100644 index 0000000..0f10936 --- /dev/null +++ b/Chapter01/razan_files/README.md @@ -0,0 +1,36 @@ +# Chapter 1 – rpy2 and the 1000 Genomes Project + +This chapter contains my own reimplementation and notes based on the original *Bioinformatics-with-Python-Cookbook-third-edition*, adapted for current tools and data sources. + +--- + +## Enhancements and additions + +- Added an explicit download and verification step in Python for the 1000 Genomes sequence index: + +```python +url = "http://ftp.1000genomes.ebi.ac.uk/vol1/ftp/phase3/20130502.phase3.sequence.index" +``` +- Demonstrated integration with R via the rpy2 interface. + +- Converted the R data frame to pandas format for downstream analysis. + +- Applied explicit numeric type coercion and axis scaling to improve plot clarity. + +- Ensured ggplot objects are explicitly rendered to an R graphics device for reproducible output. + +## Observations + +Two main points were addressed while reproducing the original workflow: + +1. Column type handling + +BASE_COUNT and READ_COUNT represent numeric quantities but may be imported as character vectors, which can affect ggplot2 plotting behaviour if not coerced. + +2. Explicit plot rendering + +When using ggplot2 via rpy2, plots are not automatically rendered to a file. Explicitly printing the ggplot object to an R graphics device ensures the expected output is produced. + +## Key takeaway + +This chapter illustrates common interoperability considerations when bridging Python and R workflows and highlights the importance of explicit data validation and visualization control for reproducible bioinformatics analyses. \ No newline at end of file diff --git a/Chapter01/razan_files/chapter01_rpy2_1000g.ipynb b/Chapter01/razan_files/chapter01_rpy2_1000g.ipynb new file mode 100644 index 0000000..6259649 --- /dev/null +++ b/Chapter01/razan_files/chapter01_rpy2_1000g.ipynb @@ -0,0 +1,586 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "b484ccff-3386-4858-a648-e5d8f8792ccd", + "metadata": {}, + "source": [ + "# Chapter 1 – Using rpy2 with the 1000 Genomes Project\n", + "\n", + "This chapter demonstrates how to interface Python with R using `rpy2`, and highlights common pitfalls when working with external bioinformatics resources such as the 1000 Genomes Project, and demonstrates practical solutions." + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "5ddf97e7-7c8c-40ff-9023-a7f2136c69f8", + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "os.environ[\"R_HOME\"] = r\"C:\\Program Files\\R\\R-4.4.2\"\n", + "os.environ[\"PATH\"] += os.pathsep + r\"C:\\Program Files\\R\\R-4.4.2\\bin\\x64\"\n", + "import os\n", + "from IPython.display import Image\n", + "import rpy2.robjects as robjects\n", + "import rpy2.robjects.lib.ggplot2 as ggplot2\n", + "from rpy2.robjects.functions import SignatureTranslatedFunction\n", + "import pandas as pd\n", + "import rpy2.robjects as ro\n", + "from rpy2.robjects import pandas2ri\n", + "from rpy2.robjects import conversion" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "519be475-61d3-4958-ad88-2ef51011d3a3", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "'wget' is not recognized as an internal or external command,\n", + "operable program or batch file.\n" + ] + } + ], + "source": [ + "!wget -nd http://ftp.1000genomes.ebi.ac.uk/vol1/ftp/phase3/20130502.phase3.sequence.index -O sequence.index" + ] + }, + { + "cell_type": "markdown", + "id": "5fcdb3b3-e76e-4fd4-b7a4-678f3c7c35b3", + "metadata": {}, + "source": [ + "## Interfacing with R and data access\n", + "\n", + "This section illustrates how Python interfaces with R via `rpy2` to analyse metadata from external genomics resources. Special attention is given to data access and reproducibility, as differences in execution environments can affect how external files are retrieved and parsed.\n" + ] + }, + { + "cell_type": "markdown", + "id": "20ad98bf-3048-492b-86d1-d7ebd9f88c17", + "metadata": {}, + "source": [ + "## Data access using Python\n", + "\n", + "To integrate external datasets into the R workflow, the sequence index file is downloaded via its public URL using Python and stored locally. The file is then read into R through `rpy2`, enabling seamless interoperability between Python-based data access and R-based analysis.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "3d052a14-3fc8-4c74-a829-18cb3684ab80", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "File downloaded successfully.\n" + ] + } + ], + "source": [ + "import requests\n", + "\n", + "url = \"http://ftp.1000genomes.ebi.ac.uk/vol1/ftp/phase3/20130502.phase3.sequence.index\"\n", + "response = requests.get(url)\n", + "\n", + "# Save to file\n", + "with open(\"20130502.phase3.sequence.index\", \"wb\") as f:\n", + " f.write(response.content)\n", + "\n", + "print(\"File downloaded successfully.\")" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "f13ecee5-1a5b-4e74-bf52-146111471262", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "FASTQ_FILE\tMD5\tRUN_ID\tSTUDY_ID\tSTUDY_NAME\tCENTER_NAME\tSUBMISSION_ID\tSUBMISSION_DATE\tSAMPLE_ID\tSAMPLE_NAME\tPOPULATION\tEXPERIMENT_ID\tINSTRUMENT_PLATFORM\tINSTRUMENT_MODEL\tLIBRARY_NAME\tRUN_NAME\tRUN_BLOCK_NAME\tINSERT_SIZE\tLIBRARY_LAYOUT\tPAIRED_FASTQ\tWITHDRAWN\tWITHDRAWN_DATE\tCOMMENT\tREAD_COUNT\tBASE_COUNT\tANALYSIS_GROUP\n", + "\n", + "data/NA19238/sequence_read/ERR000018.filt.fastq.gz\t3b092ef1661e2a8ff85050e01242707d\tERR000018\tSRP000032\t1000Genomes Project Pilot 2\tBGI\tERA000013\t2008-08-14 00:00:00\tSRS000212\tNA19238\tYRI\tERX000014\tILLUMINA\tIllumina Genome Analyzer\tHU1000RADCAASE\tBGI-FC307N0AAXX\t\t0\tSINGLE\t\t0\t\t\t9280498\t334097928\thigh coverage\n", + "\n", + "data/NA19238/sequence_read/ERR000019.filt.fastq.gz\tfcb89b0a755773872f1b073d0a518e0a\tERR000019\tSRP000032\t1000Genomes Project Pilot 2\tBGI\tERA000013\t2008-08-14 00:00:00\tSRS000212\tNA19238\tYRI\tERX000014\tILLUMINA\tIllumina Genome Analyzer\tHU1000RADCAASE\tBGI-FC307AWAAXX\t\t0\tSINGLE\t\t0\t\t\t9571982\t344591352\thigh coverage\n", + "\n", + "data/NA19240/sequence_read/ERR000020.filt.fastq.gz\tdcd4ff7db25a75e462beaa75eb167bea\tERR000020\tSRP000032\t1000Genomes Project Pilot 2\tBGI\tERA000013\t2008-08-14 00:00:00\tSRS000214\tNA19240\tYRI\tERX000016\tILLUMINA\tIllumina Genome Analyzer II\tQRAACDEAAPE\tBGI-FC206YCAAXX_3\t\t345\tPAIRED\t\t0\t\t\t149044\t5365584\thigh coverage\n", + "\n", + "data/NA19240/sequence_read/ERR000020_1.filt.fastq.gz\tfb5d7eb5137aa173f9f9ec344bd7a8e7\tERR000020\tSRP000032\t1000Genomes Project Pilot 2\tBGI\tERA000013\t2008-08-14 00:00:00\tSRS000214\tNA19240\tYRI\tERX000016\tILLUMINA\tIllumina Genome Analyzer II\tQRAACDEAAPE\tBGI-FC206YCAAXX_3\t\t345\tPAIRED\tdata/NA19240/sequence_read/ERR000020_2.filt.fastq.gz\t0\t\t\t2057690\t74076840\thigh coverage\n", + "\n", + "data/NA19240/sequence_read/ERR000020_2.filt.fastq.gz\t398fe2bcba33927eda185721f4976fb9\tERR000020\tSRP000032\t1000Genomes Project Pilot 2\tBGI\tERA000013\t2008-08-14 00:00:00\tSRS000214\tNA19240\tYRI\tERX000016\tILLUMINA\tIllumina Genome Analyzer II\tQRAACDEAAPE\tBGI-FC206YCAAXX_3\t\t345\tPAIRED\tdata/NA19240/sequence_read/ERR000020_1.filt.fastq.gz\t0\t\t\t2057690\t74076840\thigh coverage\n", + "\n", + "data/NA19238/sequence_read/ERR000021.filt.fastq.gz\t52fcfd7f50d9224e8f9e860973449e73\tERR000021\tSRP000032\t1000Genomes Project Pilot 2\tBGI\tERA000013\t2008-08-14 00:00:00\tSRS000212\tNA19238\tYRI\tERX000014\tILLUMINA\tIllumina Genome Analyzer\tHU1000RADCAASE\tBGI-FC305YCAAXX\t\t0\tSINGLE\t\t0\t\t\t9388168\t337974048\thigh coverage\n", + "\n", + "data/NA19238/sequence_read/ERR000022.filt.fastq.gz\tebdddc15934bd2fdd4d0a117a40770ab\tERR000022\tSRP000032\t1000Genomes Project Pilot 2\tBGI\tERA000013\t2008-08-14 00:00:00\tSRS000212\tNA19238\tYRI\tERX000014\tILLUMINA\tIllumina Genome Analyzer\tHU1000RADCAASE\tBGI-FC3036GAAXX\t\t0\tSINGLE\t\t0\t\t\t7762958\t279466488\thigh coverage\n", + "\n", + "data/NA19238/sequence_read/ERR000023.filt.fastq.gz\t594d573b548c18b9645386d1f09c7f94\tERR000023\tSRP000032\t1000Genomes Project Pilot 2\tBGI\tERA000013\t2008-08-14 00:00:00\tSRS000212\tNA19238\tYRI\tERX000014\tILLUMINA\tIllumina Genome Analyzer\tHU1000RADCAASE\tBGI-FC306DTAAXX\t\t0\tSINGLE\t\t0\t\t\t9625450\t385018000\thigh coverage\n", + "\n", + "data/NA19238/sequence_read/ERR000024.filt.fastq.gz\te0ab050d1edd06d36f5a09126745e1ea\tERR000024\tSRP000032\t1000Genomes Project Pilot 2\tBGI\tERA000013\t2008-08-14 00:00:00\tSRS000212\tNA19238\tYRI\tERX000014\tILLUMINA\tIllumina Genome Analyzer\tHU1000RADCAASE\tBGI-FC305UMAAXX\t\t0\tSINGLE\t\t0\t\t\t8808642\t317111112\thigh coverage\n", + "\n" + ] + } + ], + "source": [ + "with open(\"20130502.phase3.sequence.index\", \"r\") as f:\n", + " for i in range(10): # Show the first 10 lines\n", + " print(f.readline())\n" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "2cfdf816-0fe7-400d-a111-1e0ae9f2b28c", + "metadata": {}, + "outputs": [], + "source": [ + "read_delim = robjects.r('read.delim')\n", + "seq_data = read_delim('20130502.phase3.sequence.index', header=True,stringsAsFactors=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "bbe22970-9bef-4f2d-b240-1fd99fcbf207", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "This dataframe has 26 columns and 187720 rows\n", + " [1] \"FASTQ_FILE\" \"MD5\" \"RUN_ID\" \n", + " [4] \"STUDY_ID\" \"STUDY_NAME\" \"CENTER_NAME\" \n", + " [7] \"SUBMISSION_ID\" \"SUBMISSION_DATE\" \"SAMPLE_ID\" \n", + "[10] \"SAMPLE_NAME\" \"POPULATION\" \"EXPERIMENT_ID\" \n", + "[13] \"INSTRUMENT_PLATFORM\" \"INSTRUMENT_MODEL\" \"LIBRARY_NAME\" \n", + "[16] \"RUN_NAME\" \"RUN_BLOCK_NAME\" \"INSERT_SIZE\" \n", + "[19] \"LIBRARY_LAYOUT\" \"PAIRED_FASTQ\" \"WITHDRAWN\" \n", + "[22] \"WITHDRAWN_DATE\" \"COMMENT\" \"READ_COUNT\" \n", + "[25] \"BASE_COUNT\" \"ANALYSIS_GROUP\" \n", + "\n" + ] + } + ], + "source": [ + "print('This dataframe has %d columns and %d rows' \n", + "% (seq_data.ncol, seq_data.nrow))\n", + "print(seq_data.colnames)" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "507757f0-ac2d-44c6-a3c2-9fa8382ad9ae", + "metadata": {}, + "outputs": [], + "source": [ + "as_integer = robjects.r('as.integer')\n", + "match = robjects.r.match" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "id": "3edd950f-ac0b-4e89-927d-db061e085526", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Type of read count before as.integer: integer\n", + "Type of read count after as.integer: integer\n" + ] + } + ], + "source": [ + "my_col = match('READ_COUNT', seq_data.colnames)[0] # vector returned\n", + "print('Type of read count before as.integer: %s' % seq_data[my_col - 1].rclass[0])\n", + "seq_data[my_col - 1] = as_integer(seq_data[my_col - 1])\n", + "print('Type of read count after as.integer: %s' % seq_data[my_col - 1].rclass[0])\n", + "robjects.r(\"seq.data <- seq.data[, c('STUDY_ID', 'STUDY_NAME', 'CENTER_NAME', 'SAMPLE_ID', 'SAMPLE_NAME', 'POPULATION', 'INSTRUMENT_PLATFORM', 'LIBRARY_LAYOUT', 'PAIRED_FASTQ', 'READ_COUNT', 'BASE_COUNT', 'ANALYSIS_GROUP')]\")" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "id": "554ec178-2f6b-433b-a16d-7fe5a02efc08", + "metadata": {}, + "outputs": [], + "source": [ + "robjects.r('seq.data$POPULATION <- as.factor(seq.data$POPULATION)')" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "id": "41059450-730b-49f4-bbeb-ad62dbbf1204", + "metadata": {}, + "outputs": [], + "source": [ + "from rpy2.robjects.functions import SignatureTranslatedFunction" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "id": "c5a58ddb-1262-4f8a-b81f-442d639453d2", + "metadata": {}, + "outputs": [], + "source": [ + " ggplot2.theme = SignatureTranslatedFunction(ggplot2. theme, init_prm_translate = {'axis_text_x': 'axis. text.x'})" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "id": "7cae86eb-90b6-411f-8ccc-2ad377cc5628", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + " IntVector with 1 elements.\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
\n", + " 1\n", + "
\n", + " " + ], + "text/plain": [ + " [13]\n", + "R classes: ('integer',)\n", + "[1]" + ] + }, + "execution_count": 55, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bar = ggplot2.ggplot(seq_data) + \\\n", + " ggplot2.aes_string(x='CENTER_NAME') + \\\n", + " ggplot2.geom_bar() + \\\n", + " ggplot2.theme(axis_text_x=ggplot2.element_text(angle=90, hjust=1))\n", + "\n", + "robjects.r.png('out.png', type='cairo-png')\n", + "bar.plot()\n", + "dev_off = robjects.r('dev.off')\n", + "dev_off()" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "id": "1a2a0c2e-5d66-47e7-a804-ae7fe77ede89", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "" + ] + }, + "execution_count": 56, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "Image(filename='out.png')" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "id": "c15e2fa9-2593-429c-870b-3c2a8992eccd", + "metadata": {}, + "outputs": [], + "source": [ + "robjects.r('yri_ceu <- seq.data[seq.data$POPULATION %in% c(\"YRI\", \"CEU\") & seq.data$BASE_COUNT < 2E09 & seq.data$READ_COUNT < 3E07, ]')\n", + "yri_ceu = robjects.r('yri_ceu')" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "id": "a42b84ee-f63e-47e1-b293-dfd808390335", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + " IntVector with 1 elements.\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
\n", + " 1\n", + "
\n", + " " + ], + "text/plain": [ + " [13]\n", + "R classes: ('integer',)\n", + "[1]" + ] + }, + "execution_count": 58, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "scatter = (ggplot2.ggplot(yri_ceu) +\n", + " ggplot2.aes_string(x='BASE_COUNT', y='READ_COUNT',\n", + " shape='factor(POPULATION)', col='factor(ANALYSIS_GROUP)') +\n", + " ggplot2.geom_point())\n", + "\n", + "robjects.r.png('out1.png', type='cairo-png')\n", + "scatter.plot()\n", + "robjects.r('dev.off')()" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "id": "3c16741e-449c-4c26-a377-c7e628e7fff6", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "" + ] + }, + "execution_count": 59, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "Image(filename='out1.png')" + ] + }, + { + "cell_type": "markdown", + "id": "a46f9987-53ab-487a-b534-1875f90dd78e", + "metadata": {}, + "source": [ + "## Data type handling and axis scaling\n", + "\n", + "To ensure correct visualisation of sequencing metadata, the numeric columns used for plotting are explicitly coerced to numeric types prior to filtering and plotting. This avoids unintended behaviour when values are parsed as character or factor types.\n", + "\n", + "Axis scales are defined explicitly to reflect the expected ranges of base counts and read counts, improving interpretability and ensuring consistent plot formatting across environments.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "id": "e0ecccd0-b3d8-47a0-a47a-028bcc407534", + "metadata": {}, + "outputs": [], + "source": [ + "robjects.r(\"\"\"\n", + "seq.data$BASE_COUNT <- as.numeric(seq.data$BASE_COUNT)\n", + "seq.data$READ_COUNT <- as.numeric(seq.data$READ_COUNT)\n", + "\"\"\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "id": "cfb75bce-b909-450f-9849-308efb1f4304", + "metadata": {}, + "outputs": [], + "source": [ + "robjects.r(\"\"\"\n", + "yri_ceu <- seq.data[\n", + " seq.data$POPULATION %in% c(\"YRI\", \"CEU\") &\n", + " seq.data$BASE_COUNT < 2e9 &\n", + " seq.data$READ_COUNT < 3e7,\n", + "]\n", + "\"\"\")\n", + "\n", + "yri_ceu = robjects.r(\"yri_ceu\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "id": "4b057849-c08a-4243-bbd9-3e94c7c0983b", + "metadata": {}, + "outputs": [], + "source": [ + "scatter = (\n", + " ggplot2.ggplot(yri_ceu) +\n", + " ggplot2.aes_string(\n", + " x=\"BASE_COUNT\",\n", + " y=\"READ_COUNT\",\n", + " shape=\"factor(POPULATION)\",\n", + " col=\"factor(ANALYSIS_GROUP)\"\n", + " ) +\n", + " ggplot2.geom_point() +\n", + " ggplot2.scale_x_continuous(\n", + " breaks=robjects.FloatVector([0, 5e8, 1e9, 1.5e9, 2e9])\n", + " ) +\n", + " ggplot2.scale_y_continuous(\n", + " breaks=robjects.FloatVector([0, 1e7, 2e7, 3e7])\n", + " )\n", + ")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "id": "705c94b4-ddda-4852-88ba-c8d0453aaffb", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " num [1:29738] 3.34e+08 3.45e+08 5.37e+06 7.41e+07 7.41e+07 ...\n", + " num [1:29738] 9280498 9571982 149044 2057690 2057690 ...\n" + ] + } + ], + "source": [ + "robjects.r(\"str(yri_ceu$BASE_COUNT)\")\n", + "robjects.r(\"str(yri_ceu$READ_COUNT)\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "id": "d52bb8ce-87f4-48f3-9fa6-045b69d81090", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "R[write to console]: In addition: \n", + "R[write to console]: Warning message:\n", + "\n", + "R[write to console]: Removed 126 rows containing missing values or values outside the scale range (`geom_point()`). \n", + "\n" + ] + }, + { + "data": { + "text/html": [ + "\n", + " IntVector with 1 elements.\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
\n", + " 1\n", + "
\n", + " " + ], + "text/plain": [ + " [13]\n", + "R classes: ('integer',)\n", + "[1]" + ] + }, + "execution_count": 69, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from rpy2.robjects import r\n", + "\n", + "r.png(\"out2.png\", width=1200, height=900, res=150, type=\"cairo-png\")\n", + "r(\"print\")(scatter)\n", + "r(\"dev.off\")()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "id": "e74f8e22-3094-4952-a227-7f032ccfe4e0", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "" + ] + }, + "execution_count": 70, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "Image(filename='out2.png')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "60bd4d6a-87fd-4ff6-891e-1de1a239ba79", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.12.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/Chapter01/razan_files/chapter01_rpy2_1000g.py b/Chapter01/razan_files/chapter01_rpy2_1000g.py new file mode 100644 index 0000000..b05985d --- /dev/null +++ b/Chapter01/razan_files/chapter01_rpy2_1000g.py @@ -0,0 +1,200 @@ +#!/usr/bin/env python +# coding: utf-8 + +# # Chapter 1 – Using rpy2 with the 1000 Genomes Project +# +# This chapter demonstrates how to interface Python with R using `rpy2`, and highlights common pitfalls when working with external bioinformatics resources such as the 1000 Genomes Project, and demonstrates practical solutions. + + + +import os +os.environ["R_HOME"] = r"C:\Program Files\R\R-4.4.2" +os.environ["PATH"] += os.pathsep + r"C:\Program Files\R\R-4.4.2\bin\x64" +import os +from IPython.display import Image +import rpy2.robjects as robjects +import rpy2.robjects.lib.ggplot2 as ggplot2 +from rpy2.robjects.functions import SignatureTranslatedFunction +import pandas as pd +import rpy2.robjects as ro +from rpy2.robjects import pandas2ri +from rpy2.robjects import conversion + + + + + + + +# ## Interfacing with R and data access +# +# This section illustrates how Python interfaces with R via `rpy2` to analyse metadata from external genomics resources. Special attention is given to data access and reproducibility, as differences in execution environments can affect how external files are retrieved and parsed. +# + +# ## Data access using Python +# +# To integrate external datasets into the R workflow, the sequence index file is downloaded via its public URL using Python and stored locally. The file is then read into R through `rpy2`, enabling seamless interoperability between Python-based data access and R-based analysis. +# + + + + +import requests + +url = "http://ftp.1000genomes.ebi.ac.uk/vol1/ftp/phase3/20130502.phase3.sequence.index" +response = requests.get(url) + +# Save to file +with open("20130502.phase3.sequence.index", "wb") as f: + f.write(response.content) + +print("File downloaded successfully.") + + + + +with open("20130502.phase3.sequence.index", "r") as f: + for i in range(10): # Show the first 10 lines + print(f.readline()) + + + + +read_delim = robjects.r('read.delim') +seq_data = read_delim('20130502.phase3.sequence.index', header=True,stringsAsFactors=False) + + + + + +print('This dataframe has %d columns and %d rows' +% (seq_data.ncol, seq_data.nrow)) +print(seq_data.colnames) + + + + +as_integer = robjects.r('as.integer') +match = robjects.r.match + + + + + +my_col = match('READ_COUNT', seq_data.colnames)[0] # vector returned +print('Type of read count before as.integer: %s' % seq_data[my_col - 1].rclass[0]) +seq_data[my_col - 1] = as_integer(seq_data[my_col - 1]) +print('Type of read count after as.integer: %s' % seq_data[my_col - 1].rclass[0]) +robjects.r("seq.data <- seq.data[, c('STUDY_ID', 'STUDY_NAME', 'CENTER_NAME', 'SAMPLE_ID', 'SAMPLE_NAME', 'POPULATION', 'INSTRUMENT_PLATFORM', 'LIBRARY_LAYOUT', 'PAIRED_FASTQ', 'READ_COUNT', 'BASE_COUNT', 'ANALYSIS_GROUP')]") + + + + + +robjects.r('seq.data$POPULATION <- as.factor(seq.data$POPULATION)') + + + + +from rpy2.robjects.functions import SignatureTranslatedFunction + + + + + +ggplot2.theme = SignatureTranslatedFunction(ggplot2. theme, init_prm_translate = {'axis_text_x': 'axis. text.x'}) + + + +bar = ggplot2.ggplot(seq_data) + \ + ggplot2.aes_string(x='CENTER_NAME') + \ + ggplot2.geom_bar() + \ + ggplot2.theme(axis_text_x=ggplot2.element_text(angle=90, hjust=1)) + +robjects.r.png('out.png', type='cairo-png') +bar.plot() +dev_off = robjects.r('dev.off') +dev_off() + + + + +Image(filename='out.png') + + + + +# ## Data type handling and axis scaling +# +# To ensure correct visualisation of sequencing metadata, the numeric columns used for plotting are explicitly coerced to numeric types prior to filtering and plotting. This avoids unintended behaviour when values are parsed as character or factor types. +# +# Axis scales are defined explicitly to reflect the expected ranges of base counts and read counts, improving interpretability and ensuring consistent plot formatting across environments. +# + + + +robjects.r(""" +seq.data$BASE_COUNT <- as.numeric(seq.data$BASE_COUNT) +seq.data$READ_COUNT <- as.numeric(seq.data$READ_COUNT) +""") + + + + + +robjects.r(""" +yri_ceu <- seq.data[ + seq.data$POPULATION %in% c("YRI", "CEU") & + seq.data$BASE_COUNT < 2e9 & + seq.data$READ_COUNT < 3e7, +] +""") + +yri_ceu = robjects.r("yri_ceu") + + + + +scatter = ( + ggplot2.ggplot(yri_ceu) + + ggplot2.aes_string( + x="BASE_COUNT", + y="READ_COUNT", + shape="factor(POPULATION)", + col="factor(ANALYSIS_GROUP)" + ) + + ggplot2.geom_point() + + ggplot2.scale_x_continuous( + breaks=robjects.FloatVector([0, 5e8, 1e9, 1.5e9, 2e9]) + ) + + ggplot2.scale_y_continuous( + breaks=robjects.FloatVector([0, 1e7, 2e7, 3e7]) + ) +) + + + + +robjects.r("str(yri_ceu$BASE_COUNT)") +robjects.r("str(yri_ceu$READ_COUNT)") + + + + + +from rpy2.robjects import r + +r.png("out2.png", width=1200, height=900, res=150, type="cairo-png") +r("print")(scatter) +r("dev.off")() + + + + +Image(filename='out2.png') + + + + + + diff --git a/Chapter01/razan_files/out.png b/Chapter01/razan_files/out.png new file mode 100644 index 0000000..8b3c827 Binary files /dev/null and b/Chapter01/razan_files/out.png differ diff --git a/Chapter01/razan_files/out1.png b/Chapter01/razan_files/out1.png new file mode 100644 index 0000000..a083753 Binary files /dev/null and b/Chapter01/razan_files/out1.png differ diff --git a/Chapter01/razan_files/out2.png b/Chapter01/razan_files/out2.png new file mode 100644 index 0000000..97b635c Binary files /dev/null and b/Chapter01/razan_files/out2.png differ diff --git a/Chapter06/Data_Formats.py b/Chapter06/Data_Formats.py index da88b33..483586f 100644 --- a/Chapter06/Data_Formats.py +++ b/Chapter06/Data_Formats.py @@ -12,7 +12,7 @@ # name: python3 # --- -# ## Data download +# # Data download # + # !wget https://ftp.ncbi.nlm.nih.gov/hapmap/genotypes/hapmap3_r3/plink_format/hapmap3_r3_b36_fwd.consensus.qc.poly.map.gz