Skip to content

Instantly share code, notes, and snippets.

@vfscalfani
Created May 24, 2024 16:15
Show Gist options
  • Save vfscalfani/749dd071fe818d7213fbe4d7ae1e6f4f to your computer and use it in GitHub Desktop.
Save vfscalfani/749dd071fe818d7213fbe4d7ae1e6f4f to your computer and use it in GitHub Desktop.
Supporting Examples for RSC CICAG Newsletter
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Supplementary Python Code for \"Molecule Normalisation...\"\n",
"V.F. Scalfani"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"RDKit version: 2024.03.2\n"
]
}
],
"source": [
"# Import RDKit modules and print version\n",
"from rdkit import Chem\n",
"from rdkit import rdBase\n",
"from rdkit.Chem import Draw\n",
"from rdkit.Chem import rdDepictor\n",
"rdDepictor.SetPreferCoordGen(True)\n",
"\n",
"print('RDKit version: ',rdBase.rdkitVersion)"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<rdkit.Chem.rdchem.Mol at 0x7ebd62552e30>"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# load molfile of alanine from PubChem, CID 5950\n",
"mol = Chem.MolFromMolBlock(\"\"\"5950\n",
" -OEChem-05162410522D\n",
"\n",
" 13 12 0 1 0 0 0 0 0999 V2000\n",
" 5.1350 -0.2500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 4.2690 1.2500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 2.5369 0.2500 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 3.4030 -0.2500 0.0000 C 0 0 1 0 0 0 0 0 0 0 0 0\n",
" 3.4030 -1.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 4.2690 0.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 3.4030 0.3700 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 2.7830 -1.2500 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 3.4030 -1.8700 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 4.0230 -1.2500 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 2.0000 -0.0600 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 2.5369 0.8700 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 5.6720 0.0600 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 1 6 1 0 0 0 0\n",
" 1 13 1 0 0 0 0\n",
" 2 6 2 0 0 0 0\n",
" 4 3 1 6 0 0 0\n",
" 3 11 1 0 0 0 0\n",
" 3 12 1 0 0 0 0\n",
" 4 5 1 0 0 0 0\n",
" 4 6 1 0 0 0 0\n",
" 4 7 1 0 0 0 0\n",
" 5 8 1 0 0 0 0\n",
" 5 9 1 0 0 0 0\n",
" 5 10 1 0 0 0 0\n",
"M END\n",
"> <PUBCHEM_COMPOUND_CID>\n",
"5950\n",
"\n",
"> <PUBCHEM_COMPOUND_CANONICALIZED>\n",
"1\n",
"\n",
"> <PUBCHEM_CACTVS_COMPLEXITY>\n",
"61.8\n",
"\n",
"> <PUBCHEM_CACTVS_HBOND_ACCEPTOR>\n",
"3\n",
"\n",
"> <PUBCHEM_CACTVS_HBOND_DONOR>\n",
"2\n",
"\n",
"> <PUBCHEM_CACTVS_ROTATABLE_BOND>\n",
"1\n",
"\n",
"> <PUBCHEM_CACTVS_SUBSKEYS>\n",
"AAADcYBCMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAQCAAACCjBgAQCCABAAgAIAACQCAAAAAAAAAAAAIGAAAACAAAAAAAAQAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==\n",
"\n",
"> <PUBCHEM_IUPAC_OPENEYE_NAME>\n",
"(2S)-2-aminopropanoic acid\n",
"\n",
"> <PUBCHEM_IUPAC_CAS_NAME>\n",
"(2S)-2-aminopropanoic acid\n",
"\n",
"> <PUBCHEM_IUPAC_NAME_MARKUP>\n",
"(2<I>S</I>)-2-aminopropanoic acid\n",
"\n",
"> <PUBCHEM_IUPAC_NAME>\n",
"(2S)-2-aminopropanoic acid\n",
"\n",
"> <PUBCHEM_IUPAC_SYSTEMATIC_NAME>\n",
"(2S)-2-azanylpropanoic acid\n",
"\n",
"> <PUBCHEM_IUPAC_TRADITIONAL_NAME>\n",
"(2S)-2-aminopropionic acid\n",
"\n",
"> <PUBCHEM_IUPAC_INCHI>\n",
"InChI=1S/C3H7NO2/c1-2(4)3(5)6/h2H,4H2,1H3,(H,5,6)/t2-/m0/s1\n",
"\n",
"> <PUBCHEM_IUPAC_INCHIKEY>\n",
"QNAYBMKLOCPYGJ-REOHCLBHSA-N\n",
"\n",
"> <PUBCHEM_XLOGP3>\n",
"-3\n",
"\n",
"> <PUBCHEM_EXACT_MASS>\n",
"89.047678466\n",
"\n",
"> <PUBCHEM_MOLECULAR_FORMULA>\n",
"C3H7NO2\n",
"\n",
"> <PUBCHEM_MOLECULAR_WEIGHT>\n",
"89.09\n",
"\n",
"> <PUBCHEM_OPENEYE_CAN_SMILES>\n",
"CC(C(=O)O)N\n",
"\n",
"> <PUBCHEM_OPENEYE_ISO_SMILES>\n",
"C[C@@H](C(=O)O)N\n",
"\n",
"> <PUBCHEM_CACTVS_TPSA>\n",
"63.3\n",
"\n",
"> <PUBCHEM_MONOISOTOPIC_WEIGHT>\n",
"89.047678466\n",
"\n",
"> <PUBCHEM_TOTAL_CHARGE>\n",
"0\n",
"\n",
"> <PUBCHEM_HEAVY_ATOM_COUNT>\n",
"6\n",
"\n",
"> <PUBCHEM_ATOM_DEF_STEREO_COUNT>\n",
"1\n",
"\n",
"> <PUBCHEM_ATOM_UDEF_STEREO_COUNT>\n",
"0\n",
"\n",
"> <PUBCHEM_BOND_DEF_STEREO_COUNT>\n",
"0\n",
"\n",
"> <PUBCHEM_BOND_UDEF_STEREO_COUNT>\n",
"0\n",
"\n",
"> <PUBCHEM_ISOTOPIC_ATOM_COUNT>\n",
"0\n",
"\n",
"> <PUBCHEM_COMPONENT_COUNT>\n",
"1\n",
"\n",
"> <PUBCHEM_CACTVS_TAUTO_COUNT>\n",
"-1\n",
"\n",
"> <PUBCHEM_COORDINATE_TYPE>\n",
"1\n",
"5\n",
"255\n",
"\n",
"> <PUBCHEM_BONDANNOTATIONS>\n",
"4 3 6\n",
"\n",
"$$$$\n",
"\"\"\"\n",
")\n",
"mol"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'C[C@H](N)C(=O)O'"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Chem.MolToSmiles(mol,canonical=True) # True is default"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'InChI=1S/C3H7NO2/c1-2(4)3(5)6/h2H,4H2,1H3,(H,5,6)/t2-/m0/s1'"
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Chem.MolToInchi(mol)"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'C(=O)(O)[C@@H](N)C',\n",
" 'C(=O)(O)[C@H](C)N',\n",
" 'C(=O)([C@@H](N)C)O',\n",
" 'C(=O)([C@H](C)N)O',\n",
" 'C(O)(=O)[C@@H](N)C',\n",
" 'C(O)(=O)[C@H](C)N',\n",
" 'C(O)([C@@H](N)C)=O',\n",
" 'C(O)([C@H](C)N)=O',\n",
" 'C([C@@H](N)C)(=O)O',\n",
" 'C([C@@H](N)C)(O)=O',\n",
" 'C([C@H](C)N)(=O)O',\n",
" 'C([C@H](C)N)(O)=O',\n",
" 'C[C@@H](C(=O)O)N',\n",
" 'C[C@@H](C(O)=O)N',\n",
" 'C[C@H](N)C(=O)O',\n",
" 'C[C@H](N)C(O)=O',\n",
" 'N[C@@H](C)C(=O)O',\n",
" 'N[C@@H](C)C(O)=O',\n",
" 'N[C@H](C(=O)O)C',\n",
" 'N[C@H](C(O)=O)C',\n",
" 'O=C(O)[C@@H](N)C',\n",
" 'O=C(O)[C@H](C)N',\n",
" 'O=C([C@@H](N)C)O',\n",
" 'O=C([C@H](C)N)O',\n",
" 'OC(=O)[C@@H](N)C',\n",
" 'OC(=O)[C@H](C)N',\n",
" 'OC([C@@H](N)C)=O',\n",
" 'OC([C@H](C)N)=O',\n",
" '[C@@H](C(=O)O)(C)N',\n",
" '[C@@H](C(O)=O)(C)N',\n",
" '[C@@H](C)(N)C(=O)O',\n",
" '[C@@H](C)(N)C(O)=O',\n",
" '[C@@H](N)(C(=O)O)C',\n",
" '[C@@H](N)(C(O)=O)C',\n",
" '[C@H](C(=O)O)(N)C',\n",
" '[C@H](C(O)=O)(N)C',\n",
" '[C@H](C)(C(=O)O)N',\n",
" '[C@H](C)(C(O)=O)N',\n",
" '[C@H](N)(C)C(=O)O',\n",
" '[C@H](N)(C)C(O)=O'}"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Generate different SMILES for alanine\n",
"random_smiles = Chem.MolToRandomSmilesVect(mol, 1000)\n",
"random_smiles_unique = set(random_smiles)\n",
"random_smiles_unique"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"40"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Get number\n",
"len(set(random_smiles))"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<rdkit.Chem.rdchem.Mol at 0x7ebd625533e0>"
]
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Tautomer Example\n",
"# Guanabenz\n",
"# https://pubs.acs.org/doi/10.1021/acs.joc.6b01258\n",
"\n",
"# azine form\n",
"azine_mol = Chem.MolFromSmiles(r'NC(N)=N/N=C/C1=C(Cl)C=CC=C1Cl')\n",
"azine_mol"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<rdkit.Chem.rdchem.Mol at 0x7ebd62553060>"
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# hydrozone form\n",
"hydrazone_mol = Chem.MolFromSmiles(r'N=C(N)N/N=C/C1=C(Cl)C=CC=C1Cl')\n",
"hydrazone_mol"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"InChI=1S/C8H8Cl2N4/c9-6-2-1-3-7(10)5(6)4-13-14-8(11)12/h1-4H,(H4,11,12,14)/b13-4+\n",
"InChI=1S/C8H8Cl2N4/c9-6-2-1-3-7(10)5(6)4-13-14-8(11)12/h1-4H,(H4,11,12,14)/b13-4+\n"
]
}
],
"source": [
"# The InChI treats this structure in a different way, generating the same InChI from the two different representations\n",
"inchi_from_azine = Chem.MolToInchi(azine_mol)\n",
"inchi_from_hydrazone = Chem.MolToInchi(hydrazone_mol)\n",
"print(inchi_from_azine)\n",
"print(inchi_from_hydrazone)"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"inchi_from_azine == inchi_from_hydrazone"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<rdkit.Chem.rdchem.Mol at 0x7ebd60a24c80>"
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Since the two strings are the same they must generate the same representation\n",
"# RDKit generates the hydrazone form; the InChI itself does not specify this\n",
"Chem.MolFromInchi(inchi_from_azine)"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"('InChI=1S/C8H8Cl2N4/c9-6-2-1-3-7(10)5(6)4-13-14-8(11)12/h1-4H,(H4,11,12,14)/b13-4+', 'AuxInfo=1/1/N:11,10,12,6,7,8,13,2,9,14,1,3,5,4/E:(2,3)(6,7)(9,10)(11,12)/rA:14NCNNNCCCClCCCCCl/rB:s1;s2;d2;s4;d+5;s6;d7;s8;s8;d10;s11;s7d12;s13;/rC:;;;;;;;;;;;;;;')\n",
"('InChI=1S/C8H8Cl2N4/c9-6-2-1-3-7(10)5(6)4-13-14-8(11)12/h1-4H,(H4,11,12,14)/b13-4+', 'AuxInfo=1/1/N:11,10,12,6,7,8,13,2,9,14,1,3,5,4/E:(2,3)(6,7)(9,10)(11,12)/rA:14NCNNNCCCClCCCCCl/rB:d1;s2;s2;s4;d+5;s6;d7;s8;s8;d10;s11;s7d12;s13;/rC:;;;;;;;;;;;;;;')\n"
]
}
],
"source": [
"# If uniting these two representations is not the desired behaviour, there are ways around it. \n",
"# The InChI code generates auxiliary information (AuxInfo). This can be used to distinguish the two forms\n",
"auxinfo_from_azine = Chem.MolToInchiAndAuxInfo(azine_mol)\n",
"auxinfo_from_hydrazone = Chem.MolToInchiAndAuxInfo(hydrazone_mol)\n",
"print(auxinfo_from_azine)\n",
"print(auxinfo_from_hydrazone)"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"False"
]
},
"execution_count": 51,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"auxinfo_from_azine == auxinfo_from_hydrazone"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {},
"outputs": [],
"source": [
"# RDKit does not currently support the generation of mol from InChI and AuxInfo together.\n",
"# It is unlikely that such a facility would be heavily used."
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"InChI=1/C8H8Cl2N4/c9-6-2-1-3-7(10)5(6)4-13-14-8(11)12/h1-4H,(H4,11,12,14)/b13-4+/f/h11-12H2\n",
"InChI=1/C8H8Cl2N4/c9-6-2-1-3-7(10)5(6)4-13-14-8(11)12/h1-4H,(H4,11,12,14)/b13-4+/f/h11,14H,12H2/b11-8?,13-4+\n"
]
}
],
"source": [
"# Alternatively, we can use a non-Standard InChI be adding the FixedH option to the generation step:\n",
"inchi_from_azine_FixedH = Chem.MolToInchi(azine_mol,options='/FixedH')\n",
"inchi_from_hydrazone_FixedH = Chem.MolToInchi(hydrazone_mol,options='/FixedH')\n",
"print(inchi_from_azine_FixedH)\n",
"print(inchi_from_hydrazone_FixedH)"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {},
"outputs": [],
"source": [
"# There are now two distinct InChI. Note that these begin InChI=1 and not InChI=1S as before\n",
"# This means that they are non-standard InChI. "
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<rdkit.Chem.rdchem.Mol at 0x7ebd60a26730>"
]
},
"execution_count": 55,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Chem.MolFromInchi(inchi_from_azine_FixedH)"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<rdkit.Chem.rdchem.Mol at 0x7ebd60a257e0>"
]
},
"execution_count": 56,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Chem.MolFromInchi(inchi_from_hydrazone_FixedH)"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<rdkit.Chem.rdchem.Mol at 0x7ebd60a27840>"
]
},
"execution_count": 58,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# valence example\n",
"from rdkit.Chem.Draw import IPythonConsole\n",
"from rdkit.Chem import Draw\n",
"IPythonConsole.drawOptions.addAtomIndices = True\n",
"IPythonConsole.molSize = 300,300\n",
"\n",
"# SMARTS Query used in PubChem: [SD4;H1;+0]\n",
"# https://pubchem.ncbi.nlm.nih.gov/compound/142608067\n",
"mol = Chem.MolFromSmiles('CN1CCCS1C2=CN=CC=C2')\n",
"mol"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'C9H14N2S'"
]
},
"execution_count": 59,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from rdkit.Chem import rdMolDescriptors\n",
"rdMolDescriptors.CalcMolFormula(mol)"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"5 S 4 1 0 1\n"
]
}
],
"source": [
"for atom in mol.GetAtoms():\n",
" if atom.GetSymbol() == 'S':\n",
" print(atom.GetIdx(), atom.GetSymbol(), atom.GetTotalValence(), atom.GetNumImplicitHs(), atom.GetNumExplicitHs(), atom.GetTotalNumHs())"
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"[11:14:28] WARNING: Accepted unusual valence(s): S(3)\n",
"\n"
]
},
{
"data": {
"text/plain": [
"'InChI=1S/C9H13N2S/c1-11-6-3-7-12(11)9-4-2-5-10-8-9/h2,4-5,8H,3,6-7H2,1H3'"
]
},
"execution_count": 61,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Chem.MolToInchi(mol)"
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<rdkit.Chem.rdchem.Mol at 0x7ebd60a268f0>"
]
},
"execution_count": 62,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Chem.MolFromInchi('InChI=1S/C9H13N2S/c1-11-6-3-7-12(11)9-4-2-5-10-8-9/h2,4-5,8H,3,6-7H2,1H3')"
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'InChI=1S/C9H14N2S/c1-11-6-3-7-12(11)9-4-2-5-10-8-9/h2,4-5,8,12H,3,6-7H2,1H3'"
]
},
"execution_count": 63,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Now compute the InChi, but first add hydrogens to the graph explicitly\n",
"# Then tell InChI not to add any H's\n",
"# Cuation: most of RDKit code assumes hydrogens are not in graph\n",
"molH = Chem.AddHs(mol)\n",
"Chem.MolToInchi(molH,options='/DoNotAddH')"
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<rdkit.Chem.rdchem.Mol at 0x7ebd60a266c0>"
]
},
"execution_count": 64,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Chem.MolFromInchi('InChI=1S/C9H14N2S/c1-11-6-3-7-12(11)9-4-2-5-10-8-9/h2,4-5,8,12H,3,6-7H2,1H3')"
]
},
{
"cell_type": "code",
"execution_count": null,
"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": 4
}
@vfscalfani
Copy link
Author

CC-BY 4.0 license, feel free to reuse and adapt. https://creativecommons.org/licenses/by/4.0/deed.en

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment