{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Extract _P.generosa_ BLAST results using gene IDs associated with methylation machinery.\n", "\n", "List of methylation machinery gene IDs comes from this GitHub Issue:\n", "\n", "- [https://github.com/RobertsLab/resources/issues/1116](https://github.com/RobertsLab/resources/issues/1116)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "TODAY'S DATE:\n", "Fri Feb 26 11:36:59 PST 2021\n", "------------\n", "\n", "Distributor ID:\tUbuntu\n", "Description:\tUbuntu 20.04.2 LTS\n", "Release:\t20.04\n", "Codename:\tfocal\n", "\n", "------------\n", "HOSTNAME: \n", "computer\n", "\n", "------------\n", "Computer Specs:\n", "\n", "Architecture: x86_64\n", "CPU op-mode(s): 32-bit, 64-bit\n", "Byte Order: Little Endian\n", "Address sizes: 45 bits physical, 48 bits virtual\n", "CPU(s): 8\n", "On-line CPU(s) list: 0-7\n", "Thread(s) per core: 1\n", "Core(s) per socket: 1\n", "Socket(s): 8\n", "NUMA node(s): 1\n", "Vendor ID: GenuineIntel\n", "CPU family: 6\n", "Model: 165\n", "Model name: Intel(R) Core(TM) i9-10885H CPU @ 2.40GHz\n", "Stepping: 2\n", "CPU MHz: 2399.998\n", "BogoMIPS: 4799.99\n", "Hypervisor vendor: VMware\n", "Virtualization type: full\n", "L1d cache: 256 KiB\n", "L1i cache: 256 KiB\n", "L2 cache: 2 MiB\n", "L3 cache: 128 MiB\n", "NUMA node0 CPU(s): 0-7\n", "Vulnerability Itlb multihit: KVM: Mitigation: VMX unsupported\n", "Vulnerability L1tf: Not affected\n", "Vulnerability Mds: Not affected\n", "Vulnerability Meltdown: Not affected\n", "Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl and seccomp\n", "Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization\n", "Vulnerability Spectre v2: Mitigation; Enhanced IBRS, IBPB conditional, RSB filling\n", "Vulnerability Srbds: Not affected\n", "Vulnerability Tsx async abort: Not affected\n", "Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc cpuid pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single ssbd ibrs ibpb stibp ibrs_enhanced fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 xsaves arat pku ospke md_clear flush_l1d arch_capabilities\n", "\n", "------------\n", "\n", "Memory Specs\n", "\n", " total used free shared buff/cache available\n", "Mem: 53Gi 3.7Gi 42Gi 267Mi 7.2Gi 49Gi\n", "Swap: 2.0Gi 0B 2.0Gi\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "No LSB modules are available.\n" ] } ], "source": [ "%%bash\n", "echo \"TODAY'S DATE:\"\n", "date\n", "echo \"------------\"\n", "echo \"\"\n", "#Display operating system info\n", "lsb_release -a\n", "echo \"\"\n", "echo \"------------\"\n", "echo \"HOSTNAME: \"; hostname \n", "echo \"\"\n", "echo \"------------\"\n", "echo \"Computer Specs:\"\n", "echo \"\"\n", "lscpu\n", "echo \"\"\n", "echo \"------------\"\n", "echo \"\"\n", "echo \"Memory Specs\"\n", "echo \"\"\n", "free -mh" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Set variables" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "env: data_dir=/home/samb/data/P_generosa\n", "env: genes_gff=/home/samb/data/P_generosa/Panopea-generosa-vv0.74.a4.gene.gff3\n", "env: unique_pgen_match_IDs=/home/samb/data/P_generosa/20210219_pgen_methylation-machinery_gene-IDs.txt\n", "env: meth_machinery_list=/home/samb/data/P_generosa/20210219_methylation_list.txt\n", "env: results_table=/home/samb/data/P_generosa/20210222_pgen_methylation-machinery_BLAST-evals.tab\n" ] } ], "source": [ "# Set data directories\n", "%env data_dir=/home/samb/data/P_generosa\n", "%env genes_gff=/home/samb/data/P_generosa/Panopea-generosa-vv0.74.a4.gene.gff3\n", "%env unique_pgen_match_IDs=/home/samb/data/P_generosa/20210219_pgen_methylation-machinery_gene-IDs.txt\n", "%env meth_machinery_list=/home/samb/data/P_generosa/20210219_methylation_list.txt\n", "%env results_table=/home/samb/data/P_generosa/20210222_pgen_methylation-machinery_BLAST-evals.tab\n", "data_dir=\"/home/samb/data/P_generosa\"" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/home/samb/data/P_generosa\n" ] } ], "source": [ "cd {data_dir}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Download gene GFF, GFF checksums file, and GenSAS BLAST results" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "total 14M\n", "-rw-rw-r-- 1 samb samb 147 Feb 19 10:59 20210219_methylation_list.txt\n", "-rw-rw-r-- 1 samb samb 1.5M Oct 3 2019 Panopea-generosa-vv0.74.a4.5d951a9b74287-blast_functional.tab\n", "-rw-rw-r-- 1 samb samb 1.3M Oct 3 2019 Panopea-generosa-vv0.74.a4.5d951bcf45b4b-diamond_functional.tab\n", "-rw-rw-r-- 1 samb samb 11M Oct 14 2019 Panopea-generosa-vv0.74.a4.gene.gff3\n", "-rw-rw-r-- 1 samb samb 6.0K Feb 19 20:33 checksums.md5\n" ] } ], "source": [ "%%bash\n", "wget --quiet https://gannet.fish.washington.edu/Atumefaciens/20190928_Pgenerosa_v074.a4_gensas_annotation/Panopea-generosa-vv0.74.a4.5d951bcf45b4b-diamond_functional.tab\n", "\n", "wget --quiet https://gannet.fish.washington.edu/Atumefaciens/20190928_Pgenerosa_v074.a4_gensas_annotation/Panopea-generosa-vv0.74.a4.5d951a9b74287-blast_functional.tab\n", "\n", "wget --quiet https://gannet.fish.washington.edu/Atumefaciens/20190928_Pgenerosa_v074.a4_gensas_annotation/checksums.md5\n", "\n", "wget --quiet https://gannet.fish.washington.edu/Atumefaciens/20190928_Pgenerosa_v074.a4_gensas_annotation/Panopea-generosa-vv0.74.a4.gene.gff3\n", " \n", "ls -lh" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Inspect files" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "-----------------------------------------------------------\n", "\n", "20210219_methylation_list.txt\n", "\n", "dnmt1\n", "dnmt3a\n", "dnmt3b\n", "dnmt3l\n", "mbd1\n", "mbd2\n", "mbd3\n", "mbd4\n", "mbd5\n", "mbd6\n", "mecp2\n", "Baz2a\n", "Baz2b\n", "UHRF1\n", "UHRF2\n", "\n", "\n", "-----------------------------------------------------------\n", "\n", "Panopea-generosa-vv0.74.a4.5d951a9b74287-blast_functional.tab\n", "\n", "#\n", "# Output is generated by GenSAS 7.x-5.0\n", "#\n", "#name : mRNA\n", "#start : Start of alignment in subject\n", "#end : End of alignment in subject\n", "#m_start : Start of alignment in query\n", "#m_end : End of alignment in query\n", "#al : Alignment length\n", "#score : Row score of the match\n", "#evalue : E value of the match\n", "#identity : Percentage of identical matches\n", "mame\tstart\tend\tscore\tAccession\tMatch ID\tm_start\tm_end\tE-value\tidentity\tal\n", "21910-PGEN_.00g000010.m01\t121\t229\t165\tQ86IC9\tsp|Q86IC9|CAMT1_DICDI\t11\t122\t8.93e-14\t35.652\t115\n", "21910-PGEN_.00g000020.m01\t147\t467\t968\tP04177\tsp|P04177|TY3H_RAT\t20\t339\t3.47e-127\t55.140\t321\n", "\n", "\n", "-----------------------------------------------------------\n", "\n", "Panopea-generosa-vv0.74.a4.5d951bcf45b4b-diamond_functional.tab\n", "\n", "#\n", "# Output is generated by GenSAS 7.x-5.0\n", "#\n", "#name : mRNA\n", "#start : Start of alignment in subject\n", "#end : End of alignment in subject\n", "#m_start : Start of alignment in query\n", "#m_end : End of alignment in query\n", "#al : Alignment length\n", "#score : Row score of the match\n", "#evalue : E value of the match\n", "#identity : Percentage of identical matches\n", "mame\tstart\tend\tscore\tAccession\tMatch ID\tm_start\tm_end\tE-value\tidentity\tal\n", "21910-PGEN_.00g000020.m01\t147\t467\t945\tP04177\tsp|P04177|TY3H_RAT\t20\t339\t7.9e-101\t55.1\t321\n", "21910-PGEN_.00g000050.m01\t566\t722\t180\tQ8L840\tsp|Q8L840|RQL4A_ARATH\t2\t167\t2.4e-12\t35.1\t168\n", "\n", "\n", "-----------------------------------------------------------\n", "\n", "Panopea-generosa-vv0.74.a4.gene.gff3\n", "\n", "##gff-version 3\n", "##Generated using GenSAS, Monday 7th of October 2019 04:54:37 AM\n", "##Project Name : Pgenerosa_v074\n", "PGA_scaffold1__77_contigs__length_89643857\tGenSAS_5d9637f372b5d-publish\tgene\t2\t4719\t.\t+\t.\tID=PGEN_.00g000010;Name=PGEN_.00g000010;original_ID=21510-PGEN_.00g234140;Alias=21510-PGEN_.00g234140;original_name=21510-PGEN_.00g234140;Notes=sp|Q86IC9|CAMT1_DICDI [BLAST protein vs protein (blastp) 2.7.1],PF01596.12 [Pfam 1.6]\n", "PGA_scaffold1__77_contigs__length_89643857\tGenSAS_5d9637f372b5d-publish\tgene\t19808\t36739\t.\t-\t.\tID=PGEN_.00g000020;Name=PGEN_.00g000020;original_ID=21510-PGEN_.00g234150;Alias=21510-PGEN_.00g234150;original_name=21510-PGEN_.00g234150;Notes=sp|P04177|TY3H_RAT [BLAST protein vs protein (blastp) 2.7.1],sp|P04177|TY3H_RAT [DIAMOND Functional 0.9.22],IPR036951 [InterProScan 5.29-68.0],PF00351.16 [Pfam 1.6]\n", "PGA_scaffold1__77_contigs__length_89643857\tGenSAS_5d9637f372b5d-publish\tgene\t49248\t52578\t.\t-\t.\tID=PGEN_.00g000030;Name=PGEN_.00g000030;original_ID=21510-PGEN_.00g234160;Alias=21510-PGEN_.00g234160;original_name=21510-PGEN_.00g234160;Notes=PF08054.6 [Pfam 1.6]\n", "PGA_scaffold1__77_contigs__length_89643857\tGenSAS_5d9637f372b5d-publish\tgene\t55792\t67546\t.\t+\t.\tID=PGEN_.00g000040;Name=PGEN_.00g000040;original_ID=21510-PGEN_.00g234170;Alias=21510-PGEN_.00g234170;original_name=21510-PGEN_.00g234170\n", "PGA_scaffold1__77_contigs__length_89643857\tGenSAS_5d9637f372b5d-publish\tgene\t67586\t69113\t.\t-\t.\tID=PGEN_.00g000050;Name=PGEN_.00g000050;original_ID=21510-PGEN_.00g234180;Alias=21510-PGEN_.00g234180;original_name=21510-PGEN_.00g234180;Notes=sp|Q8L840|RQL4A_ARATH [BLAST protein vs protein (blastp) 2.7.1],sp|Q8L840|RQL4A_ARATH [DIAMOND Functional 0.9.22],PF00270.24 [Pfam 1.6]\n", "PGA_scaffold1__77_contigs__length_89643857\tGenSAS_5d9637f372b5d-publish\tgene\t70713\t81099\t.\t+\t.\tID=PGEN_.00g000060;Name=PGEN_.00g000060;original_ID=21510-PGEN_.00g234190;Alias=21510-PGEN_.00g234190;original_name=21510-PGEN_.00g234190;Notes=sp|Q61043|NIN_MOUSE [DIAMOND Functional 0.9.22],PF04443.7 [Pfam 1.6]\n", "PGA_scaffold1__77_contigs__length_89643857\tGenSAS_5d9637f372b5d-publish\tgene\t183686\t186073\t.\t+\t.\tID=PGEN_.00g000070;Name=PGEN_.00g000070;original_ID=21510-PGEN_.00g234200;Alias=21510-PGEN_.00g234200;original_name=21510-PGEN_.00g234200;Notes=PF15364.1 [Pfam 1.6]\n", "PGA_scaffold1__77_contigs__length_89643857\tGenSAS_5d9637f372b5d-publish\tgene\t187328\t188353\t.\t+\t.\tID=PGEN_.00g000080;Name=PGEN_.00g000080;original_ID=21510-PGEN_.00g234210;Alias=21510-PGEN_.00g234210;original_name=21510-PGEN_.00g234210;Notes=sp|A1E2V0|BIRC3_CANLF [BLAST protein vs protein (blastp) 2.7.1],sp|Q24307|DIAP2_DROME [DIAMOND Functional 0.9.22],IPR001370 [InterProScan 5.29-68.0],PF02229.11 [Pfam 1.6]\n", "PGA_scaffold1__77_contigs__length_89643857\tGenSAS_5d9637f372b5d-publish\tgene\t189849\t190460\t.\t-\t.\tID=PGEN_.00g000090;Name=PGEN_.00g000090;original_ID=21510-PGEN_.00g234220;Alias=21510-PGEN_.00g234220;original_name=21510-PGEN_.00g234220;Notes=sp|P34456|YMD2_CAEEL [BLAST protein vs protein (blastp) 2.7.1],PF10284.4 [Pfam 1.6]\n", "PGA_scaffold1__77_contigs__length_89643857\tGenSAS_5d9637f372b5d-publish\tgene\t191069\t191410\t.\t-\t.\tID=PGEN_.00g000100;Name=PGEN_.00g000100;original_ID=21510-PGEN_.00g234230;Alias=21510-PGEN_.00g234230;original_name=21510-PGEN_.00g234230;Notes=PF10228.4 [Pfam 1.6]\n", "PGA_scaffold1__77_contigs__length_89643857\tGenSAS_5d9637f372b5d-publish\tgene\t191836\t192282\t.\t-\t.\tID=PGEN_.00g000110;Name=PGEN_.00g000110;original_ID=21510-PGEN_.00g234240;Alias=21510-PGEN_.00g234240;original_name=21510-PGEN_.00g234240;Notes=IPR009044 [InterProScan 5.29-68.0],PF02229.11 [Pfam 1.6]\n", "PGA_scaffold1__77_contigs__length_89643857\tGenSAS_5d9637f372b5d-publish\tgene\t192526\t193324\t.\t-\t.\tID=PGEN_.00g000120;Name=PGEN_.00g000120;original_ID=21510-PGEN_.00g234250;Alias=21510-PGEN_.00g234250;original_name=21510-PGEN_.00g234250;Notes=sp|P34457|YMD3_CAEEL [DIAMOND Functional 0.9.22],IPR036397 [InterProScan 5.29-68.0],PF13276.1 [Pfam 1.6]\n", "\n", "\n", "-----------------------------------------------------------\n", "\n", "checksums.md5\n", "\n", "fb0ed4cf6af7adaa6579da118a887cb9 ./Panopea-generosa-vv0.74.a4.5d82b23f69545-braker.genes.gff3\n", "aed6dae0cc90216f8606077c1927e6ff ./Panopea-generosa-vv0.74.a4.5d938f378020d-pasa_refine.CDS.fna\n", "4b3369aa246cb179ecf374f5c4f38966 ./Panopea-generosa-vv0.74.a4.5d3f05ff5e0bd-augustus.genes.fna\n", "f0afd89f974e81fcbadef8cae13423d9 ./Panopea-generosa-vv0.74.a4.5d82b316cd298-trnascan.tRNA.fna\n", "36fbf825ef85893cc6256f2dcc2b86c2 ./Panopea-generosa-vv0.74.a4.5d82b316cd298-trnascan.tRNA.gff3\n", "8f11ea587217243e02568aec3c59d78c ./Panopea-generosa-vv0.74.a4.5d3f05ff5e0bd-augustus.CDS.fna\n", "8401b6372774f594f8aad52d0aa5a1d6 ./Panopea-generosa-vv0.74.a4.rRNA.gff3\n", "acd5a79a0879f602815ace545faedab7 ./Panopea-generosa-vv0.74.a4.5d938f378020d-pasa_refine.protein.faa\n", "4f751f896347e96241daf6006d3a3abe ./Panopea-generosa-vv0.74.a4.5d82b2fdbf06f-genemark.protein.faa\n", "7c348d72a890232bd09676e38d6b8ada ./Panopea-generosa-vv0.74.a4.gene.gff3\n", "a0a5cbd449cf90e8b91a188504e76f8c ./Panopea-generosa-vv0.74.a4.5d82b2fdbf06f-genemark.CDS.fna\n", "965b78b7ebb3274edb8bab0ca1e0e8c1 ./Panopea-generosa-vv0.74.a4.5d250896def4c-repeatmasker.repeats.gff3\n", "14d207d90085eeac0002ba8cdf7ca3aa ./Panopea-generosa-vv0.74.a4.CDS.gff3\n", "c37fa754433cdab8d609efb0f90a83fe ./Panopea-generosa-vv0.74.a4.5d951a9b74287-blast_functional.tab\n", "d36db1a170b0f037287af6fbfe0b45dd ./Panopea-generosa-vv0.74.a4.5d938f378020d-pasa_refine.genes.gff3\n", "\n" ] } ], "source": [ "%%bash\n", "line=\"-----------------------------------------------------------\"\n", "for file in *\n", "do\n", " echo \"\"\n", " echo \"${line}\"\n", " echo \"\"\n", " echo \"${file}\"\n", " echo \"\"\n", " head -n 15 \"${file}\"\n", " echo \"\"\n", "done\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Verify GFF checksum" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "%%bash\n", "diff <(md5sum Panopea-generosa-vv0.74.a4.gene.gff3 | cut -d \" \" -f1) <(grep \"Panopea-generosa-vv0.74.a4.gene.gff3\" checksums.md5 | cut -d \" \" -f1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## List of _P.generosa_ matching gene IDs from methylation machinery list file" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "PGEN_.00g104080\tBaz2b\n", "PGEN_.00g104170\tBaz2b\n", "PGEN_.00g116950\tmbd5\n", "PGEN_.00g186870\tctcf\n", "PGEN_.00g192900\tUHRF1\n", "PGEN_.00g202750\tmbd2\n", "PGEN_.00g209890\tmbd2\n", "PGEN_.00g209900\tmbd4\n", "PGEN_.00g243700\tegr1\n", "PGEN_.00g249090\tegr1\n" ] } ], "source": [ "%%bash\n", "# Pull out unique list of pgen IDs matching methylation machinery list\n", "while read -r line\n", "do\n", "\n", " # Test for empty line\n", " [ -z ${line} ] && { echo \"Empty line found in ${meth_machinery_list}.\"; exit 1; }\n", "\n", " # Search GFF for methylation gene name\n", " if grep --quiet --ignore-case \"|${line}\" \"${genes_gff}\"; then\n", "\n", " # Loop through matches, in case of multiple matches\n", " for match in $(grep --ignore-case \"|${line}\" \"${genes_gff}\" | awk -F'[=;]' '{print $2}')\n", " do\n", " # Print tab-delimited results\n", " printf \"%s\\t%s\\n\" \"${match}\" \"${line}\"\n", " done\n", " fi\n", "\n", "done < ${meth_machinery_list} | sort -k1,1 -u >> ${unique_pgen_match_IDs}\n", "\n", "head ${unique_pgen_match_IDs}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Search BLAST tables for gene IDs and print to tab-delimited file" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "%%bash\n", "printf \"%s\\t%s\\t%s\\t%s\\n\" \"Gene_ID\" \"gene_name\" \"BLASTp_evalue\" \"DIAMOND_evalue\" > ${results_table}\n", "while read -r pgen_ID meth_machinery\n", "do\n", " blastp=$(grep \"${pgen_ID}\" Panopea-generosa-vv0.74.a4.5d951a9b74287-blast_functional.tab | head -n 1 | cut -f9)\n", " diamond=$(grep \"${pgen_ID}\" Panopea-generosa-vv0.74.a4.5d951bcf45b4b-diamond_functional.tab | head -n 1 | cut -f9)\n", " printf \"%s\\t%s\\t%s\\t%s\\n\" \"${pgen_ID}\" \"${meth_machinery}\" \"${blastp}\" \"${diamond}\"\n", "done < ${unique_pgen_match_IDs} >> ${results_table}\n" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Gene_ID gene_name BLASTp_evalue DIAMOND_evalue\n", "PGEN_.00g104080 Baz2b 1.05e-98 5.4e-102\n", "PGEN_.00g104170 Baz2b 3.09e-96 1.2e-109\n", "PGEN_.00g116950 mbd5 6.40e-21 2.8e-20\n", "PGEN_.00g186870 ctcf 1.25e-116\n", "PGEN_.00g192900 UHRF1 2.32e-19\n", "PGEN_.00g202750 mbd2 9.46e-82 2.6e-63\n", "PGEN_.00g209890 mbd2 4.37e-19 9.2e-09\n", "PGEN_.00g209900 mbd4 3.14e-32 8.0e-29\n", "PGEN_.00g243700 egr1 6.24e-58 2.2e-23\n", "PGEN_.00g249090 egr1 4.19e-18 2.6e-06\n", "PGEN_.00g283000 dnmt1 5.03e-10\n", "PGEN_.00g283010 dnmt1 0.0 7.3e-224\n" ] } ], "source": [ "%%bash\n", "cat ${results_table} | column -t" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.5" } }, "nbformat": 4, "nbformat_minor": 4 }