-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
f050312
commit 88fa93c
Showing
347 changed files
with
249,985 additions
and
0 deletions.
There are no files selected for viewing
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8,655 changes: 8,655 additions & 0 deletions
8,655
2024/_images/lessons_l46_plotting_with_matplotlib_11_0.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1,228 changes: 1,228 additions & 0 deletions
1,228
2024/_images/lessons_l46_plotting_with_matplotlib_13_0.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
786 changes: 786 additions & 0 deletions
786
2024/_images/lessons_l46_plotting_with_matplotlib_17_0.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1,028 changes: 1,028 additions & 0 deletions
1,028
2024/_images/lessons_l46_plotting_with_matplotlib_19_0.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1,372 changes: 1,372 additions & 0 deletions
1,372
2024/_images/lessons_l46_plotting_with_matplotlib_21_0.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1,091 changes: 1,091 additions & 0 deletions
1,091
2024/_images/lessons_l46_plotting_with_matplotlib_23_0.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
864 changes: 864 additions & 0 deletions
864
2024/_images/lessons_l46_plotting_with_matplotlib_5_0.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1,070 changes: 1,070 additions & 0 deletions
1,070
2024/_images/lessons_l46_plotting_with_matplotlib_7_0.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
{"cells": [{"cell_type": "markdown", "metadata": {}, "source": ["# Exercise 1.1: Command line exercises\n", "\n", "<hr>"]}, {"cell_type": "markdown", "metadata": {}, "source": ["In this exercise, you will play around with the command line on your machine and get more familiar with it.\n", "\n", "**a)** Let's play around with some options for the `ls` command. First `cd` into a directory that has some interesting files in it (like `~git/bootcamp/command_line_tutorial`). Try the following if you are using `bash`.\n", "\n", " ls -F\n", " ls -G # Might not be as cool with Git Bash on Windows\n", " ls -l\n", " ls -lh\n", " ls -lS\n", " ls -FGLh\n", " \n", "You should be able to infer what these different options do, but you can ask the course staff as well.\n", "\n", "Normally, files that begin with a dot (`.`) are omitted when listing things. They are also generally omitted when you use your OS's GUI-based file handling system (like Finder on Macs). To see them, use `ls -a`. So, `cd` into your home directory (you remember how to do that, right?), and then do\n", "\n", " ls -a"]}, {"cell_type": "markdown", "metadata": {}, "source": ["**b)** The nuclear option to delete *everything* in a directory is `rm -rf`. The `r` means to delete recursively, and the `f` means to \"force\" deletion. I was going to give you an exercise that uses the nuclear option, but I'm not going to do that. So, just forget I said anything. For this part of the problem, I want you to discuss with someone else in the class *when* the nuclear option might be used, and what needs to be in place before exercising it."]}, {"cell_type": "markdown", "metadata": {}, "source": ["**c)** Try doing this if you are using macOS or Linux:\n", "\n", " ls /\n", " \n", "What is `/`? Try `cd`-ing there and seeing what's in there. **Do not delete anything!**"]}, {"cell_type": "markdown", "metadata": {}, "source": ["<br />"]}], "metadata": {"anaconda-cloud": {}, "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.9.12"}}, "nbformat": 4, "nbformat_minor": 4} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
{"cells": [{"cell_type": "markdown", "metadata": {}, "source": ["# Exercise 1.2: Making an rc file\n", "\n", "<hr>"]}, {"cell_type": "markdown", "metadata": {}, "source": ["Having a `.bashrc` or `.zshrc` file allows you to configure your shell how you like.\n", "\n", "**a)** If you are using Linux or macOS, open a terminal and type\n", "\n", " echo $SHELL\n", " \n", "This will tell you if you are using a Bash shell or Zsh, which will tell you which kind of rc file to set up in the next part of the exercise. If you are using Windows, you will create a `.bashrc` file.\n", "\n", "**b)** Create a `.bashrc` or `.zshrc` file in your home directory. If you already have one, open it up for editing using Jupyter's text editor.\n", "\n", "**c)** It is often useful to `alias` functions to other functions. For example, I am always worried I will accidentally delete things by accident. I therefore have the following line in my `.zshrc` file.\n", "\n", " alias rm=\"rm -i\"\n", " \n", "You should create aliases for commands like `ls` based on the flags you like to *always* use. Do the same for `rm` and `mv` (I use the `-i` flag with these). To figure out what flags are available, you can look at the `man` pages. Asking Google will usually give you the information you need on flags.\n", "\n", "If you like, you can use my `.bashrc` file, available in `~/git/bootcamp/misc/jb_bashrc`, or my `.zshrc` file, available in `~/git/bootcamp/misc/jb_zshrc`.\n", "\n", "**d)** Depending on your operating system, if you are using Bash, your `~/.bashrc` file may or may not be properly loaded upon opening a new bash shell. You may, e.g. for new macOS versions, need to explicitly source your `.bashrc` file in your `~/.bash_profile` file. Therefore, you should add the following to the bottom of your `~/.bash_profile` file.\n", "\n", "```bash\n", "if [ -f $HOME/.bashrc ]; then\n", " . $HOME/.bashrc\n", "fi\n", "```"]}, {"cell_type": "markdown", "metadata": {}, "source": ["<br />"]}], "metadata": {"anaconda-cloud": {}, "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.11.3"}}, "nbformat": 4, "nbformat_minor": 4} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
{"cells": [{"cell_type": "markdown", "metadata": {}, "source": ["# Exercise 1.3: Time and type conversions\n", "\n", "<hr>"]}, {"cell_type": "markdown", "metadata": {}, "source": ["Using the techniques you have learned in the first day of bootcamp, generate a time stamp (like 13:29:45 for nearly half past one in the afternoon) for the time that is 63,252 seconds after midnight. Start with this statement:"]}, {"cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": ["seconds_past_midnight = 63252"]}, {"cell_type": "markdown", "metadata": {}, "source": ["After that statement, the only numeric keys you should need or want to push are `0`, `2` or `3`, and `6`."]}, {"cell_type": "markdown", "metadata": {}, "source": ["<br/>"]}], "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.11.3"}}, "nbformat": 4, "nbformat_minor": 4} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
{"cells": [{"cell_type": "markdown", "metadata": {}, "source": ["# Exercise 1.4: Using string methods\n", "\n", "<hr>"]}, {"cell_type": "markdown", "metadata": {}, "source": ["In [Lesson 7](l07_intro_to_functions.ipynb), we wrote a function to compute the reverse complement of a sequence. \n", "\n", "**a)** Write that function again, still using a `for` loop, but do not use the built-in `reversed()` function.\n", "\n", "**b)** Write the function one more time, but without any loops."]}, {"cell_type": "markdown", "metadata": {}, "source": ["<br />"]}], "metadata": {"anaconda-cloud": {}, "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.11.3"}}, "nbformat": 4, "nbformat_minor": 4} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
{"cells": [{"cell_type": "markdown", "metadata": {}, "source": ["# Exercise 1.5: Longest common substring\n", "\n", "<hr>"]}, {"cell_type": "markdown", "metadata": {}, "source": ["Write a function that takes two sequences and returns the longest common substring. A substring is a contiguous portion of a string. For example:\n", "\n", "Substrings of `ATGCATAT`:\n", "\n", " TGCA\n", " T\n", " TAT\n", " \n", "Not substrings of `ATGCATAT`:\n", "\n", " AGCA # Skipped T\n", " CCATA # Added another C\n", " Hello, world. # Has nothing to do with the input sequence\n", " \n", "There may be more than one longest common substring; you only need to return one of them.\n", "\n", "The call signature of the function should be\n", "\n", "```python\n", "longest_common_substring(s1, s2)\n", "```\n", "\n", "Here are some return values you should get.\n", "\n", "|Function call|Result |\n", "|:---|---:|\n", "|`longest_common_substring('ATGC', 'ATGCA')` | `'ATGC'`|\n", "|`longest_common_substring('GATGCCATGCA', 'ATGCC')` | `'ATGCC'`|\n", "|`longest_common_substring('ACGTGGAAAGCCA', 'GTACACACGTTTTGAGAGACAC') `|`'ACGT'`|"]}, {"cell_type": "markdown", "metadata": {}, "source": ["<br />"]}], "metadata": {"anaconda-cloud": {}, "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.11.3"}}, "nbformat": 4, "nbformat_minor": 4} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
{"cells": [{"cell_type": "markdown", "metadata": {}, "source": ["# Exercise 1.6: RNA secondary structure validator\n", "\n", "<hr>"]}, {"cell_type": "markdown", "metadata": {}, "source": ["## RNA secondary structure validator\n", "\n", "In this problem, we will write a function that takes an RNA sequence and an RNA secondary structure and decides if the secondary structure is possible given the sequence. Remember, single stranded RNA can fold back on itself and form base pairs. An RNA secondary structure is simply the list of base pairs that are present. We will represent the base pairs in dot-parentheses notation. For example, a sequence/secondary structure pair would be\n", "\n", " 0123456789\n", " GCAUCUAUGC\n", " (((....)))\n", "\n", "For convenience of discussion, I have labeled the indices of the bases on the top row. In this case, base `0`, a `G`, pairs with base `9`, a `C`. Base `1` pairs with base `8`, and base `2` pairs with base `7`. Bases `3`, `4`, `5`, and `6` are unpaired. (This structure is aptly called a \"hairpin.\")\n", "\n", "I hope the dot-parentheses notation is clear. An open parenthesis is paired with the parenthesis that closes it. Dots are unpaired.\n", "\n", "So, the goal of our function is to check all base pairs present in a secondary structure and see if they are with `G-C`, `A-U`, or (optionally) `G-U`."]}, {"cell_type": "markdown", "metadata": {}, "source": ["**a)** Write a function to make sure that the number of closed parentheses is equal to the number of open parentheses, a requirement for a valid secondary structure. It should return `True` if the parentheses are valid and `False` otherwise."]}, {"cell_type": "markdown", "metadata": {}, "source": ["**b)** Write a function that converts the dot-parens notation to a tuple of 2-tuples representing the base pairs. We'll call this function `dotparen_to_bp()`. An example input/output of this function would be:\n", "\n", " dotparen_to_bp('(((....)))')\n", " \n", " ((0, 9), (1, 8), (2, 7))\n", " \n", "*Hint*: You should look at [methods that are available for lists](https://docs.python.org/3/tutorial/datastructures.html#more-on-lists). You might find the `append()` and `pop()` methods useful."]}, {"cell_type": "markdown", "metadata": {}, "source": ["**c)** Because of sterics, the minimal length of a hairpin loop is three bases. A hairpin loop is a series of unpaired bases that are closed by a base pair. For example, the secondary structure `(.(....).)` has a single hairpin loop of length 4. So, the structure `((((..))))` is not valid because it has a hairpin loop of only two bases.\n", "\n", "Write a function that verifies that a list of base pairs (as outputted by `dotparen_to_bp()`) satisfies the minimal hairpin length requirement."]}, {"cell_type": "markdown", "metadata": {}, "source": ["**d)** Now write your validator function. The function definition should look like this:\n", "\n", " def rna_ss_validator(seq, sec_struc, wobble=True):\n", " \n", "It should return `True` if the sequence is commensurate with a valid secondary structure and `False` otherwise. The `wobble` keyword argument is `True` if we allow wobble pairs (`G` paired with `U`). Here are some expected results:\n", "\n", "Returns `True`:\n", "\n", " rna_ss_validator('GCAUCUAUGC', '(((....)))')\n", " rna_ss_validator('GCAUCUAUGU', '(((....)))') \n", " rna_ss_validator('GCAUCUAUGU', '(.(....).)') \n", "\n", "Returns `False`:\n", "\n", " rna_ss_validator('GCAUCUACGC', '(((....)))')\n", " rna_ss_validator('GCAUCUAUGU', '(((....)))', wobble=False) \n", " rna_ss_validator('GCAUCUAUGU', '(.(....)).') \n", " rna_ss_validator('GCCCUUGGCA', '(.((..))).')"]}, {"cell_type": "markdown", "metadata": {}, "source": ["<br />"]}], "metadata": {"anaconda-cloud": {}, "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.11.3"}}, "nbformat": 4, "nbformat_minor": 4} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
****************************************************************** | ||
Exercise 1 | ||
****************************************************************** | ||
|
||
.. toctree:: | ||
:maxdepth: 1 | ||
|
||
exercise_1.1.ipynb | ||
exercise_1.2.ipynb | ||
exercise_1.3.ipynb | ||
exercise_1.4.ipynb | ||
exercise_1.5.ipynb | ||
exercise_1.6.ipynb | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
{"cells": [{"cell_type": "markdown", "metadata": {}, "source": ["# Exercise 2.1: Parsing a FASTA file\n", "\n", "<hr>"]}, {"cell_type": "markdown", "metadata": {}, "source": ["There are packages, like [Biopython](http://biopython.org/) and [scikit-bio](http://scikit-bio.org) for processing files you encounter in bioinformatics. In this problem, though, we will work on our file I/O skills. \n", "\n", "**a)** Use command line tools to investigate the [FASTA file](https://en.wikipedia.org/wiki/FASTA_format) located at `~/git/bootcamp/data/salmonella_spi1_region.fna`. This file contains a portion of the _Salmonella_ genome (described in [Exercise 4.1](exercise_2.3.ipynb)).\n", "\n", "You will notice that the first line begins with a `>`, signifying that the line contains information about the sequence. The remainder of the lines are the sequence itself.\n", "\n", "**b)** The format of the _Salmonella_ SPI1 region FASTA file is a common format for such files (though oftentimes FASTA files contain multiple sequences). Use the file I/O skills you have learned to write a function to read in a sequence from a FASTA file containing a single sequence (but possibly having the first line in the file beginning with `>`). Your function should take as input the name of the FASTA file and return two strings. First, it should return the descriptor string (which starts with `>`). Second, it should return a string with no gaps containing the sequence.\n", "\n", "Test your function on the _Salmonella_ sequence."]}, {"cell_type": "markdown", "metadata": {}, "source": ["<br />"]}], "metadata": {"anaconda-cloud": {}, "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.11.3"}}, "nbformat": 4, "nbformat_minor": 4} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
{"cells": [{"cell_type": "markdown", "metadata": {}, "source": ["# Exercise 2.2: Restriction enzyme cut sites\n", "\n", "<hr>"]}, {"cell_type": "markdown", "metadata": {}, "source": ["**[Restriction enzymes](https://en.wikipedia.org/wiki/Restriction_enzyme)** cut DNA at specific locations called **restriction sites**. The sequence at a restriction site is called a **recognition sequence**. Here are the recognition sequences of some commonly used restriction enzymes.\n", "\n", "|Restriction enzyme | Recognition sequence|\n", "|:----|:----|\n", "|[HindIII](https://en.wikipedia.org/wiki/HindIII) | `AAGCTT` |\n", "|[EcoRI](https://en.wikipedia.org/wiki/EcoRI)| `GAATTC` |\n", "|KpnI| `GGTACC` |\n", "\n", "\n", "**a)** [New England Biosystems](https://www.neb.com/products/n3011-lambda-dna#Product%20Information) sells purified DNA of the genome of \u03bb-phage, a bacteriophage that infect _E. coli_. You can download the FASTA file containing the sequence [here](https://www.neb.com/-/media/nebus/page-images/tools-and-resources/interactive-tools/dna-sequences-and-maps/text-documents/lambdafsa.txt). Use the function you wrote in [Exercise 2.1](exercise_2.1.ipynb) to extract the sequence.\n", "\n", "**b)** Write a function with call signature\n", "\n", "```python\n", "restriction_sites(seq, recog_seq)\n", "```\n", "\n", "that takes as arguments a sequence and the recognition sequence of a restriction enzyme sites and returns the indices of the first base of each of the restriction sites in the sequence. Use this function to find the indices of the restriction sites of \u03bb-DNA for HindIII, EcoRI, and KpnI. Compare your results with those given [here](https://www.bioinformatics.nl/molbi/SCLResources/LambdaBE_restrct_alphab.htm), which contain a comprehensive list of locations of restriction sites for a variety of enzymes.\n", "\n", "<!--Compare your results to those reported on the [New England Biosystems datasheet](https://www.neb.com/-/media/nebus/page-images/tools-and-resources/interactive-tools/dna-sequences-and-maps/lambda_sites.pdf).-->"]}, {"cell_type": "markdown", "metadata": {}, "source": ["<br />"]}], "metadata": {"anaconda-cloud": {}, "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.11.3"}}, "nbformat": 4, "nbformat_minor": 4} |
Oops, something went wrong.