diff --git a/biopandas/pdb/pandas_pdb.py b/biopandas/pdb/pandas_pdb.py
index 3e6e86e..38da1c1 100644
--- a/biopandas/pdb/pandas_pdb.py
+++ b/biopandas/pdb/pandas_pdb.py
@@ -92,6 +92,24 @@ def read_pdb(self, path):
self.header, self.code = self._parse_header_code()
return self
+ def read_pdb_from_list(self, pdb_lines):
+ """Reads PDB file from a list into DataFrames
+
+ Attributes
+ ----------
+ pdb_lines : list
+ A list of lines containing the pdb file contents.
+
+ Returns
+ ---------
+ self
+
+ """
+ self.pdb_text = ''.join(pdb_lines)
+ self._df = self._construct_df(pdb_lines)
+ self.header, self.code = self._parse_header_code()
+ return self
+
def fetch_pdb(self, pdb_code):
"""Fetches PDB file contents from the Protein Databank at rcsb.org.
diff --git a/biopandas/pdb/tests/test_read_pdb.py b/biopandas/pdb/tests/test_read_pdb.py
index 7be9545..ff7fe27 100644
--- a/biopandas/pdb/tests/test_read_pdb.py
+++ b/biopandas/pdb/tests/test_read_pdb.py
@@ -112,6 +112,17 @@ def test_read_pdb():
assert ppdb.pdb_path == TESTDATA_FILENAME
+def test_read_pdb_from_list():
+ """Test public read_pdb_from_list"""
+
+ for pdb_text, code in zip([three_eiy, four_eiy], ['3eiy', '4eiy']):
+ ppdb = PandasPdb()
+ ppdb.read_pdb_from_list(pdb_text.splitlines(True))
+ assert ppdb.pdb_text == pdb_text
+ assert ppdb.code == code
+ assert ppdb.pdb_path == ''
+
+
def test_anisou_input_handling():
"""Test public read_pdb"""
ppdb = PandasPdb()
diff --git a/docs/sources/api_subpackages/biopandas.mol2.md b/docs/sources/api_subpackages/biopandas.mol2.md
index 5f22d8d..acce9e5 100644
--- a/docs/sources/api_subpackages/biopandas.mol2.md
+++ b/docs/sources/api_subpackages/biopandas.mol2.md
@@ -1,4 +1,4 @@
-biopandas version: 0.2.6
+biopandas version: 0.2.7
## PandasMol2
*PandasMol2()*
diff --git a/docs/sources/api_subpackages/biopandas.pdb.md b/docs/sources/api_subpackages/biopandas.pdb.md
index d49aaed..5015be7 100644
--- a/docs/sources/api_subpackages/biopandas.pdb.md
+++ b/docs/sources/api_subpackages/biopandas.pdb.md
@@ -1,4 +1,4 @@
-biopandas version: 0.2.6
+biopandas version: 0.2.7
## PandasPdb
*PandasPdb()*
@@ -229,6 +229,22 @@ self
+*read_pdb_from_list(pdb_lines)*
+
+Reads PDB file from a list into DataFrames
+
+**Attributes**
+
+- `pdb_lines` : list
+
+ A list of lines containing the pdb file contents.
+
+**Returns**
+
+self
+
+
+
*rmsd(df1, df2, s=None, invert=False)*
Compute the Root Mean Square Deviation between molecules.
diff --git a/docs/sources/api_subpackages/biopandas.testutils.md b/docs/sources/api_subpackages/biopandas.testutils.md
index 07bac6d..d140ff0 100644
--- a/docs/sources/api_subpackages/biopandas.testutils.md
+++ b/docs/sources/api_subpackages/biopandas.testutils.md
@@ -1,4 +1,4 @@
-biopandas version: 0.2.6
+biopandas version: 0.2.7
## assert_raises
*assert_raises(exception_type, message, func, *args, **kwargs)*
diff --git a/docs/tutorials/Working_with_MOL2_Structures_in_DataFrames.ipynb b/docs/tutorials/Working_with_MOL2_Structures_in_DataFrames.ipynb
index 7c04d63..f8222ef 100644
--- a/docs/tutorials/Working_with_MOL2_Structures_in_DataFrames.ipynb
+++ b/docs/tutorials/Working_with_MOL2_Structures_in_DataFrames.ipynb
@@ -21,10 +21,10 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "last updated: 2019-02-05 \n",
+ "last updated: 2020-10-22 \n",
"\n",
- "pandas 0.23.4\n",
- "biopandas 0.2.4\n"
+ "pandas 1.1.3\n",
+ "biopandas 0.2.7\n"
]
}
],
@@ -243,10 +243,10 @@
""
],
"text/plain": [
- " atom_id atom_name x y ... atom_type subst_id subst_name charge\n",
- "0 1 C1 -1.1786 2.7011 ... C.3 1 <0> -0.1537\n",
- "1 2 C2 -1.2950 1.2442 ... C.3 1 <0> -0.1156\n",
- "2 3 C3 -0.1742 0.4209 ... C.3 1 <0> -0.1141\n",
+ " atom_id atom_name x y ... atom_type subst_id subst_name charge\n",
+ "0 1 C1 -1.1786 2.7011 ... C.3 1 <0> -0.1537\n",
+ "1 2 C2 -1.2950 1.2442 ... C.3 1 <0> -0.1156\n",
+ "2 3 C3 -0.1742 0.4209 ... C.3 1 <0> -0.1141\n",
"\n",
"[3 rows x 9 columns]"
]
@@ -501,17 +501,17 @@
""
],
"text/plain": [
- " atom_id atom_name x y ... atom_type subst_id subst_name charge\n",
- "22 23 H3 15.8520 2.8983 ... H 1 <0> 0.0\n",
- "23 24 H4 14.3405 3.3601 ... H 1 <0> 0.0\n",
- "24 25 H5 15.3663 0.9351 ... H 1 <0> 0.0\n",
- "25 26 H6 16.6681 1.6130 ... H 1 <0> 0.0\n",
- "26 27 H7 15.3483 4.6961 ... H 1 <0> 0.0\n",
- "27 28 H8 18.8490 1.8078 ... H 1 <0> 0.0\n",
- "28 29 H9 17.8303 1.5497 ... H 1 <0> 0.0\n",
- "29 30 H10 19.9527 7.4708 ... H 1 <0> 0.4\n",
- "30 31 H11 18.5977 8.5756 ... H 1 <0> 0.4\n",
- "31 32 H12 14.2530 1.0535 ... H 1 <0> 0.4\n",
+ " atom_id atom_name x y ... atom_type subst_id subst_name charge\n",
+ "22 23 H3 15.8520 2.8983 ... H 1 <0> 0.0\n",
+ "23 24 H4 14.3405 3.3601 ... H 1 <0> 0.0\n",
+ "24 25 H5 15.3663 0.9351 ... H 1 <0> 0.0\n",
+ "25 26 H6 16.6681 1.6130 ... H 1 <0> 0.0\n",
+ "26 27 H7 15.3483 4.6961 ... H 1 <0> 0.0\n",
+ "27 28 H8 18.8490 1.8078 ... H 1 <0> 0.0\n",
+ "28 29 H9 17.8303 1.5497 ... H 1 <0> 0.0\n",
+ "29 30 H10 19.9527 7.4708 ... H 1 <0> 0.4\n",
+ "30 31 H11 18.5977 8.5756 ... H 1 <0> 0.4\n",
+ "31 32 H12 14.2530 1.0535 ... H 1 <0> 0.4\n",
"\n",
"[10 rows x 9 columns]"
]
@@ -707,17 +707,17 @@
""
],
"text/plain": [
- " atom_id atom_name x y ... atom_type subst_id subst_name charge\n",
- "10 11 N2 16.8196 5.0644 ... N.am 1 <0> -0.4691\n",
- "11 12 N3 19.0194 7.7275 ... N.pl3 1 <0> -0.8500\n",
- "12 13 O1 18.7676 -2.3524 ... O.3 1 <0> -1.0333\n",
- "13 14 O2 20.3972 -0.3812 ... O.3 1 <0> -1.0333\n",
- "14 15 O3 15.0888 6.5824 ... O.2 1 <0> -0.5700\n",
- "15 16 O4 18.9314 -0.7527 ... O.2 1 <0> -1.0333\n",
- "16 17 O5 16.9690 3.4315 ... O.3 1 <0> -0.5600\n",
- "17 18 O6 14.3223 1.8946 ... O.3 1 <0> -0.6800\n",
- "18 19 O7 17.9091 -0.0135 ... O.3 1 <0> -0.5512\n",
- "19 20 P1 19.0969 -0.9440 ... P.3 1 <0> 1.3712\n",
+ " atom_id atom_name x y ... atom_type subst_id subst_name charge\n",
+ "10 11 N2 16.8196 5.0644 ... N.am 1 <0> -0.4691\n",
+ "11 12 N3 19.0194 7.7275 ... N.pl3 1 <0> -0.8500\n",
+ "12 13 O1 18.7676 -2.3524 ... O.3 1 <0> -1.0333\n",
+ "13 14 O2 20.3972 -0.3812 ... O.3 1 <0> -1.0333\n",
+ "14 15 O3 15.0888 6.5824 ... O.2 1 <0> -0.5700\n",
+ "15 16 O4 18.9314 -0.7527 ... O.2 1 <0> -1.0333\n",
+ "16 17 O5 16.9690 3.4315 ... O.3 1 <0> -0.5600\n",
+ "17 18 O6 14.3223 1.8946 ... O.3 1 <0> -0.6800\n",
+ "18 19 O7 17.9091 -0.0135 ... O.3 1 <0> -0.5512\n",
+ "19 20 P1 19.0969 -0.9440 ... P.3 1 <0> 1.3712\n",
"\n",
"[10 rows x 9 columns]"
]
@@ -815,9 +815,9 @@
""
],
"text/plain": [
- " atom_id atom_name x y ... atom_type subst_id subst_name charge\n",
- "14 15 O3 15.0888 6.5824 ... O.2 1 <0> -0.5700\n",
- "15 16 O4 18.9314 -0.7527 ... O.2 1 <0> -1.0333\n",
+ " atom_id atom_name x y ... atom_type subst_id subst_name charge\n",
+ "14 15 O3 15.0888 6.5824 ... O.2 1 <0> -0.5700\n",
+ "15 16 O4 18.9314 -0.7527 ... O.2 1 <0> -1.0333\n",
"\n",
"[2 rows x 9 columns]"
]
@@ -951,14 +951,12 @@
"outputs": [
{
"data": {
- "image/png": "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\n",
+ "image/png": "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ozZt2qhfv37Riw/cOlF9OvWZiRJwydy5c086+SodP+49d+5cV77lqKqqSvPnz9eKFSvk9/tlWZZKS0vVt29f3X333Y7nOYFtdW6+/vprffXVV/J4PEpPT9dll13map4rrrjC1fGrmz59uuLi4nT55Zdrw4YNKioqit6bE4vfaVKfmSgBlxQXF+vSSy89aXpaWpprV5fMmzdPlZWVysvLU4MGDSQdPyk1b948vfbaaxo2bJgrudhWZ++dd97RJ598om7dukmSZsyYoe7du+v22293LdO2bds0Z84cFRUVKRwOKxKJ6KKLLnLlEFVRUZFyc3MlSf369dPkyZMdz/C/3nnnndPOv+OOO+plXC4Rdcnprrt365r89evXa+TIkdE3NUlq2LChRowYofXr17uSSWJbnYs1a9bohRde0ODBgzV48GA999xzWr16tauZZs+erd/+9re65JJL9Prrr2vUqFG64YYbXMlS/ZzEicNAbjtxf0f1P9LxR6MsXry43sZlT8AlaWlptZ5AzM/Pd+2YpMfjqfWmFK/X6+qNRmyrs9e0aVMdO3YsegnksWPH1Lx5c5dTSS1atFAkEpHX61Xfvn01ZcoUV3J88803euCBByQdP3keCoX0wAMPuHoC/ZZbbon+XFFRoaVLl2rFihXq2bNnjXl1jRJwybBhw5STk6PVq1dH38h27typcDisiRMnupKpZcuWWrVqlXr37l1jekFBQfSOSjewrc6ez+fThAkT1KVLF3k8Hn3++edKT0+PPkjR6QcmSsc/6YbDYbVt21avvfaakpOTdfToUcdzSNJbb73lyrhncvjwYS1ZskQff/yxevfuralTp9b7A+24T8BlmzZt0nfffSfp+B2CnTp1ci1LWVmZcnJyFB8fX+PNNhQKaeLEia7clFUd28q+lStXnnZ+nz59HMlRXXFxsZKSkhQOh/X+++/ryJEjuuGGG9SiRQvHs8SiefPm6dNPP1VGRoZ+85vf6KKLLnJkXEoAJznxZmtZllq3bq3OnTu7HSlmsa1QV+666y75fD7FxcXVeq9HfR2iogQAQ5h2ExTs4eogwBCm3QQFe9gTAACDcXUQcAFx64aj04nFTPgRJQBcQP73MeDS8Uen5+fn69ChQ6684cZiJvyIw0HABerEDUf5+fnq0aOHbrnlFtcf4xyLmUxHCQAXmP+94ah///71fsPRTzETjqMEgAuIWzcc/dQy4UeUAHABceuGo59aJvyIEgAAg3GzGAAYjBIAAINRAgBgMEoARlm5cqWeeuopx8b7v//7Py1fvtyx8YCzRQkAgMG4OggXnEWLFmn58uU6ePCgUlJSNGTIEF133XUqKipSVlaWwuGw4uPjFRcXp7lz5+rIkSOaPXu2NmzYoISEBGVkZGjgwIHyer1auXKlli9frrS0NK1cuVKNGjXSY489pt27d+utt97SsWPHNHTo0Fq/pGX+/PlatGiRfD6fvF6v+vTpI8uyFB8fr/vvvz+6XHZ2tjp37qybbrpJjzzyiAKBgAoKCnTgwAFde+21euihh6JfE7lu3Tq9+eabKi4uVqtWrTRixAhdeumlTm1aXIgs4AJTWFholZaWWlVVVdaaNWusoUOHWmVlZZZlWdaKFSusKVOm1Fj+lVdesaZOnWodOXLE2rt3rzV27Fhr+fLl0eXvuusuKz8/36qqqrLmz59vjRo1ynr11VetUChkbdy40brvvvusioqKWrP84Q9/sILBYPT19u3brYcfftiqqqqyLMuyDh48aN17773W/v37LcuyrDFjxlgTJkywiouLrUOHDllTpkyx5s+fb1mWZe3cudN68MEHrW3btllVVVXWihUrrDFjxlihUKhOtx/MwuEgXHB69OihJk2ayOv1qmfPnmrRooV27NhR67KRSESFhYW655571KBBAzVr1kw333yzCgoKoss0a9ZMffv2ja6vtLRUd9xxh372s5+pa9eu8vl82rNnj61s7du3V8OGDbVp0yZJUmFhoa688kolJydHl7nhhhvk9/vVqFEjDRw4UGvWrJEkLV++XIFAQB06dIjuWfh8Pm3fvv0ctxTAU0RxAVq1apWWLFmi4uJiSVJlZaUOHTpU67Ll5eUKh8Py+/3RaU2bNlVZWVn0dfUHnJ04LFP9TTs+Pl6VlZW28/Xu3VsFBQXq0qWLPv74Y91444015p8qS0lJiVatWqUPP/wwOj8cDtfICpwtSgAXlOLiYs2cOVNPP/20OnbsKK/Xq4kTJ8o6xamvxMRExcXFqaSkRK1atZJ0/M22rr4ovvpjEk7o1auXHn/8cX3zzTcqKirSddddV2N+SUlJjZ9PZElJSdGgQYM0aNCgOskGSFwdhAvM0aNH5fF4lJiYKElasWKFvvvuu+j85ORklZWVKRwOS5K8Xq969Oih+fPnq6KiQsXFxVqyZIl69epVJ3mSkpK0d+/eGtNSUlKUlpamvLw8devWLbp3ccJHH32k0tJSHT58WAsXLlSPHj0kSRkZGVq2bJm2b98uy7JUWVmp9evXq6Kiok6ywkzsCeCC0qpVK91888168skn5fV6df311+vnP/95dH6nTp2iV9V4vV7NmjVLmZmZmj17th599FHFx8crIyNDffv2rZM8/fv31/Tp07Vs2TL16tVLmZmZko4fEsrLy9OwYcNO+ju/+tWv9Oyzz2r//v265pprdPvtt0uS0tLSNHLkSM2ePVu7d+9WfHy80tPTdfnll9dJVpiJS0QBF2zevFmvvPKKpk+fLq/3xx3yRx55RCNHjlSXLl1cTAeTcDgIcFg4HNbSpUuVkZFRowAAN/AbCDioqKhIw4cP14EDB9S/f3+34wAcDgIAk7EnAAAGowQAwGCUAAAYjBIAAINRAgBgMEoAAAz2/ylH1gmBXo5yAAAAAElFTkSuQmCC\n",
"text/plain": [
""
]
},
- "metadata": {
- "needs_background": "light"
- },
+ "metadata": {},
"output_type": "display_data"
}
],
@@ -978,19 +976,17 @@
},
{
"cell_type": "code",
- "execution_count": 13,
+ "execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
- "image/png": "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\n",
+ "image/png": "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6tixo80Vps6GDRv0ySefaMKECfr+97+vNm3a2F2SbSZPnhzdf8uyFAwGlZmZKcuy5HA4tG7dOpsrbIoQuI0f/vCH0SOAa9euRc93pvN/arIdPHhQn3/+uSSpR48eGjhwoM0V2eebXliWpR49emjQoEF2l5RykydPltvtlsvlanS0bPLPSEtCCACAwfhMAAAMRggAgMEIAbQaGzdu1PLly+0uA2hRCAEgySZNmqSqqqpbzv/ggw/06quvprAioAEhAAAG445htCh1dXVavXq1Dh8+rDZt2ujRRx/VI4880uyyR48e1fr163XmzBl16tRJBQUFGjBggCTp9ddfV35+vg4ePKjPPvtMAwYM0KxZs7RmzRpVVFQoNzdX8+bNU+fOnSVJ//73v7V69WqdPHlS7du31+TJkzVy5EhJNx4VkJmZqerqah0+fFjdu3fXnDlz1KVLF7322muSpPnz50uSZsyYEV1PunGH6VtvvaVQKKTnnntOLpdLixcv1pIlS/Tmm29GbzjavXu3Nm/erF/96lfauHGjPv/8czmdTu3du1ddu3bVjBkz1KtXrzvuESALaCHC4bC1YMECa9OmTdb169etqqoqa9asWdbevXsty7Ksd99911q2bJllWZZVW1trTZs2zaqoqLDC4bC1f/9+a9q0adalS5csy7Ks1157zZo9e7Z19uxZ66uvvrLmzp1rzZkzx9q/f78VCoWs3/zmN1ZpaallWZZVX19vTZ8+3SorK7NCoZB14sQJq7Cw0Dp9+rRlWZa1YsUKq6CgwDp27JgVCoWsZcuWWUuXLo3WPXHiROvs2bO33K8dO3ZYixcvbjQ2d+5cq7KyMjr9y1/+0tq2bVt0P6dMmWL97W9/s65fv25t3brVmjlzpnX9+vXb9gj4b5wOQotx4sQJXb58WU8//bTcbrdycnI0YcIElZeXN1l2165duv/++/XAAw/I6XRq8ODB6t27tyorK6PLjBs3Tl26dFG7du10//33KycnR4MHD5bL5dKIESN06tQpSTceFtepUyeNGzdOLpdLeXl5Gj58uHbv3h19r+HDh6tPnz5yuVx6+OGH9a9//SuufR0zZow+/PBDSTceybB//349/PDD0fl5eXkaMWKE3G63HnvsMV2/fl3Hjh27ox4BEqeD0IJUV1frwoULKigoiI5FIhHdd999TZatqanR7t27VVFRER0Lh8PR00GSGj3XJiMjo8n01atXo9s9duxYo+2Gw2GNHj06On3zIzMyMzOj696t0aNHa968ebp69arKy8t13333KTs7Ozrf4/FEXzudTnk8Hl24cEGSYu4RIBECaEG8Xq86d+4c02WgHo9Ho0aN0vTp0+PersfjUf/+/VN6BU/Hjh3Vr18/ffLJJ/rwww/1ve99r9H82tra6OtIJKLa2lplZ2fL5XLF3CNA4uogtCB9+vRR27ZttWXLFgWDQUUiEZ0+fVrHjx9vsuyoUaNUUVGhffv2KRKJKBgM6tChQ41+ecbqwQcf1NmzZ7Vr1y6FQiGFQiEdP35cZ86ciWn9rKwsnTt37pbzO3TooLq6OoVCoUbjo0eP1tatW3X69Gk99NBDjeadPHlSf//73xUOh7V9+3Z961vfUt++fe+oR4DEkQBaEKfTqYULF2r9+vWaNWuWQqGQcnNzNXny5CbLer1eLViwQG+//baWLVsmp9OpPn36qKio6I6327ZtWy1evFjr1q3TunXrZFmW7r33Xj3//PMxrT9x4kSVlpYqGAzqhRdeaHR1kCQNHDhQ3bt3V1FRkZxOp1atWiVJeuihh/S73/1Ow4YNa/JkzqFDh6q8vFylpaXq0qWLXn755ehjjGPtESDxADkgrb300ksqKirS4MGDo2MbN25UVVWV5syZY2NlaC04HQSkqW+uPjL5Ud1IPk4HAWno9ddf15kzZzR79mw5nfythuThdBAAGIw/MQDAYIQAABiMEAAAgxECAGAwQgAADEYIAIDB/h+HitE6x/deuQAAAABJRU5ErkJggg==\n",
"text/plain": [
""
]
},
- "metadata": {
- "needs_background": "light"
- },
+ "metadata": {},
"output_type": "display_data"
}
],
@@ -1012,19 +1008,17 @@
},
{
"cell_type": "code",
- "execution_count": 14,
+ "execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
- "image/png": "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\n",
+ "image/png": "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c/9JZy8Bs2zZMluzLViwQE888YTq1Kmjd955R6mpqbrttttszbRx40ZNmzZN/fr1U79+/TRlyhRt2LDBlizbt2/XY489FnhzlqSqVatq8ODB2r59O5nOce4+sZJpqZA8b8ie6QqSmJhY7g6uVatW2TYn7sRMTnX33XcHbp8+fVqffPKJVq9erU6dOpVaZ5fatWvL7/fL7Xare/fumjhxoq15atasqaKiosChm0VFRYqPj7cli8vlKvckPrfbbdvJfU7MJEk//PCDHn74YUlnD2IoLCzUww8/XOEHMlAa5Rg4cKBmzpypDRs2BN6Q9+7dK5/PpzFjxpDpCnDy5EktX75c69evV9euXTV9+nRHXGAuKipKPp9P11xzjd5++23VqFFDZ86csTVTeHi4Ro8erVatWsnlcmnnzp1q2rRp4GKUobzoZN26dbV27Vp17dq11PJ169YFzngONSdmkqT33nvPluflPI0L+Prrr/XTTz9JOntWccuWLW1O5MxMTrNw4UJ99dVX6tmzp26//XZVqVLF7kgBOTk5ql69unw+nz7++GOdOnVKt912m2rXrm1bpjVr1lxwfbdu3UKSQzp7YuHMmTMVGRlZ6sNRYWGhxowZY8uJtU7MZCdKA785999/v8LDwxUWFlbueQhOO/8AZZV8OLIsS/Xr19f1119vdyRHZrIDpQHYzO4TDsvjxExwBo6eAmzmxAMZnJgJzsBIAwBgjKOngBBw4gmHTswE56M0gBD45WW1pbOXkl+1apVOnDhhyxu0EzPB+ZieAkKs5ITDVatWqWPHjrr77rttv1S6EzPBmSgNIER+ecLhnXfeafsJh07MBGejNIAQcOIJh07MBOejNIAQcOIJh07MBOejNAAAxji5DwBgjNIAABijNAAAxigN4DzWrFmjSZMmhfx5X375ZS1evDjkzwuYoDQAAMY4egqV3tKlS7Vy5Url5+fL4/HogQceUEJCgsaOHSufz6fIyEiFhYXpjTfe0KlTp7RgwQLt2LFDUVFR6tmzp+655x653W6tWbNGK1euVGJiotasWaNq1app+PDhOnjwoN577z0VFRVpwIABF/xSo4yMDM2fP1/S2W/Ua9GihZo3b649e/boySefDGy3YMECud1uDRw4UM8884yaNGmi//73vzpw4IBatGihYcOGBU7S27Nnj9566y1lZ2erZs2aGjhwoFq0aFGhryl+wyygktu0aZOVl5dnFRcXWxs3brQGDBhgeb1ea/Xq1dbEiRNLbfvSSy9Z06dPt06dOmUdPnzYGjFihLVy5UrLsixr9erV1v3332+tWrXKKi4uthYtWmSlpqZa8+bNswoLC63MzEzrL3/5i3X69OkL5pkzZ461aNGiwH2v12sNGDDAOnnypGVZluXz+axHHnnE2rt3r2VZlvX0009bQ4YMsX788Ufr9OnT1owZM6x//etflmVZVl5enjVo0CBr27ZtVnFxsfWf//zHGjRokJWfnx+01w+VC9NTqPQ6duyo2NhYud1uderUSbVr11ZWVlaZ7fx+vzZt2qQ///nPuuqqq1SrVi3dddddWrduXWCbWrVqqXv37oHHysvLU9++fRUREaEbbrhB4eHhOnTo0CXli4mJUbNmzbR582ZJUmZmpq6++upS33nRpUsXNWjQQFWqVFH//v21efNm+f1+rVu3Tm3atFHbtm3ldrvVqlUrJSYmavv27b/y1UJlx1VuUemtXbtWy5cvV05OjiSpoKBAJ06ckNtd+jPV8ePH5fP5FBcXF1hWs2ZNeb3ewP1zL/IXGRkpSapRo0apZQUFBZecsWvXrlqxYoWSk5O1fv16denSpdR6j8cTuB0XF6fi4mIdP35cubm5+vLLL7Vt27bA+uLiYqan8KtRGqjUcnJyNHfuXE2ePFlNmjSR2+3WmDFjZJWzqy86OlphYWHKzc1VvXr1JEm5ubmKjY0NaqZzL+lRon379nr99de1b98+bdu2TQMGDCi1Pi8vL3A7NzdXYWFhio6OlsfjUefOnZWamhrUjKi8mJ5CpXbmzBm5XC5FR0dLklavXq2ffvpJ0tkRgtfrlc/nkyS53W517NhRixYt0unTp5WTk6Ply5erc+fOQc1UvXp1HT58uNSyyMhI3XTTTZo9e7YaN25carQjSevXr1d2drbOnDmj999/Xx06dJDb7Vbnzp21bds2ZWZmyu/3q7CwUN98802pkgEuBaWBSq1evXq666679NRTT2nw4MHat2+frrvuOklSy5YtVa9ePQ0ePFiPPPKIJCklJUVRUVF6/PHHNXnyZN1yyy3q3r17UDP16NFD2dnZGjhwoJ5//vnA8m7dumnfvn1lpqaks/s0Xn75ZQ0ZMkSFhYUaNGiQpLNTVX//+9/14Ycf6pFHHtHQoUP10UcflTuSAkxwyC1whcjNzdXIkSP12muvqWrVqoHlzzzzjDp37qyePXvamA6VBSMN4Arg9/u1fPlyderUqVRhAKHGjnDABqNHjw4crXWuIUOGlNlHUlBQoMGDB6tmzZqaMGFCqCIC5WJ6CgBgjOkpAIAxSgMAYIzSAAAYozQAAMYoDQCAMUoDAGDs/wF14cx6GHm44QAAAABJRU5ErkJggg==\n",
"text/plain": [
""
]
},
- "metadata": {
- "needs_background": "light"
- },
+ "metadata": {},
"output_type": "display_data"
}
],
@@ -1065,7 +1059,7 @@
},
{
"cell_type": "code",
- "execution_count": 15,
+ "execution_count": 16,
"metadata": {},
"outputs": [
{
@@ -1122,7 +1116,7 @@
},
{
"cell_type": "code",
- "execution_count": 16,
+ "execution_count": 17,
"metadata": {},
"outputs": [
{
@@ -1174,7 +1168,7 @@
"15 18.9314 -0.7527 24.1606"
]
},
- "execution_count": 16,
+ "execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
@@ -1197,7 +1191,7 @@
},
{
"cell_type": "code",
- "execution_count": 17,
+ "execution_count": 18,
"metadata": {},
"outputs": [
{
@@ -1222,7 +1216,7 @@
},
{
"cell_type": "code",
- "execution_count": 18,
+ "execution_count": 19,
"metadata": {},
"outputs": [
{
@@ -1324,17 +1318,17 @@
""
],
"text/plain": [
- " atom_id atom_name x y ... subst_id subst_name charge distances\n",
- "0 1 C1 18.8934 5.5819 ... 1 <0> -0.1356 4.035144\n",
- "1 2 C2 18.1301 4.7642 ... 1 <0> -0.0410 3.547712\n",
- "2 3 C3 18.2645 6.8544 ... 1 <0> 0.4856 3.456969\n",
- "3 4 C4 16.2520 6.2866 ... 1 <0> 0.8410 1.232313\n",
- "4 5 C5 15.3820 3.0682 ... 1 <0> 0.0000 3.527546\n",
+ " atom_id atom_name x y ... subst_id subst_name charge distances\n",
+ "0 1 C1 18.8934 5.5819 ... 1 <0> -0.1356 4.035144\n",
+ "1 2 C2 18.1301 4.7642 ... 1 <0> -0.0410 3.547712\n",
+ "2 3 C3 18.2645 6.8544 ... 1 <0> 0.4856 3.456969\n",
+ "3 4 C4 16.2520 6.2866 ... 1 <0> 0.8410 1.232313\n",
+ "4 5 C5 15.3820 3.0682 ... 1 <0> 0.0000 3.527546\n",
"\n",
"[5 rows x 10 columns]"
]
},
- "execution_count": 18,
+ "execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
@@ -1353,7 +1347,7 @@
},
{
"cell_type": "code",
- "execution_count": 19,
+ "execution_count": 20,
"metadata": {},
"outputs": [
{
@@ -1419,14 +1413,14 @@
""
],
"text/plain": [
- " atom_id atom_name x y ... subst_id subst_name charge distances\n",
- "14 15 O3 15.0888 6.5824 ... 1 <0> -0.5700 0.000000\n",
- "15 16 O4 18.9314 -0.7527 ... 1 <0> -1.0333 8.330738\n",
+ " atom_id atom_name x y ... subst_id subst_name charge distances\n",
+ "14 15 O3 15.0888 6.5824 ... 1 <0> -0.5700 0.000000\n",
+ "15 16 O4 18.9314 -0.7527 ... 1 <0> -1.0333 8.330738\n",
"\n",
"[2 rows x 10 columns]"
]
},
- "execution_count": 19,
+ "execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
@@ -1458,7 +1452,7 @@
},
{
"cell_type": "code",
- "execution_count": 20,
+ "execution_count": 21,
"metadata": {},
"outputs": [
{
@@ -1560,17 +1554,17 @@
""
],
"text/plain": [
- " atom_id atom_name x y ... subst_id subst_name charge distances\n",
- "7 8 C8 16.0764 4.1199 ... 1 <0> 0.5801 2.814490\n",
- "9 10 N1 17.0289 7.1510 ... 1 <0> -0.6610 2.269690\n",
- "10 11 N2 16.8196 5.0644 ... 1 <0> -0.4691 2.307553\n",
- "14 15 O3 15.0888 6.5824 ... 1 <0> -0.5700 0.000000\n",
- "26 27 H7 15.3483 4.6961 ... 1 <0> 0.0000 2.446817\n",
+ " atom_id atom_name x y ... subst_id subst_name charge distances\n",
+ "7 8 C8 16.0764 4.1199 ... 1 <0> 0.5801 2.814490\n",
+ "9 10 N1 17.0289 7.1510 ... 1 <0> -0.6610 2.269690\n",
+ "10 11 N2 16.8196 5.0644 ... 1 <0> -0.4691 2.307553\n",
+ "14 15 O3 15.0888 6.5824 ... 1 <0> -0.5700 0.000000\n",
+ "26 27 H7 15.3483 4.6961 ... 1 <0> 0.0000 2.446817\n",
"\n",
"[5 rows x 10 columns]"
]
},
- "execution_count": 20,
+ "execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
@@ -1605,7 +1599,7 @@
},
{
"cell_type": "code",
- "execution_count": 21,
+ "execution_count": 22,
"metadata": {},
"outputs": [
{
@@ -1644,7 +1638,7 @@
},
{
"cell_type": "code",
- "execution_count": 22,
+ "execution_count": 23,
"metadata": {},
"outputs": [],
"source": [
@@ -1681,21 +1675,9 @@
},
{
"cell_type": "code",
- "execution_count": 23,
+ "execution_count": 24,
"metadata": {},
- "outputs": [
- {
- "ename": "ModuleNotFoundError",
- "evalue": "No module named 'mputil'",
- "output_type": "error",
- "traceback": [
- "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
- "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)",
- "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mpandas\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0;32mfrom\u001b[0m \u001b[0mmputil\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mlazy_imap\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mbiopandas\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmol2\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mPandasMol2\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mbiopandas\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmol2\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0msplit_multimol2\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
- "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'mputil'"
- ]
- }
- ],
+ "outputs": [],
"source": [
"import pandas as pd\n",
"from mputil import lazy_imap\n",
@@ -1782,7 +1764,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.7.1"
+ "version": "3.8.2"
},
"toc": {
"base_numbering": 1,
diff --git a/docs/tutorials/Working_with_PDB_Structures_in_DataFrames.ipynb b/docs/tutorials/Working_with_PDB_Structures_in_DataFrames.ipynb
index 1cd8612..4012375 100644
--- a/docs/tutorials/Working_with_PDB_Structures_in_DataFrames.ipynb
+++ b/docs/tutorials/Working_with_PDB_Structures_in_DataFrames.ipynb
@@ -21,10 +21,10 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "last updated: 2020-08-03 \n",
+ "last updated: 2020-10-22 \n",
"\n",
- "pandas 1.0.1\n",
- "biopandas 0.2.5\n"
+ "pandas 1.1.3\n",
+ "biopandas 0.2.7\n"
]
}
],
@@ -76,7 +76,7 @@
},
{
"cell_type": "code",
- "execution_count": 14,
+ "execution_count": 3,
"metadata": {},
"outputs": [
{
@@ -131,7 +131,7 @@
" [666 rows x 3 columns]}"
]
},
- "execution_count": 14,
+ "execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
@@ -691,66 +691,9 @@
},
{
"cell_type": "code",
- "execution_count": 7,
+ "execution_count": 4,
"metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "{'ATOM': record_name atom_number blank_1 atom_name ... segment_id element_symbol charge line_idx\n",
- " 0 ATOM 1 N ... N NaN 609\n",
- " 1 ATOM 2 CA ... C NaN 610\n",
- " 2 ATOM 3 C ... C NaN 611\n",
- " 3 ATOM 4 O ... O NaN 612\n",
- " 4 ATOM 5 CB ... C NaN 613\n",
- " ... ... ... ... ... ... ... ... ... ...\n",
- " 1325 ATOM 1326 CG ... C NaN 1934\n",
- " 1326 ATOM 1327 CD ... C NaN 1935\n",
- " 1327 ATOM 1328 CE ... C NaN 1936\n",
- " 1328 ATOM 1329 NZ ... N NaN 1937\n",
- " 1329 ATOM 1330 OXT ... O NaN 1938\n",
- " \n",
- " [1330 rows x 21 columns],\n",
- " 'HETATM': record_name atom_number blank_1 atom_name ... segment_id element_symbol charge line_idx\n",
- " 0 HETATM 1332 K ... K NaN 1940\n",
- " 1 HETATM 1333 NA ... NA NaN 1941\n",
- " 2 HETATM 1334 NA ... NA NaN 1942\n",
- " 3 HETATM 1335 P1 ... P NaN 1943\n",
- " 4 HETATM 1336 O1 ... O NaN 1944\n",
- " .. ... ... ... ... ... ... ... ... ...\n",
- " 146 HETATM 1478 O ... O NaN 2086\n",
- " 147 HETATM 1479 O ... O NaN 2087\n",
- " 148 HETATM 1480 O ... O NaN 2088\n",
- " 149 HETATM 1481 O ... O NaN 2089\n",
- " 150 HETATM 1482 O ... O NaN 2090\n",
- " \n",
- " [151 rows x 21 columns],\n",
- " 'ANISOU': Empty DataFrame\n",
- " Columns: [record_name, atom_number, blank_1, atom_name, alt_loc, residue_name, blank_2, chain_id, residue_number, insertion, blank_3, U(1,1), U(2,2), U(3,3), U(1,2), U(1,3), U(2,3), blank_4, element_symbol, charge, line_idx]\n",
- " Index: []\n",
- " \n",
- " [0 rows x 21 columns],\n",
- " 'OTHERS': record_name entry line_idx\n",
- " 0 HEADER HYDROLASE 17... 0\n",
- " 1 TITLE CRYSTAL STRUCTURE OF INORGANIC PYROPHOSPHA... 1\n",
- " 2 TITLE 2 PSEUDOMALLEI WITH BOUND PYROPHOSPHATE 2\n",
- " 3 COMPND MOL_ID: 1; 3\n",
- " 4 COMPND 2 MOLECULE: INORGANIC PYROPHOSPHATASE; 4\n",
- " .. ... ... ...\n",
- " 661 CONECT 1435 1334 2142\n",
- " 662 CONECT 1445 1333 2143\n",
- " 663 CONECT 1451 1334 2144\n",
- " 664 MASTER 470 0 7 5 9 0 13 6 1... 2145\n",
- " 665 END 2146\n",
- " \n",
- " [666 rows x 3 columns]}"
- ]
- },
- "execution_count": 7,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "outputs": [],
"source": [
"from biopandas.pdb import PandasPdb\n",
"\n",
@@ -770,16 +713,16 @@
},
{
"cell_type": "code",
- "execution_count": 4,
+ "execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
- ""
+ ""
]
},
- "execution_count": 4,
+ "execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
@@ -806,16 +749,16 @@
},
{
"cell_type": "code",
- "execution_count": 5,
+ "execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
- ""
+ ""
]
},
- "execution_count": 5,
+ "execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
@@ -840,7 +783,7 @@
},
{
"cell_type": "code",
- "execution_count": 6,
+ "execution_count": 7,
"metadata": {},
"outputs": [
{
@@ -884,7 +827,7 @@
},
{
"cell_type": "code",
- "execution_count": 7,
+ "execution_count": 8,
"metadata": {},
"outputs": [
{
@@ -962,15 +905,15 @@
""
],
"text/plain": [
- " record_name atom_number blank_1 atom_name ... segment_id element_symbol charge line_idx\n",
- "0 ATOM 1 N ... N NaN 609\n",
- "1 ATOM 2 CA ... C NaN 610\n",
- "2 ATOM 3 C ... C NaN 611\n",
+ " record_name atom_number blank_1 atom_name ... segment_id element_symbol charge line_idx\n",
+ "0 ATOM 1 N ... N NaN 609\n",
+ "1 ATOM 2 CA ... C NaN 610\n",
+ "2 ATOM 3 C ... C NaN 611\n",
"\n",
"[3 rows x 21 columns]"
]
},
- "execution_count": 7,
+ "execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
@@ -1063,7 +1006,7 @@
},
{
"cell_type": "code",
- "execution_count": 8,
+ "execution_count": 9,
"metadata": {},
"outputs": [
{
@@ -1072,7 +1015,7 @@
"dict_keys(['ATOM', 'HETATM', 'ANISOU', 'OTHERS'])"
]
},
- "execution_count": 8,
+ "execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
@@ -1117,7 +1060,7 @@
},
{
"cell_type": "code",
- "execution_count": 9,
+ "execution_count": 10,
"metadata": {},
"outputs": [
{
@@ -1183,14 +1126,14 @@
""
],
"text/plain": [
- " record_name atom_number blank_1 atom_name ... segment_id element_symbol charge line_idx\n",
- "0 HETATM 1332 K ... K NaN 1940\n",
- "1 HETATM 1333 NA ... NA NaN 1941\n",
+ " record_name atom_number blank_1 atom_name ... segment_id element_symbol charge line_idx\n",
+ "0 HETATM 1332 K ... K NaN 1940\n",
+ "1 HETATM 1333 NA ... NA NaN 1941\n",
"\n",
"[2 rows x 21 columns]"
]
},
- "execution_count": 9,
+ "execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
@@ -1215,7 +1158,7 @@
},
{
"cell_type": "code",
- "execution_count": 10,
+ "execution_count": 11,
"metadata": {},
"outputs": [
{
@@ -1264,7 +1207,7 @@
"[0 rows x 21 columns]"
]
},
- "execution_count": 10,
+ "execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
@@ -1282,7 +1225,7 @@
},
{
"cell_type": "code",
- "execution_count": 11,
+ "execution_count": 12,
"metadata": {},
"outputs": [
{
@@ -1291,7 +1234,7 @@
"True"
]
},
- "execution_count": 11,
+ "execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
@@ -1309,7 +1252,7 @@
},
{
"cell_type": "code",
- "execution_count": 12,
+ "execution_count": 13,
"metadata": {},
"outputs": [
{
@@ -1318,7 +1261,7 @@
"Index(['record_name', 'atom_number', 'blank_1', 'atom_name', 'alt_loc', 'residue_name', 'blank_2', 'chain_id', 'residue_number', 'insertion', 'blank_3', 'U(1,1)', 'U(2,2)', 'U(3,3)', 'U(1,2)', 'U(1,3)', 'U(2,3)', 'blank_4', 'element_symbol', 'charge', 'line_idx'], dtype='object')"
]
},
- "execution_count": 12,
+ "execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
@@ -1336,7 +1279,7 @@
},
{
"cell_type": "code",
- "execution_count": 13,
+ "execution_count": 14,
"metadata": {},
"outputs": [
{
@@ -1345,7 +1288,7 @@
"{'b_factor', 'occupancy', 'segment_id', 'x_coord', 'y_coord', 'z_coord'}"
]
},
- "execution_count": 13,
+ "execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
@@ -1363,7 +1306,7 @@
},
{
"cell_type": "code",
- "execution_count": 14,
+ "execution_count": 15,
"metadata": {},
"outputs": [
{
@@ -1372,7 +1315,7 @@
"{'U(1,1)', 'U(1,2)', 'U(1,3)', 'U(2,2)', 'U(2,3)', 'U(3,3)'}"
]
},
- "execution_count": 14,
+ "execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
@@ -1398,7 +1341,7 @@
},
{
"cell_type": "code",
- "execution_count": 15,
+ "execution_count": 16,
"metadata": {},
"outputs": [
{
@@ -1428,7 +1371,7 @@
"dtype: object"
]
},
- "execution_count": 15,
+ "execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
@@ -1453,7 +1396,7 @@
},
{
"cell_type": "code",
- "execution_count": 16,
+ "execution_count": 17,
"metadata": {},
"outputs": [
{
@@ -1526,7 +1469,7 @@
"4 COMPND 2 MOLECULE: INORGANIC PYROPHOSPHATASE; 4"
]
},
- "execution_count": 16,
+ "execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
@@ -1558,7 +1501,7 @@
},
{
"cell_type": "code",
- "execution_count": 17,
+ "execution_count": 18,
"metadata": {},
"outputs": [
{
@@ -1660,17 +1603,17 @@
""
],
"text/plain": [
- " record_name atom_number blank_1 atom_name ... segment_id element_symbol charge line_idx\n",
- "0 ATOM 1 N ... N NaN 609\n",
- "1 ATOM 2 CA ... C NaN 610\n",
- "2 ATOM 3 C ... C NaN 611\n",
- "3 ATOM 4 O ... O NaN 612\n",
- "4 ATOM 5 CB ... C NaN 613\n",
+ " record_name atom_number blank_1 atom_name ... segment_id element_symbol charge line_idx\n",
+ "0 ATOM 1 N ... N NaN 609\n",
+ "1 ATOM 2 CA ... C NaN 610\n",
+ "2 ATOM 3 C ... C NaN 611\n",
+ "3 ATOM 4 O ... O NaN 612\n",
+ "4 ATOM 5 CB ... C NaN 613\n",
"\n",
"[5 rows x 21 columns]"
]
},
- "execution_count": 17,
+ "execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
@@ -1706,7 +1649,7 @@
},
{
"cell_type": "code",
- "execution_count": 18,
+ "execution_count": 19,
"metadata": {},
"outputs": [
{
@@ -1808,17 +1751,17 @@
""
],
"text/plain": [
- " record_name atom_number blank_1 atom_name ... segment_id element_symbol charge line_idx\n",
- "38 ATOM 39 N ... N NaN 647\n",
- "39 ATOM 40 CA ... C NaN 648\n",
- "40 ATOM 41 C ... C NaN 649\n",
- "41 ATOM 42 O ... O NaN 650\n",
- "42 ATOM 43 CB ... C NaN 651\n",
+ " record_name atom_number blank_1 atom_name ... segment_id element_symbol charge line_idx\n",
+ "38 ATOM 39 N ... N NaN 647\n",
+ "39 ATOM 40 CA ... C NaN 648\n",
+ "40 ATOM 41 C ... C NaN 649\n",
+ "41 ATOM 42 O ... O NaN 650\n",
+ "42 ATOM 43 CB ... C NaN 651\n",
"\n",
"[5 rows x 21 columns]"
]
},
- "execution_count": 18,
+ "execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
@@ -1836,7 +1779,7 @@
},
{
"cell_type": "code",
- "execution_count": 19,
+ "execution_count": 20,
"metadata": {},
"outputs": [
{
@@ -1938,17 +1881,17 @@
""
],
"text/plain": [
- " record_name atom_number blank_1 atom_name ... segment_id element_symbol charge line_idx\n",
- "2 ATOM 3 C ... C NaN 611\n",
- "8 ATOM 9 C ... C NaN 617\n",
- "19 ATOM 20 C ... C NaN 628\n",
- "25 ATOM 26 C ... C NaN 634\n",
- "33 ATOM 34 C ... C NaN 642\n",
+ " record_name atom_number blank_1 atom_name ... segment_id element_symbol charge line_idx\n",
+ "2 ATOM 3 C ... C NaN 611\n",
+ "8 ATOM 9 C ... C NaN 617\n",
+ "19 ATOM 20 C ... C NaN 628\n",
+ "25 ATOM 26 C ... C NaN 634\n",
+ "33 ATOM 34 C ... C NaN 642\n",
"\n",
"[5 rows x 21 columns]"
]
},
- "execution_count": 19,
+ "execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
@@ -1966,7 +1909,7 @@
},
{
"cell_type": "code",
- "execution_count": 20,
+ "execution_count": 21,
"metadata": {},
"outputs": [
{
@@ -2068,17 +2011,17 @@
""
],
"text/plain": [
- " record_name atom_number blank_1 atom_name ... segment_id element_symbol charge line_idx\n",
- "0 ATOM 1 N ... N NaN 609\n",
- "1 ATOM 2 CA ... C NaN 610\n",
- "2 ATOM 3 C ... C NaN 611\n",
- "3 ATOM 4 O ... O NaN 612\n",
- "4 ATOM 5 CB ... C NaN 613\n",
+ " record_name atom_number blank_1 atom_name ... segment_id element_symbol charge line_idx\n",
+ "0 ATOM 1 N ... N NaN 609\n",
+ "1 ATOM 2 CA ... C NaN 610\n",
+ "2 ATOM 3 C ... C NaN 611\n",
+ "3 ATOM 4 O ... O NaN 612\n",
+ "4 ATOM 5 CB ... C NaN 613\n",
"\n",
"[5 rows x 21 columns]"
]
},
- "execution_count": 20,
+ "execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
@@ -2096,7 +2039,7 @@
},
{
"cell_type": "code",
- "execution_count": 21,
+ "execution_count": 22,
"metadata": {},
"outputs": [
{
@@ -2117,6 +2060,149 @@
"print('Average B-Factor [Main Chain]: %.2f' % bfact_mc_avg)"
]
},
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "**Loading PDB files from a Python List**"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Since biopandas 0.3.0, PDB files can also be loaded into a PandasPdb object from a Python list:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " record_name | \n",
+ " atom_number | \n",
+ " blank_1 | \n",
+ " atom_name | \n",
+ " ... | \n",
+ " segment_id | \n",
+ " element_symbol | \n",
+ " charge | \n",
+ " line_idx | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " ATOM | \n",
+ " 1 | \n",
+ " | \n",
+ " N | \n",
+ " ... | \n",
+ " | \n",
+ " N | \n",
+ " NaN | \n",
+ " 609 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " ATOM | \n",
+ " 2 | \n",
+ " | \n",
+ " CA | \n",
+ " ... | \n",
+ " | \n",
+ " C | \n",
+ " NaN | \n",
+ " 610 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " ATOM | \n",
+ " 3 | \n",
+ " | \n",
+ " C | \n",
+ " ... | \n",
+ " | \n",
+ " C | \n",
+ " NaN | \n",
+ " 611 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " ATOM | \n",
+ " 4 | \n",
+ " | \n",
+ " O | \n",
+ " ... | \n",
+ " | \n",
+ " O | \n",
+ " NaN | \n",
+ " 612 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " ATOM | \n",
+ " 5 | \n",
+ " | \n",
+ " CB | \n",
+ " ... | \n",
+ " | \n",
+ " C | \n",
+ " NaN | \n",
+ " 613 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
5 rows × 21 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " record_name atom_number blank_1 atom_name ... segment_id element_symbol charge line_idx\n",
+ "0 ATOM 1 N ... N NaN 609\n",
+ "1 ATOM 2 CA ... C NaN 610\n",
+ "2 ATOM 3 C ... C NaN 611\n",
+ "3 ATOM 4 O ... O NaN 612\n",
+ "4 ATOM 5 CB ... C NaN 613\n",
+ "\n",
+ "[5 rows x 21 columns]"
+ ]
+ },
+ "execution_count": 23,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "with open('./data/3eiy.pdb', 'r') as f:\n",
+ " three_eiy = f.readlines()\n",
+ "\n",
+ "ppdb2 = PandasPdb()\n",
+ "ppdb2.read_pdb_from_list(three_eiy)\n",
+ "\n",
+ "ppdb2.df['ATOM'].head()"
+ ]
+ },
{
"cell_type": "markdown",
"metadata": {},
@@ -2133,7 +2219,7 @@
},
{
"cell_type": "code",
- "execution_count": 22,
+ "execution_count": 24,
"metadata": {},
"outputs": [],
"source": [
@@ -2150,7 +2236,7 @@
},
{
"cell_type": "code",
- "execution_count": 23,
+ "execution_count": 25,
"metadata": {},
"outputs": [],
"source": [
@@ -2162,19 +2248,17 @@
},
{
"cell_type": "code",
- "execution_count": 24,
+ "execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
- "image/png": "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\n",
+ "image/png": "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\n",
"text/plain": [
"