Skip to content

Instantly share code, notes, and snippets.

@zhaiyusci
Created July 1, 2021 11:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zhaiyusci/985d01edfda4bea990a7682917b333f4 to your computer and use it in GitHub Desktop.
Save zhaiyusci/985d01edfda4bea990a7682917b333f4 to your computer and use it in GitHub Desktop.
Cartesian to normal mode coordinates
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "a3d9af65",
"metadata": {},
"outputs": [],
"source": [
"using LinearAlgebra, Printf"
]
},
{
"cell_type": "markdown",
"id": "75f46b68",
"metadata": {},
"source": [
"Define the molecule type."
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "75192673",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"numberofatoms (generic function with 1 method)"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"abstract type AbstractMolecule end\n",
"mutable struct ExampleMolecule <: AbstractMolecule\n",
" attr::Dict{Symbol, Any}\n",
"end\n",
"\n",
"Base.getproperty(m::AbstractMolecule, s::Symbol)=getfield(m,:attr)[s]\n",
"Base.setproperty!(m::AbstractMolecule, s::Symbol, x)=getfield(m,:attr)[s]=x\n",
"Base.propertynames(m::AbstractMolecule)=Tuple(keys(getfield(m,:attr)))\n",
"numberofatoms(m::AbstractMolecule)=length(m.elements)"
]
},
{
"cell_type": "markdown",
"id": "2497c39b",
"metadata": {},
"source": [
"Print function."
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "63b7f51b",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"toxyz (generic function with 1 method)"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"const ang=1.8897261254578281\n",
"export toxyz, ang\n",
"function toxyz(m::AbstractMolecule)\n",
" res=\"\"\n",
" natoms = length(m.elements)\n",
" res *= \"$natoms \\n\\n\"\n",
" for i in 1:natoms\n",
" res *= Printf.@sprintf \"%5s %16.8f %16.8f %16.8f\\n\" m.elements[i] m.xyz[1,i]/ang m.xyz[2,i]/ang m.xyz[3,i]/ang\n",
" end\n",
" res\n",
"end"
]
},
{
"cell_type": "markdown",
"id": "ee94dfbf",
"metadata": {},
"source": [
"Deform the molecule along normal mode."
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "4e70a4a7",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"deform (generic function with 1 method)"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"function deform!(m::AbstractMolecule, Q)\n",
" xyz=m.xyz\n",
" for k in keys(Q) # Both Array and Dict can have keys\n",
" xyz+=reshape(m.normalmodes[:,k]*Q[k],3,:)\n",
" end\n",
" m.xyz=xyz\n",
" m\n",
"end\n",
"function deform(m::AbstractMolecule, Q)\n",
" mm=deepcopy(m)\n",
" deform!(mm,Q)\n",
"end"
]
},
{
"cell_type": "markdown",
"id": "3aced1d7",
"metadata": {},
"source": [
"Rotation"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "f7052314",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"rotate (generic function with 1 method)"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"function rotate(origin::AbstractMolecule, r)\n",
" res=typeof(origin)(Dict(:xyz=>origin.xyz, :elements=>origin.elements, :masses=>origin.masses))\n",
" res.xyz=r*res.xyz\n",
" res\n",
"end"
]
},
{
"cell_type": "markdown",
"id": "99dcf7cb",
"metadata": {},
"source": [
"Now we prepare the functions. The Kabsch's algorithm (see Wikipedia.)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "803bdeaa",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Kabsch (generic function with 1 method)"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"function Kabsch(origin,rotated)\n",
" H=rotated*origin'\n",
" U,S,V=LinearAlgebra.svd(H)\n",
" d=sign(det(V*U'))\n",
" R=U*diagm([1.0, 1.0, d])*V'\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "85b6a60d",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Kabsch (generic function with 2 methods)"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"function Kabsch(origin::AbstractMolecule, rotated::AbstractMolecule) where T<:AbstractMolecule\n",
" return Kabsch(origin.xyz, rotated.xyz)\n",
"end"
]
},
{
"cell_type": "markdown",
"id": "6527d06f",
"metadata": {},
"source": [
"RMSD"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "f353d227",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"rmsd (generic function with 1 method)"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"function rmsd(origin::AbstractMolecule, rotated::AbstractMolecule) where T<:AbstractMolecule\n",
" return norm(origin.xyz-rotated.xyz)\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "e52a61de",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"normalmodescomponemts (generic function with 1 method)"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"function normalmodescomponemts(origin, deformed)\n",
" δ=reshape((deformed.xyz-origin.xyz),(3*numberofatoms(origin),))\n",
" mw=[sqrt(origin.masses[i]) for i in 1:numberofatoms(origin) for j in 1:3]\n",
" (mw.*δ)'*origin.massweightednormalmodes\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "36de4c9f",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"findvibrationcoordinates (generic function with 1 method)"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"function findvibrationcoordinates(origin, deformed)\n",
" m0=deepcopy(origin)\n",
" # m1=deepcopy(deformed)\n",
" r=zeros(3,3)\n",
" comp=zeros(numberofatoms(origin)*3)\n",
" for i in 1:50\n",
" r.=Kabsch(m0, deformed) # rot mat\n",
" m1=rotate(deformed, r')\n",
" if rmsd(m0,m1) ≈ 0.0\n",
" break\n",
" end\n",
" comp.=reshape(normalmodescomponemts(origin, m1) |> Matrix, length(comp))\n",
" comp[1:6] .= 0.0\n",
" m0=deform(origin, comp)\n",
" end\n",
" return r, comp\n",
"end"
]
},
{
"cell_type": "markdown",
"id": "87ff4c5e",
"metadata": {},
"source": [
"We take benzene as an example. "
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "cdd60270",
"metadata": {},
"outputs": [],
"source": [
"d=Dict()\n",
"d[:xyz] = [1.370141055623905e-5 2.4393300524131725e-5 -2.2660231413381045 -4.034278655742172 -2.2660368167521896 -4.034303073640448 -1.3700315458456184e-5 -2.4393043784447153e-5 2.266023114234351 4.034278680755381 2.2660368428488176 4.0343030473230455; 2.61658611892533 4.65839790928417 1.3083048564084279 2.329220093828624 -1.308281123733191 -2.329177843236 -2.616586130127392 -4.6583978908172305 -1.3083048512129214 -2.32922008921674 1.3082811271226484 2.3291778513185175; -4.5668038740802804e-6 -8.130438308776296e-6 5.626534352202108e-6 1.0017112750425859e-5 1.0193337950830708e-5 1.8147551312873786e-5 4.56680398458106e-6 8.130438381482553e-6 -5.626534355084896e-6 -1.0017112998973042e-5 -1.01933380481998e-5 -1.814755125906479e-5]\n",
"d[:frequencies] = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 353.0346094198637, 373.0183109129092, 579.3271598516922, 579.3361470629426, 653.4029959261279, 695.5357511189003, 882.3136303334982, 890.7184426825697, 928.6185691759343, 934.6036980046986, 940.3179197212983, 957.3435192206359, 1067.2938704152866, 1090.6044196624807, 1090.6362560860425, 1176.1206885646288, 1198.3690472562384, 1198.3893714619041, 1304.3522925356915, 1319.9835715178845, 1460.7337200108036, 1461.030395086078, 1600.5152369166942, 1600.5220374615758, 3068.45964758506, 3072.1099118560182, 3072.1525771606634, 3084.252406352897, 3084.2963741776657, 3092.658131777928]\n",
"d[:elements] = Any[\"C\", \"H\", \"C\", \"H\", \"C\", \"H\", \"C\", \"H\", \"C\", \"H\", \"C\", \"H\"]\n",
"d[:normalmodes] = [-0.11319364146658135 0.0 0.0 0.0 -2.5850863007902734e-7 -0.10473280069768069 -3.011576410278993e-7 2.9233999216225573e-7 -0.05972387026327071 -0.005639368156170343 1.0912063811458538e-6 4.267943374186421e-7 1.6801874776533675e-7 1.0014522358279775e-7 2.012715699768969e-7 7.635237549001588e-8 9.712714090401178e-8 7.604530755797708e-7 -4.504876794000749e-6 -0.04943115233908801 -0.010862383406644902 0.00237702414009375 0.03931519176468107 -0.013285479296870826 0.05408106778744616 0.11780210191326929 0.00023295223603703622 -0.11139506163026795 -0.141600598813222 0.04899050994698945 -7.10629470101745e-7 0.0010088929329515647 0.00043989244268631187 0.000280416657953161 0.0006787182459555704 1.708254307642705e-6; 0.0 -0.11319364146658135 0.0 2.5850862605763344e-7 1.6425306279526277e-16 5.484189574747748e-7 -4.8106277893369044e-8 3.684633317096965e-7 -0.013897301966170554 0.14717777625220582 6.88148508223768e-8 -4.408440022520199e-8 -1.329156806387778e-7 -7.673255100017039e-7 -4.896056451719539e-7 -1.4211446424515583e-6 -9.421399653532053e-8 -0.11394893685646973 0.11274149745632486 0.017655756050878164 -0.08034805268901256 7.328088496099873e-6 -0.0031316075652744256 -0.009267831865743778 9.971636599414318e-6 -3.565793709242793e-6 -0.07736872080122194 -0.0001656397197812293 0.02034202743149085 0.05879549086441988 0.030128671437787337 0.017660119911206126 -0.040569240302082726 0.04345975118469603 -0.017874336394970648 0.03431447819174405; 0.0 0.0 -0.11319364146658135 0.14811454601848575 -7.754873358071593e-7 -3.6558640877822526e-7 -0.09084712098510173 0.10672898763976468 1.3798775785438016e-6 -1.828071542175284e-8 0.11009905144250104 0.030361254789249777 0.07399185381154387 0.012453738808902309 0.08991572158175357 0.0142442302059204 0.044464658796659 -2.74384246694781e-7 8.179159306408159e-8 6.659693021930428e-8 1.4146728748646188e-8 -8.733780835368839e-9 -1.1604781645613452e-7 1.0465726933522798e-7 -1.7779136208677715e-7 -4.116386005587309e-7 4.000587996715028e-8 3.4740784717952745e-7 4.792260230307363e-7 -2.194337288187906e-7 -7.505282819456539e-8 -2.5961554399106465e-9 1.0048194653883641e-7 -9.65185389676017e-8 -1.670488369089418e-8 -5.370913176183876e-8; -0.1131936414665813 0.0 0.0 0.0 -4.602318223425772e-7 -0.18645939312860596 -6.952697847861604e-7 7.516085205556293e-7 0.08615856990067376 0.008138015350809092 -4.0069133060237715e-7 -7.872473454764005e-7 -1.7224231988730721e-6 -1.2270429938217193e-7 -2.2232821198985097e-6 -7.26405262030151e-8 -1.3688052063535373e-6 -8.356985901177083e-6 2.246207494318726e-5 -0.45031970848702885 -0.098996347426387 -0.4066221446573035 0.5266189984437923 -0.177973179479002 -0.36146307846690573 0.008218708681702398 -0.000677925741382254 0.3245097200465926 0.11261691266528605 -0.03895239299836196 -3.629377312924938e-6 -0.0017841168659206506 -0.0007743231226340477 -0.00034380990494800037 -0.0008380346048459789 3.9453745429596656e-7; 0.0 -0.1131936414665813 0.0 4.602318151600923e-7 3.31771375987615e-16 9.763774604095047e-7 1.6526840738457277e-7 7.099602052430992e-8 -0.013366235228354445 0.14154400952538349 -2.2153630661894802e-7 -5.881739084584726e-7 -1.0947429679629676e-6 -9.902160026044835e-7 -6.268055741717497e-7 -1.3195851387308185e-6 -1.8928758182093097e-7 -0.10395881466444937 0.11843012046127273 0.017918559580124824 -0.08154525476306901 6.720643947970922e-6 -0.0026524255933780367 -0.007850969764094084 1.2973467945164223e-5 -4.237658709607271e-6 -0.08073518888963167 -0.00017706087010321917 0.01802835315423673 0.052112587878530396 -0.3931919733429744 -0.22136696821263308 0.5084189020846676 -0.5102693531927635 0.2098277635924631 -0.3889505929771131; 0.0 0.0 -0.1131936414665813 0.26369340054072865 -1.3806385537653817e-6 -6.508660083435814e-7 -0.20045811488183682 0.23257671017705722 2.918168239762718e-6 1.2879691186976179e-7 0.14553664563161667 -0.39681503369382676 -0.4965084938721388 -0.0754834080537639 -0.47677982439082484 -0.06517907447699145 -0.3913879191862286 3.100668030694579e-6 -2.1103684546506927e-6 9.76621838472741e-7 1.0258529101365689e-6 1.405873224727441e-6 -1.786337141630278e-6 3.924191029051166e-7 1.8298906229700635e-6 -2.9279397955945507e-9 4.744832230612272e-7 -1.7825146140985647e-6 -4.4635299059538736e-7 -2.1690494975324538e-7 -1.906719286836328e-8 1.1193335606217567e-6 6.221960764349815e-9 3.404728090007704e-8 -7.918624489260824e-7 6.366592764483426e-7; -0.1131936414665813 0.0 0.0 0.0 3.184957636873083e-7 -0.05236687253991648 5.778473590922612e-7 3.740705964521689e-7 -0.10391155253876369 0.08056984941924131 6.877047464409843e-7 2.5038973681782164e-7 1.0867652338901901e-7 4.672684026927393e-7 -4.836716935364846e-7 -1.5099326207314717e-6 6.126019150117084e-8 -0.09866455501509283 -0.09763058574322106 0.035594419468420756 0.06674732444908729 -0.0011892889085848826 -0.009982534549795306 -0.020119257360641532 0.02697326891682784 -0.058898546534649064 0.08166151086076093 0.03034489985749841 0.06709955089088561 -0.06338063376199321 0.026115133070029672 0.03804093360947451 -0.004820281294048778 -0.03245654614649337 -0.024529972364342966 -0.029693902884359507; 0.0 -0.1131936414665813 0.0 -3.184957587316514e-7 -2.0498372640441193e-16 -0.09070098947640812 1.444101035079875e-7 -1.0180658701232758e-7 0.08882713740399781 0.016449934062242492 -1.3161517228818494e-6 3.7704549626440454e-7 3.9336333679540894e-7 -5.772497746263825e-7 9.727335925241717e-8 5.557501275655649e-7 -1.940117159913422e-7 0.056964363350183296 0.05638551054126304 -0.0599344165600582 0.004589519481853121 -0.0020427299016099747 -0.03020801415641376 -0.020012484331056415 0.04679632360794146 -0.10205780422554976 0.06438508780275495 -0.0815518550342453 -0.00595450065867838 -0.13332868233472864 -0.015079874702980759 -0.022105662426538438 0.0015215235708028372 0.01822735195955281 0.014831913905680453 0.017143929924544873; 0.0 0.0 -0.1131936414665813 0.07405794078748008 0.12827057048326912 -3.41096759224231e-7 0.1368867489311553 0.02668939480968958 -1.298279607692968e-6 -5.246074280423685e-7 -0.10991901319719168 0.033105340880272095 0.052745897189405776 -0.050446116112909015 -0.033631348736109117 -0.08471463557531397 -0.04816200502757877 1.699730252747179e-6 -1.1048253866633843e-7 7.80821565993777e-8 -2.4406806297887924e-7 1.1266065131881315e-8 5.7579187369939495e-8 1.3966995398041863e-7 -3.4608200515694277e-7 3.817078201364584e-7 -4.1776587120511953e-7 1.0051192557165777e-7 -2.26638201403509e-7 4.917651116222457e-7 -9.630622864951468e-8 -1.2470646018979746e-7 -2.3530362873031716e-8 1.1574850762996008e-7 2.3564082453703406e-8 6.601328786666157e-8; -0.1131936414665813 0.0 0.0 0.0 5.67028969464872e-7 -0.09323054269306928 5.022850480553727e-7 3.249373452290935e-7 -0.12994118495504023 0.011919894080727165 1.6237407540319957e-6 -8.553517064980387e-7 -1.676021427822822e-6 1.7138277278466676e-6 -1.0873841091652628e-7 -2.228113838431294e-7 1.1415452282904533e-6 -0.08996131548731028 -0.1024564057626261 -0.10204598261265284 0.2191015286317826 0.2032819128291432 -0.20399251979955382 -0.1890595397325257 -0.18070345113305808 -0.004054316948480603 -0.10583356201851518 0.1414955402534476 0.03554017620939495 0.06761108940233716 -0.34079923214958335 -0.4773450039887654 0.054544463779498696 0.3786967340092323 0.29099502076349293 0.33648466300950614; 0.0 -0.1131936414665813 0.0 -5.670289606423044e-7 -3.6455979052790635e-16 -0.16147807991197044 8.750504324265035e-7 8.344283123251914e-8 0.03346811023393056 -0.09774319639324597 -3.485911747479954e-7 -1.66425512004727e-7 -1.0017819818706034e-6 -1.7203405054144674e-7 4.6685392334780853e-7 2.0591931232507457e-6 1.3153673478713061e-6 0.0520684652131118 0.059428412663518525 -0.30010143403933054 0.2668106857074863 0.352067555880205 -0.36428515434553166 -0.3147527116113902 -0.3129111060135203 -0.007064675217706253 -0.26368483969196777 0.10506330915922535 -0.046754357295928875 0.0962057795110263 0.19677892174349676 0.2758545983374711 -0.029252926422028012 -0.21804865032077117 -0.16884685983463926 -0.19431167282578404; 0.0 0.0 -0.1131936414665813 0.1318478968757406 0.22836449249805496 -6.072662669720925e-7 0.3136780754526969 0.04869219197606756 -4.0273394957130317e-7 -3.035633279876897e-7 -0.1467423440373953 -0.3800586257765841 -0.3511101792203147 0.3295753600103868 0.17266796950336283 0.45637839602376423 0.41611564563008785 -6.523193476286134e-6 2.654677779215382e-6 -2.522280109171633e-7 -8.432185817338608e-7 -1.3339726463866885e-6 1.396472867554673e-6 9.393805500078302e-7 1.673587520991206e-6 2.3928532746255616e-8 1.4159026296834645e-6 -1.3612869917825508e-6 -1.3869068334167257e-7 -7.573576770482476e-7 -1.721277804332045e-8 4.4976032763069294e-7 -9.867278733564006e-7 7.699456936605423e-8 -7.800915901767153e-7 -7.829380583727692e-7; -0.1131936414665813 0.0 0.0 0.0 5.770043781748336e-7 0.052365922602737126 -2.581957874765084e-7 -7.461799943734943e-7 0.08699425654720745 0.09859609796340268 -8.132423854118865e-7 -4.1176327728954927e-7 3.61550867567141e-7 5.83775212598147e-7 4.355917904143154e-7 1.3794264059905623e-6 1.168694549502384e-7 0.09866410694516668 -0.09762547244816727 0.06029236483745989 -0.04567499577390394 -0.0011833344110602747 -0.004271739734956238 -0.022053914552050486 -0.02698885846921434 -0.058912951372346166 -0.08178709242968729 0.02999260251564767 -0.09192190842142636 -0.008364707602933655 -0.02605619257796369 -0.02228250212107207 -0.031138325079906357 0.005746242165298003 -0.0403126115934332 -0.029762969288151263; 0.0 -0.1131936414665813 0.0 -5.770043691970596e-7 -3.7096471519377383e-16 -0.09070153685481769 -1.841876146970085e-7 -2.921509721559365e-7 0.09034008225477884 0.0004682024966355912 -9.562591582395372e-7 -2.1258128445329187e-7 3.0567184369472194e-7 4.5014383226466144e-7 3.5193477084594535e-7 7.500637607453293e-7 1.7996973846070393e-9 0.0569705235788811 -0.05639091029964543 0.05249327529787015 0.029290299980278885 0.002037702061545601 -0.011878902328876534 0.034238786036776055 0.04678864023390263 0.10206359291797999 0.06402079585473366 0.08182561415474679 0.07771062331717367 0.10849903885021371 -0.015045039737860998 -0.013886946822281334 -0.017224338739685117 0.0024822855031716314 -0.023388403076668906 -0.01718520413189444; 0.0 0.0 -0.1131936414665813 -0.07405659737501105 0.12827134449904795 2.4489631988931964e-8 -0.04740342855818078 -0.13220907112370597 1.0247286141013229e-6 -8.907995703377158e-8 0.10963285288819612 0.03491550078390374 -0.022432085291055535 -0.07764968684886842 -0.05617312709012418 0.06894172315788771 0.0343042789805278 -1.2754177862850239e-6 -1.5747586127276224e-7 -4.909770798494029e-8 1.6028049846691808e-7 -1.7651231517262829e-9 1.1896174366900144e-7 3.8510940156372354e-8 1.6290703638973388e-7 2.806905347969177e-8 1.73859493682838e-7 -1.0203793187952612e-7 1.6960766524276763e-7 -8.493349894397697e-8 1.6983875875123065e-7 1.3160078508555412e-7 1.6884184956076117e-7 -3.2226756427533676e-8 1.8730659165765123e-7 1.193511688210736e-7; -0.1131936414665813 0.0 0.0 0.0 1.0272608061450222e-6 0.09322885154749115 -2.548169715253853e-8 -1.2784838421969807e-7 0.12541249758556436 0.03603368139366589 -1.9137920066422913e-6 -1.512999488591313e-6 1.420697892680551e-6 2.5415964379933507e-6 5.102051830191594e-7 9.406324839890511e-7 4.567841039563027e-9 0.0899659612868977 -0.10248591480607025 -0.0007734776486042863 -0.24167352915156343 0.20328750313013116 0.047491659859130286 -0.2740155054788111 0.18070295009214812 -0.004052367565477224 0.10523310674695692 0.141928357578961 0.013842444856597347 0.07510900232079377 0.3401094403085067 0.2840519689263341 0.386738311412776 -0.06365666650474819 0.4738309864029882 0.3373719343066421; 0.0 -0.1131936414665813 0.0 -1.02726079016174e-6 -6.600614916064378e-16 -0.1614790572739929 7.794964701906947e-9 1.5169206466226335e-7 0.014576614877356196 0.10227570369082066 -2.566983100600286e-7 -6.81040385413177e-7 -2.2027109006556219e-7 1.3147074249435313e-6 6.3969676963496e-7 6.344813551438376e-7 3.616998970810532e-7 0.05205763392028548 -0.0593652314413288 0.16055905629578884 0.3680242046934365 -0.35210151271456325 -0.09869585469947847 0.47119264239875336 -0.3129542060523199 0.007042586883997197 -0.26327079138310444 -0.10617365542599659 -0.09621893317290094 -0.04673966835970543 0.19636852520833992 0.16579755639400412 0.22194027000547442 -0.03573581851287059 0.2737262267668205 0.19481673054774706; 0.0 0.0 -0.1131936414665813 -0.13184550523752922 0.22836587452898977 4.3599743382852825e-8 -0.09698155040316664 -0.2956680144758085 4.672075583246405e-7 -1.473828866491105e-7 0.14865473653101266 -0.39455139867589056 0.14837221182715993 0.5271259232767744 0.3027868737019066 -0.3729990892506016 -0.3234353360243465 1.6359848210477803e-6 4.4114720922507844e-6 -1.8649362769035449e-6 6.455022682324615e-7 -7.977605469395958e-8 -3.9942608616143523e-7 3.0991107819532236e-8 -4.4884883499138314e-7 1.0057966714397546e-9 5.372022502007341e-7 -9.739460083279755e-7 3.3912085191244697e-7 -5.832348727287377e-7 5.4382374401874163e-8 -5.396720326195302e-7 -8.390660054457484e-7 4.3686375796425874e-8 -7.400121801786312e-7 -1.4214168553209212e-6; -0.1131936414665813 0.0 0.0 0.0 2.58508636334965e-7 0.10473280114606007 -3.012007819088655e-7 2.924942773787555e-7 0.05972386782894491 0.005639371052692858 -1.0912250972284373e-6 4.2642426655984663e-7 -1.6836253559994228e-7 -1.0033230047523513e-7 2.010736703203709e-7 7.635465832049544e-8 -9.700460539302532e-8 7.607516893814172e-7 4.507792401696281e-6 -0.049431164051157654 -0.010862384251999127 0.0023770577345315273 -0.03931514867931757 0.01328549643464811 -0.05408112911398111 0.11780205635309202 0.0002329578446342148 -0.11139507878565322 0.14160060857910428 -0.04899050251576735 -7.090305469817553e-7 -0.0010088795760415537 -0.0004398873715351145 0.00028042531363322003 0.0006787373283808168 -1.710309327513389e-6; 0.0 -0.1131936414665813 0.0 -2.5850863231264364e-7 -1.6646770738389372e-16 -5.483751245510268e-7 -4.8293114285699506e-8 3.683966713177455e-7 0.013897301670197171 -0.14717777554049974 -6.869807645787059e-8 -4.491203500658083e-8 1.3279075209528632e-7 7.677978409974788e-7 -4.89597911365438e-7 -1.4209011267890646e-6 9.03180233651597e-8 -0.11394893577073766 -0.11274146033950877 0.01765575517916542 -0.08034811144996908 7.330287863203206e-6 0.0031315885475147933 0.009267787210036077 -9.974240614367182e-6 -3.566684571829401e-6 -0.07736870689735467 -0.00016564455833698678 -0.020342031867291808 -0.0587955102698498 0.030128800265887073 -0.017659647879696573 0.04056835934800401 0.04346048334812368 -0.017874689140495288 -0.034314539306820664; 0.0 0.0 -0.1131936414665813 -0.14811454665258997 7.754253466815717e-7 3.655864104327744e-7 -0.09084710650730751 0.10672896793373075 -1.3797808368460466e-6 1.825350771996454e-8 -0.11009877787717054 0.030362177620156312 -0.07399155259110764 -0.012453622313073443 0.08991596520351447 0.014244414440248232 -0.04446476301262415 -2.729326305469657e-7 -8.182645836291225e-8 6.702446884351023e-8 1.4191035684650624e-8 -8.889007784702491e-9 1.1600275416966943e-7 -1.045894006688485e-7 1.777583869575284e-7 -4.116545416809298e-7 4.0030577804447986e-8 3.474164652493871e-7 -4.792397431100641e-7 2.194174931820376e-7 -7.505588863631911e-8 2.577668160391153e-9 -1.0048144179881463e-7 -9.651939332121835e-8 -1.670889323738717e-8 5.371693580070653e-8; -0.1131936414665813 0.0 0.0 0.0 4.6023182643662314e-7 0.18645939238943884 -6.947197571842367e-7 7.52203348548486e-7 -0.08615858504808392 -0.008138023692743919 3.9981353217697004e-7 -7.862646266516126e-7 1.7196026978620298e-6 1.215075126334609e-7 -2.2243881344150027e-6 -6.989805237029107e-8 1.3730275898055875e-6 -8.355501800254397e-6 -2.2407675123629338e-5 -0.450319851193311 -0.09899638374885096 -0.406621987343499 -0.5266191034946714 0.17797315961319354 0.36146297092637564 0.008218956217823604 -0.0006779119940812728 0.3245096719262895 -0.11261688754634709 0.03895235141325844 -3.6324289269835525e-6 0.0017840998977070425 0.0007743180096872523 -0.00034382653355818574 -0.0008380672307651705 -3.895760229725194e-7; 0.0 -0.1131936414665813 0.0 -4.602318192757048e-7 -2.9598839906833663e-16 -9.763671840381064e-7 1.6509086897329136e-7 7.093424772156398e-8 0.01336623473299278 -0.1415440093437234 2.21638223115177e-7 -5.889857055369429e-7 1.0946224086693496e-6 9.906631518969994e-7 -6.267985663634016e-7 -1.319333583273957e-6 1.8573650531669934e-7 -0.10395881450113645 -0.11843008260617889 0.0179185583802768 -0.08154531592561688 6.7238424341011665e-6 0.002652407938650902 0.007850923612866637 -1.2975689411620936e-5 -4.238345771501304e-6 -0.08073517665422333 -0.0001770650653100918 -0.01802835813218353 -0.052112609887043505 -0.39319394691907344 0.22136121304136236 -0.5084082427855574 -0.5102783751335102 0.20983208099591685 0.3889516405878941; 0.0 0.0 -0.1131936414665813 -0.26369339949538856 1.3806240207691653e-6 6.508660056341151e-7 -0.20045826168105957 0.23257684251381036 -2.9216344500602998e-6 -1.270941959564682e-7 -0.14554013993470444 -0.3968133083990744 0.4965065514845882 0.0754825964254641 -0.4767813271275689 -0.06518066382806142 0.39138874123694994 3.0869844434786023e-6 2.1106197811014667e-6 9.754932788338734e-7 1.0255678985423946e-6 1.4075290059410476e-6 1.7874653732950858e-6 -3.927899612798816e-7 -1.8287673510865774e-6 -2.7846446611049467e-9 4.74445543942532e-7 -1.7829962835894459e-6 4.464824229746699e-7 2.1691345600983177e-7 -1.905604879597704e-8 -1.1191294916213998e-6 -6.1234452391415365e-9 3.416008474957222e-8 -7.915943155714715e-7 -6.366376923964675e-7; -0.1131936414665813 0.0 0.0 0.0 -3.1849576385008373e-7 0.0523668723319585 5.776541548657457e-7 3.741926822441784e-7 0.10391155464451082 -0.08056985084959317 -6.875972557009669e-7 2.494330961802324e-7 -1.0828950646931216e-7 -4.6710292200705637e-7 -4.83777370254952e-7 -1.51015448736188e-6 -6.495490694318907e-8 -0.0986645560814999 0.09763055203045018 0.03559441623792648 0.06674735253645918 -0.001189279060783098 0.009982526470814379 0.020119290334078097 -0.026973235947675405 -0.05889855169821729 0.08166150274480762 0.030344911214048576 -0.06709955136725539 0.06338065580287112 0.02611562985349057 -0.038041541310604624 0.004820066827054274 -0.03245612218808738 -0.024529446675594736 0.029693620134243096; 0.0 -0.1131936414665813 0.0 3.184957588948344e-7 2.0401031737507116e-16 0.09070098839153955 1.4432714105668125e-7 -1.0196487895774583e-7 -0.08882713943189396 -0.01644993102268909 1.3160550993902188e-6 3.77612682674987e-7 -3.936304711658411e-7 5.770388305373862e-7 9.727465376453133e-8 5.556866353457315e-7 1.9611680117355223e-7 0.05696436481244055 -0.05638551535251051 -0.059934411375147184 0.004589482719060488 -0.0020427188962666566 0.03020804666382137 0.02001251235552471 -0.046796261512733264 -0.10205782723991301 0.06438504684524474 -0.08155182724357099 0.005954493119924857 0.13332871310019284 -0.015080151016679833 0.02210601568704755 -0.0015213867357077584 0.018227116279511332 0.014831592995616335 -0.017143770331487042; 0.0 0.0 -0.1131936414665813 -0.0740579404933831 -0.12827056894903324 3.410967566102036e-7 0.13688678613871735 0.026689400317904316 1.2985225190383913e-6 5.242476439258482e-7 0.10991930088050159 0.033104395455829556 -0.052746095129246585 0.05044633489681418 -0.03363118254408225 -0.0847145331221155 0.048161744360042426 1.6982999448464721e-6 1.102903661813046e-7 7.857241931441574e-8 -2.438021877826465e-7 1.1031056568237503e-8 -5.7652371371142516e-8 -1.3966636277684948e-7 3.4622250292137974e-7 3.817112950781519e-7 -4.17692393451912e-7 1.003761693498906e-7 2.2665059489825186e-7 -4.917305301956291e-7 -9.630617353511651e-8 1.246987431742887e-7 2.3528830245862523e-8 1.1574221209871747e-7 2.3554655778819102e-8 -6.600996765190907e-8; -0.1131936414665813 0.0 0.0 0.0 -5.670289835337331e-7 0.09323054250847172 5.02521425566189e-7 3.249005206466602e-7 0.129941183307854 -0.011919907509224312 -1.6236893853854315e-6 -8.561769800079351e-7 1.6749739132218676e-6 -1.71333886121016e-6 -1.081632232052381e-7 -2.2277021249281455e-7 -1.1445361303724156e-6 -0.08996131806844401 0.10245632170938734 -0.10204592360123489 0.21910147151060336 0.20328182560476887 0.2039926092359478 0.1890595298422964 0.18070350976076113 -0.004054227946958705 -0.10583358097388401 0.14149561998298588 -0.035540177758619625 -0.0676111355700798 -0.34080510373150713 0.4773519694418947 -0.054541602715450804 0.3786913399867735 0.29098844293088394 -0.33648106247257836; 0.0 -0.1131936414665813 0.0 5.670289747115729e-7 3.635863904272734e-16 0.16147808091316182 8.756317005379679e-7 8.289931020488539e-8 -0.033468114619566426 0.09774317628193845 3.4819767432759506e-7 -1.6632554370780557e-7 9.990426386297285e-7 1.7216778083023608e-7 4.6804276491487914e-7 2.059375758548953e-6 -1.3121286952358943e-6 0.05206845902975046 -0.05942850302350536 -0.30010132642243575 0.2668105007074916 0.3520674064831736 0.36428536077195584 0.3147526560713482 0.31291122282989664 -0.007064529083623338 -0.2636849021273775 0.105063443518592 0.046754348188928124 -0.09620587257170886 0.1967822901572927 -0.275858619875196 0.029251259041685882 -0.21804555078304122 -0.16884303584079857 0.19430959673887768; 0.0 0.0 -0.1131936414665813 -0.13184789661468022 -0.22836449391395336 6.07266268081453e-7 0.3136778861025645 0.048692156067998656 3.9970761705181905e-7 3.04693132257142e-7 0.14673894952901598 -0.38006020289345366 0.35111154384607124 -0.3295769237766823 0.17266672785511342 0.4563780579312128 -0.41611404449525136 -6.509652184873186e-6 -2.6532257946752543e-6 -2.5723732785768384e-7 -8.450068006727576e-7 -1.3330197000917022e-6 -1.3958391306012554e-6 -9.395013969641181e-7 -1.6758223266290005e-6 2.3868646929083897e-8 1.4152842135643497e-6 -1.3599555336645266e-6 1.3849910808260347e-7 7.573102812429508e-7 -1.719565187582903e-8 -4.4967002294571075e-7 9.867865050457348e-7 7.694290331446566e-8 -7.802658517799742e-7 7.829742545623626e-7; -0.1131936414665813 0.0 0.0 0.0 -5.770043836861035e-7 -0.05236592273840526 -2.582986894745286e-7 -7.463327607721872e-7 -0.08699425433334403 -0.09859609815327945 8.132169753577522e-7 -4.113505837674264e-7 -3.611956479582998e-7 -5.83792670997208e-7 4.3565495132905846e-7 1.3793551354551767e-6 -1.1364557418519826e-7 0.09866410661848371 0.09762549647495695 0.060292375381612084 -0.04567496200742937 -0.0011833415582742166 0.0042717020123580465 0.02205388172118053 0.026988885591370138 -0.05891294567672834 -0.08178710086970893 0.02999260037600158 0.09192189563712576 0.008364685759443472 -0.026055801849113165 0.022281889789358078 0.03113797503406301 0.005746145043674872 -0.04031323522467921 0.029763309116265055; 0.0 -0.1131936414665813 0.0 5.770043747087368e-7 3.699913095984752e-16 0.09070153789937453 -1.8425275809656202e-7 -2.922761036179091e-7 -0.09034008043932805 -0.00046820388020841244 9.562605720851416e-7 -2.1180053808652875e-7 -3.052463480430997e-7 -4.502860621103921e-7 3.5191288718685856e-7 7.497038920166064e-7 -6.592458278443432e-11 0.05697052194869926 0.056390896459497325 0.05249328138657169 0.02929033956089603 0.0020376984064102723 0.011878886512673006 -0.03423878382003357 -0.046788698376687816 0.10206356763714139 0.06402083610145906 0.08182559541581742 -0.07771060670937356 -0.10849903654830434 -0.01504482644772992 0.013886581973044277 0.017224144639085195 0.002482209784535831 -0.023388768556691072 0.017185399051387946; 0.0 0.0 -0.1131936414665813 0.07405659756687477 -0.1282713459762744 -2.4489630633844198e-8 -0.04740342318196559 -0.13220903990736227 -1.0243057968996643e-6 8.908933077335535e-8 -0.10963254339430775 0.034916420854831404 0.02243196590361261 0.07764938216335612 -0.05617340944564381 0.06894209262931669 -0.0343040162608134 -1.27415205098913e-6 1.5755966002842007e-7 -4.9399924547130657e-8 1.6037646174128563e-7 -1.9757700718095207e-9 -1.1876172527128936e-7 -3.865210270421792e-8 -1.6293939462578667e-7 2.813612388533268e-8 1.7382117874653417e-7 -1.0206245255015477e-7 -1.6959321022519297e-7 8.49143386177727e-8 1.698404938500022e-7 -1.3160769321887786e-7 -1.68840167253894e-7 -3.223235269127859e-8 1.8730136229976603e-7 -1.1934552727551615e-7; -0.1131936414665813 0.0 0.0 0.0 -1.0272608030987008e-6 -0.09322885187100609 -2.5704003836416945e-8 -1.2767179353528766e-7 -0.12541250323873052 -0.03603367481984645 1.913863964434266e-6 -1.5117167125348114e-6 -1.4215741375120062e-6 -2.540423501670176e-6 5.091754264819334e-7 9.405518165083321e-7 -1.652183735057918e-9 0.08996595880301292 0.10248602507316645 -0.0007735063534576496 -0.241673604559492 0.20328765864782525 -0.047491611903131156 0.27401532948075424 -0.18070288647168806 -0.004052463321228196 0.10523311605198118 0.14192840670545673 -0.013842426814468296 -0.07510900540049839 0.340104904887486 -0.284044549727628 -0.38673450618755634 -0.06365548482937607 0.4738389038979542 -0.33737619495416826; 0.0 -0.1131936414665813 0.0 1.0272607871158265e-6 6.590880805166292e-16 0.16147905622059924 7.986166974237762e-9 1.513147108825087e-7 -0.014576603942703147 -0.10227571195281408 2.567331266559442e-7 -6.819276304297585e-7 2.227329152546614e-7 -1.316707087491925e-6 6.411763320427717e-7 6.344569345275049e-7 -3.607074117218872e-7 0.05205764023147566 0.05936506408162268 0.16055912567275032 0.36802443004306873 -0.35210178516835694 0.09869569362967971 -0.47119236907653833 0.3129540754021472 0.007042743723360511 -0.2632707674116471 -0.10617373984524163 0.0962188920905851 0.046739620758475736 0.19636593179165412 -0.16579326209832695 -0.22193809070439438 -0.03573509651319199 0.27373082099517426 -0.19481919550508947; 0.0 0.0 -0.1131936414665813 0.1318455056950484 -0.2283658730392661 -4.359974634633153e-8 -0.09698163352206714 -0.2956682144530896 -4.69793618032389e-7 1.4904660030092786e-7 -0.14865821550166192 -0.3945496523267715 -0.14837144228389174 -0.5271239121623343 0.30278889452913244 -0.3730019247689357 0.32343412928549886 1.6235445038658487e-6 -4.411469880677774e-6 -1.8611853700030385e-6 6.448694030938542e-7 -7.774813726636115e-8 3.966904713168369e-7 -2.9669464136496803e-8 4.4906539916463194e-7 5.939718661997159e-10 5.375859740422538e-7 -9.742064400001692e-7 -3.3921502739531256e-7 5.83283461051429e-7 5.4368279622252254e-8 5.397719227584626e-7 8.389010661360923e-7 4.3821602694649363e-8 -7.397489706573001e-7 1.4211594479478532e-6]\n",
"d[:masses] = [12.0, 1.00782503223, 12.0, 1.00782503223, 12.0, 1.00782503223, 12.0, 1.00782503223, 12.0, 1.00782503223, 12.0, 1.00782503223]\n",
"mw=[sqrt(d[:masses][i]) for i in 1:12 for j in 1:3]\n",
"d[:massweightednormalmodes] = d[:normalmodes].*mw\n",
"c6h6=ExampleMolecule(d);"
]
},
{
"cell_type": "markdown",
"id": "4ce226b3",
"metadata": {},
"source": [
"Randomly generated rotation matrix."
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "bae1196e",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"3×3 Matrix{Float64}:\n",
" 0.946584 0.224051 0.231904\n",
" 0.322222 -0.629795 -0.706775\n",
" -0.012302 0.743746 -0.668349"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"r=[0.946584142561884 0.22405148994369173 0.231903839779325; 0.32222216225304745 -0.6297953484751353 -0.7067748560836424; -0.012301999973736447 0.743746427818712 -0.6683486454714722]"
]
},
{
"cell_type": "markdown",
"id": "5b9c673f",
"metadata": {},
"source": [
"Print some basic info of the molecule."
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "44ecf5d6",
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"12 \n",
"\n",
" C 0.00000725 1.38463774 -0.00000242\n",
" H 0.00001291 2.46511801 -0.00000430\n",
" C -1.19912781 0.69232511 0.00000298\n",
" H -2.13484833 1.23257019 0.00000530\n",
" C -1.19913504 -0.69231256 0.00000539\n",
" H -2.13486125 -1.23254783 0.00000960\n",
" C -0.00000725 -1.38463775 0.00000242\n",
" H -0.00001291 -2.46511800 0.00000430\n",
" C 1.19912779 -0.69232511 -0.00000298\n",
" H 2.13484834 -1.23257019 -0.00000530\n",
" C 1.19913506 0.69231256 -0.00000539\n",
" H 2.13486123 1.23254784 -0.00000960\n",
"\n"
]
}
],
"source": [
"toxyz(c6h6) |> println;"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "51502b29",
"metadata": {
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"c6h6.frequencies = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 353.0346094198637, 373.0183109129092, 579.3271598516922, 579.3361470629426, 653.4029959261279, 695.5357511189003, 882.3136303334982, 890.7184426825697, 928.6185691759343, 934.6036980046986, 940.3179197212983, 957.3435192206359, 1067.2938704152866, 1090.6044196624807, 1090.6362560860425, 1176.1206885646288, 1198.3690472562384, 1198.3893714619041, 1304.3522925356915, 1319.9835715178845, 1460.7337200108036, 1461.030395086078, 1600.5152369166942, 1600.5220374615758, 3068.45964758506, 3072.1099118560182, 3072.1525771606634, 3084.252406352897, 3084.2963741776657, 3092.658131777928]\n"
]
}
],
"source": [
"@show c6h6.frequencies;"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "664e81d2",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"ExampleMolecule(Dict{Symbol, Any}(:xyz => [0.5943066687034527 0.8741504920141104 … 2.482473287311426 3.5819921174647953; -1.688000614375677 -2.430660318793785 … -0.06461450830863756 -0.07974604907336512; 2.0001106815024965 2.89411390818984 … 0.9905554102179726 1.4592439443449428], :elements => Any[\"C\", \"H\", \"C\", \"H\", \"C\", \"H\", \"C\", \"H\", \"C\", \"H\", \"C\", \"H\"], :masses => [12.0, 1.00782503223, 12.0, 1.00782503223, 12.0, 1.00782503223, 12.0, 1.00782503223, 12.0, 1.00782503223, 12.0, 1.00782503223]))"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"deformed=rotate(deform(c6h6,Dict(7=>0.3, 8=>0.2, 9=>0.1, 36=>2.0)), r)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "add79454",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" 1.453785 seconds (3.67 M allocations: 220.455 MiB, 9.03% gc time, 99.49% compilation time)\n"
]
},
{
"data": {
"text/plain": [
"([0.9465841425618841 0.22405148994369173 0.231903839779325; 0.32222216225304745 -0.6297953484751354 -0.7067748560836425; -0.012301999973736542 0.7437464278187124 -0.6683486454714723], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.30000000000000115, 0.20000000000000195, 0.09999999999999792, 2.2259971643734389e-13 … 1.4988010832439613e-15, -1.2247147740396258e-15, 1.5543122344752192e-15, -9.71445146547012e-16, -1.5432100042289676e-14, -1.251776460264864e-14, -8.881784197001252e-15, 1.637578961322106e-14, 2.8782531913407183e-14, 2.000000000000001])"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"@time R, comp= findvibrationcoordinates(c6h6, deformed)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "b831b6a3",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"3×3 Matrix{Float64}:\n",
" 1.11022e-16 0.0 0.0\n",
" 0.0 -1.11022e-16 -1.11022e-16\n",
" -9.54098e-17 3.33067e-16 -1.11022e-16"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"R .- r"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "2d967905",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"i = 7\n",
"comp[i] = 0.30000000000000115\n",
"i = 8\n",
"comp[i] = 0.20000000000000195\n",
"i = 9\n",
"comp[i] = 0.09999999999999792\n",
"i = 36\n",
"comp[i] = 2.000000000000001\n"
]
}
],
"source": [
"for i in 1:36 \n",
" if abs(comp[i]) > 1e-10\n",
" @show i comp[i]\n",
" end\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "441ee672",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Julia 1.6.0",
"language": "julia",
"name": "julia-1.6"
},
"language_info": {
"file_extension": ".jl",
"mimetype": "application/julia",
"name": "julia",
"version": "1.6.0"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment