Skip to main content
  • Home
  • Development
  • Documentation
  • Donate
  • Operational login
  • Browse the archive

swh logo
SoftwareHeritage
Software
Heritage
Archive
Features
  • Search

  • Downloads

  • Save code now

  • Add forge now

  • Help

https://github.com/MDverse/mdda
28 August 2024, 14:59:06 UTC
  • Code
  • Branches (2)
  • Releases (0)
  • Visits
    • Branches
    • Releases
    • HEAD
    • refs/heads/main
    • refs/heads/update-data
    No releases to show
  • fc72ac7
  • /
  • notebooks
  • /
  • search_MD_in_pubmed.ipynb
Raw File Download
Take a new snapshot of a software origin

If the archived software origin currently browsed is not synchronized with its upstream version (for instance when new commits have been issued), you can explicitly request Software Heritage to take a new snapshot of it.

Use the form below to proceed. Once a request has been submitted and accepted, it will be processed as soon as possible. You can then check its processing state by visiting this dedicated page.
swh spinner

Processing "take a new snapshot" request ...

To reference or cite the objects present in the Software Heritage archive, permalinks based on SoftWare Hash IDentifiers (SWHIDs) must be used.
Select below a type of object currently browsed in order to display its associated SWHID and permalink.

  • content
  • directory
  • revision
  • snapshot
origin badgecontent badge
swh:1:cnt:d298748f9a2aa376884710340caf9e11b6f68534
origin badgedirectory badge
swh:1:dir:2e9020bb4f9e79bdaec6f8153093bdaac0656095
origin badgerevision badge
swh:1:rev:4562c50d1b51a51fdf952ae6e9efaa407dd06e20
origin badgesnapshot badge
swh:1:snp:dbfe8b4401ac98d3728ebb00241429274c619beb

This interface enables to generate software citations, provided that the root directory of browsed objects contains a citation.cff or codemeta.json file.
Select below a type of object currently browsed in order to generate citations for them.

  • content
  • directory
  • revision
  • snapshot
Generate software citation in BibTex format (requires biblatex-software package)
Generating citation ...
Generate software citation in BibTex format (requires biblatex-software package)
Generating citation ...
Generate software citation in BibTex format (requires biblatex-software package)
Generating citation ...
Generate software citation in BibTex format (requires biblatex-software package)
Generating citation ...
Tip revision: 4562c50d1b51a51fdf952ae6e9efaa407dd06e20 authored by Pierre Poulain on 16 May 2024, 15:18:06 UTC
Add previous results (2024-04-23) in HTML format
Tip revision: 4562c50
search_MD_in_pubmed.ipynb
{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "d6a404d9-ab10-4b76-83f8-0359e519db49",
   "metadata": {},
   "source": [
    "# Search for Molecular Dynamics publications in PubMed\n",
    "\n",
    "Results can be verified [PubMed](https://pubmed.ncbi.nlm.nih.gov/?term=%22molecular+dynamics%22&filter=years.2000-2022&sort=date)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "eb166a0e-2239-40ac-aebd-42722ea2cb50",
   "metadata": {},
   "outputs": [],
   "source": [
    "from Bio import Entrez\n",
    "import matplotlib.pyplot as plt\n",
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "231d7da4-6cda-4506-8fec-a55363282b4f",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Python implementation: CPython\n",
      "Python version       : 3.9.16\n",
      "IPython version      : 8.6.0\n",
      "\n",
      "Compiler    : GCC 11.3.0\n",
      "OS          : Linux\n",
      "Release     : 5.15.0-67-generic\n",
      "Machine     : x86_64\n",
      "Processor   : x86_64\n",
      "CPU cores   : 8\n",
      "Architecture: 64bit\n",
      "\n",
      "jupyterlab: 3.6.1\n",
      "\n",
      "Bio       : 1.81\n",
      "pandas    : 1.5.3\n",
      "matplotlib: 3.5.3\n",
      "\n",
      "Watermark: 2.3.1\n",
      "\n",
      "conda environment: mdda\n",
      "\n"
     ]
    }
   ],
   "source": [
    "%load_ext watermark\n",
    "%watermark --python --machine\n",
    "# Python packages versions\n",
    "%watermark --packages jupyterlab --iversions --watermark\n",
    "# conda environment name\n",
    "%watermark --conda"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bb021859-98b5-4c89-8109-76040a3c874a",
   "metadata": {},
   "source": [
    "Initiate Entrez module with your own e-mail address."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "35ff6c48-e620-4990-81fa-ed8630969d25",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Dummy e-mail address. Use your own.\n",
    "Entrez.email = \"bob@email.com\""
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6f09dd42-1279-4fd8-bb2d-4c258eaad44c",
   "metadata": {},
   "source": [
    "Define function to query Pubmed per year"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "3c3a9b1a-b036-4f26-b3f1-7b59ce5535e4",
   "metadata": {},
   "outputs": [],
   "source": [
    "def query_pubmed(term=\"\", year_start=2000, year_end=2022):\n",
    "    years = []\n",
    "    paper_count = []\n",
    "    for year in range(year_start, year_end+1):\n",
    "        query = (f'(\"{term}\") AND '\n",
    "                 f'(\"{year}/01/01\"[Date - Publication] : \"{year}/12/31\"[Date - Publication])'\n",
    "                )\n",
    "        esearch_res = Entrez.read(Entrez.esearch(db=\"pubmed\", term=query))\n",
    "        years.append(year)\n",
    "        paper_count.append(int(esearch_res[\"Count\"]))\n",
    "    return years, paper_count"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1af0dfb6-dadd-4def-b0d0-50af04724ee4",
   "metadata": {},
   "source": [
    "## Molecular dynamics"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "59784436-9a67-410d-9fb5-779d82e27e1b",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Querying MD...\n"
     ]
    }
   ],
   "source": [
    "print(\"Querying MD...\")\n",
    "years, md = query_pubmed(term=\"'molecular dynamics'[Title/Abstract]\", year_start=2000, year_end=2022)\n",
    "df_md = pd.DataFrame({\"years\": years, \"MD\": md})\n",
    "df_md.to_csv(\"number_of_MD_papers_per_year.tsv\", sep=\"\\t\", index=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "ee05c48c-5b31-4ca1-9c77-32ee43a67472",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>years</th>\n",
       "      <th>MD</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2000</td>\n",
       "      <td>570</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2001</td>\n",
       "      <td>666</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2002</td>\n",
       "      <td>827</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2003</td>\n",
       "      <td>881</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2004</td>\n",
       "      <td>1412</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   years    MD\n",
       "0   2000   570\n",
       "1   2001   666\n",
       "2   2002   827\n",
       "3   2003   881\n",
       "4   2004  1412"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_md.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "73a08751-08fe-430d-9612-d7b195f76e16",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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9uzZo7/+9a+265/bt2+vAQMG2NUFBARo7ty58vT01JEjR3TTTTfp1Vdf1e7du3Xu3DmdPn1aO3fu1IcffqiePXuqSZMm5bqA4Y033qgxY8ZIkhYvXqwePXpow4YNSkxM1MGDBzVlyhQNHjxYkhQeHq7nn3++3MZSFC8vLzVt2lRNmzZVvXr1SnWs/LfgS05OVlxcnFavXq2XXnpJ1157rZ599lnl5uaqXr16+uabbwrMUiipyMhI/fDDD+rWrZvWrVunxMRE/f7775o8ebJtPZUmTZrYPszmZ/0gdeLECXXr1k2bNm3SuXPndPjwYb3zzjvq2LGj069HZGSkXnjhBY0dO1Z79+5VUlKStm3bpkGDBtnWIRk8eLAt/CgL/fr1s91d4P3331fXrl21fPlynThxwnYr2BkzZqht27Z2t4W89957FRISIunSrT/nzZun+Ph4nTx5Ul9++aVuu+027d27V9dff32hfd9888222QxTp05VQkKCsrOzlZOTU6Jr9KdPn24LVe+++269++67Onr0qM6ePasVK1aoU6dOtr+0//Of/7QLQMrC3r17FR4ersGDB+uzzz7T/v37lZSUpISEBP3000/q1auX9u3bJ0m2xTtd4er50aBBA7377ruSpK1bt+rGG2/U+++/r/379ys5OVmnTp3S1q1b9d577+nOO+/Urbfe6vIYS6p79+6qX7++8vLytHDhQkmXZlcVdSvZsWPH2u6m8fe//109e/bUsmXLlJCQoOTkZB09elQ//PCDnnnmGUVFRemtt96yq7fe6vj333+3vZ+ePXtWv/32m6ZMmaIePXoUed4CqAIMAKBczJkzx0gykkxsbGyh7ZKSkkxISIitrSTz3XffOWw7bdo0u3b5Hw0bNjSxsbG27+fMmVOgvlGjRkaSefHFF50ad1GKOlb+fQ8++GChY27RooU5efJkoX0sW7bM1KxZs9B668PT09MkJSXZ1Q4bNsxIMp06dSryeTgrKyvLDB48uMhxREZGFvqzXr16ta3dkSNHXB6H9XnVrVu3xLWzZs0qcgzWYzvz8Pb2Ng8++KA5c+aMy8/FGGM6depkJJlhw4aZ559/vtD+wsLCzP79+ws9zl/+8pciz7PNmzfbvl+9enWBeuu+//znP+bOO+8s9FidOnUy58+fdziGon73ijsfMzIyij2/HI39s88+M56eng7b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tgcAAAAAAFcnlxerbN26tY4ePSpjjF566SUlJydr6NChCg8P17FjxzR//ny9++67slgstvYAAAAAAODq5nIQMXjwYC1atEgWi0U5OTl6++239fbbb9u1McZIkiwWi4YMGVK6kQIAAAAAgErP5UszevfurTvvvFPGGFksFhljCjwsFossFovuvPNO9erVqyzHDQAAAAAAKiGXgwhJWrhwoVq3bm0388H6kC7NiGjdurUWLlxY+pECAAAAAIBKr1RBRGhoqDZs2KBZs2apc+fOqlmzpjw9PRUaGqouXbroww8/1Pr161WzZs2yGi8AAAAAAKjEXF4jwsrT01MjR47UyJEjy2I8AAAAAACgCivVjAgAAAAAAICScGpGRHx8vKRLsx8aNGhgt60kIiIiSlwDAAAAAACqDqdmRERGRuqaa65R69atC2xz9hEVFVVuT6I4ubm5mjVrljp16qRatWrJz89PjRo10n333aelS5c6rNm0aZN69+6t2rVry9/fX82bN9fUqVOVmZlZZF+xsbEaMmSI6tevLz8/PzVu3Fjjx49XcnJykXUJCQkaPXq0wsPD5evrq4iICD366KNKSEhw9WkDAAAAAHDFcfrSDOstOQvb7syjIpw7d07t27fX6NGjtW7dOtWqVUvR0dHKzs7W0qVLNX/+/AI1CxYsUIcOHfT111/L19dXzZo108GDBzV58mR17NhR6enpDvtavXq1WrVqpU8//VS5ublq0aKFTp48qddff12tWrXSqVOnHNbt27dPN9xwg2bNmqW0tDRFR0crNTVVM2fO1I033qj9+/eX6WsCAAAAAEBFKfc1Iqy38qwIeXl56tWrlzZv3qw+ffooPj5e+/fv17Zt23T8+HEdO3ZMY8eOtauJi4vTyJEjlZubq2nTpunYsWPasWOHDhw4oOuvv15bt27VxIkTC/SVlpamgQMHKiMjQ2PHjlVCQoK2b9+u+Ph4tWvXTocPH3a4oGdubq769++vpKQk9e3bV8ePH9f27duVkJCgPn36KDExUQMHDlReXl65vU4AAAAAALiLU2tEdOzYURaLxe42nNZtV7KZM2dq/fr1uvPOO7Vo0SJ5eNjnLg0bNlTDhg3ttk2fPl1ZWVnq2rWrJkyYYNveqFEjffTRR2rXrp1mzpypF154QXXr1rXtnzFjhs6cOaNmzZrpjTfekKenp6RLtzj9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v14TJkzQbbfdpurVq8vHx0dhYWHq27evVq9eXWT9pk2b1Lt3b9WuXVv+/v5q3ry5pk6dqszMzCLrYmNjNWTIENWvX19+fn5q3Lixxo8fr+Tk5CLrEhISNHr0aIWHh8vX11cRERF69NFHlZCQUNKnDgAAAADAFavKBhE//fSTOnTooNdee01bt25V3bp1FR0drbS0NC1ZskSdO3fWCy+84LB2wYIF6tChg77++mv5+vqqWbNmOnjwoCZPnqyOHTsqPT3dYd3q1avVqlUrffrpp8rNzVWLFi108uRJvf7662rVqpVOnTrlsG7fvn264YYbNGvWLKWlpSk6OlqpqamaOXOmbrzxRu3fv7/MXhcAAAAAACpSlQ0ijDFq0qSJPvjgA509e1a//fabduzYocTERD333HOSpJdeeknLli2zq4uLi9PIkSOVm5uradOm6dixY9qxY4cOHDig66+/Xlu3btXEiRML9JeWlqaBAwcqIyNDY8eOVUJCgrZv3674+Hi1a9dOhw8f1siRIwvU5ebmqn///kpKSlLfvn11/Phxbd++XQkJCerTp48SExM1cOBA5eXllc8LBQAAAACAG1XZIKJ169aKjY3VY489pho1ati2+/j46F//+pe6desmSZo1a5Zd3fTp05WVlaWuXbtqwoQJslgskqRGjRrpo48+kiTNnDmzwOyGGTNm6MyZM2rWrJneeOMNeXt7S5JCQ0P16aefysvLS8uXL9eOHTvs6pYsWaJ9+/YpNDRUc+bMUUBAgCSpWrVqmjt3rkJDQ7V7924tXbq0DF8dAAAAAAAqRpUNIoKDg+XlVfjdSe+++25J0u+//27bZozRV199JUkOZy+0bdtWTZs2VXZ2doFgYMmSJZKk4cOHy9PT025fRESE7rrrLknSl19+6bBuwIABCgoKstsXFBSk/v37S5IWLVpU6HMBAAAAAKCyqLJBRHGsi076+/vbtsXHx+vEiROSpHbt2jmss27fsmWLbVtOTo62b99e4jpJ2rx5s0t1AAAAAABURldlEGGMsc0wyB8AHDhwQJLk6+ursLAwh7VRUVF2baVL60pkZ2fb7Xem7uLFi4qPj3eqLn8fAAAAAABUVoVfu1CFzZo1S7/88ot8fHz05JNP2rafO3dOklS9enXb2hCXs643YW17+df516Mori4lJcW2CGVxdXl5eUpNTVVoaKjD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Ch4lAAAAAACuI4i4wixbtkxvvvmmtm/fruzsbF177bUaMWKE/vrXvxJCAAAAAAAqPYIIAAAAAADgNixWCQAAAAAA3IYgAmXOGKP169drwoQJuu2221S9enX5+PgoLCxMffv21erVq4us37Rpk3r37q3atWvL399fzZs319SpU5WZmVlkXWxsrIYMGaL69evLz89PjRs31vjx45WcnFxkXUJCgkaPHq3w8HD5+voqIiJCjz76qBISEkr61HEVqSzn+Zo1a2SxWIp8zJgxw9WXAVWYu8/x5ORkffHFF3r66afVvn17BQQEyGKx2O4qVRzey+GKynKe814OV7n7HP/999/18ssvq2vXrqpXr568vb1Vs2ZN3XnnnZozZ47y8vKK7I/38quIAcrYypUrjSQjyXh4eJjrrrvO3HzzzSYwMNC2fdKkSQ5rP/nkE+Pp6WkkmQYNGpibb77ZeHt7G0nm1ltvNRcuXHBY99NPPxl/f38jydSuXdu0bNnSBAQEGEkmKirKnDx50mHdr7/+amrWrGkkmZCQENOyZUsTEhJiJJnQ0FATGxtbZq8LqpbKcp6vXr3aSDLBwcGmXbt2Dh//93//V6avDaoGd5/jX331le24+R9dunQpdqy8l8NVleU8570crnLnOZ6Tk2N3Xjds2NDccsstpk6dOrZtXbt2NRkZGQ7747386kIQgTL3448/miZNmpgPPvjAJCUl2bZnZWWZ5557zvZG9M0339jVHTlyxPj6+hpJZtq0aSYvL88YY0xcXJy5/vrrjSTz+OOPF+gvNTXV1K5d20gyY8eONRcvXjTGGHP27FnTrl07I8l07969QF1OTo5p3ry5kWT69u1rezM9f/686dOnj5FkbrjhBpObm1tmrw2qjspynlv/89qpU6cyfPa4Grj7HP/+++9Nx44dzfjx483ChQvNv/71L6c+oPFejtKoLOc57+VwlTvP8ezsbFO9enUzadIkc+jQIbt9X3zxhe2PKU8//XSBcfJefvUhiECZS0lJMdnZ2YXu79atm5FkevXqZbf9L3/5iy0pvdyGDRuMJOPt7V3gr77Tpk0zkkyzZs1MTk6O3b6jR48aLy8vI8ls377dbt/ChQttCWtqaqrdvtTUVBMaGmokmSVLljj1vHF1qSznOf95havcfY5fbs6cOU59QOO9HKVRWc5z3svhKnee43l5eXZh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\n",
      "text/plain": [
       "<Figure size 1200x700 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.rcParams.update({\"font.size\": 16})\n",
    "fig, ax = plt.subplots(figsize=(12,7))\n",
    "ax.bar(df_md[\"years\"], df_md[\"MD\"], color=\"C1\")\n",
    "ax.set_title(\"Number of MD publications per year\")\n",
    "ax.set_xlabel(\"Year\", weight=\"bold\")\n",
    "ax.set_ylabel(\"Number of publications\", weight=\"bold\")\n",
    "fig.savefig(\"fig/number_of_MD_papers_per_year.svg\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ed48118e-4b38-45bf-96b0-397dc9676c7a",
   "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.9.16"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}

back to top

Software Heritage — Copyright (C) 2015–2025, The Software Heritage developers. License: GNU AGPLv3+.
The source code of Software Heritage itself is available on our development forge.
The source code files archived by Software Heritage are available under their own copyright and licenses.
Terms of use: Archive access, API— Content policy— Contact— JavaScript license information— Web API