您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Extract primer data and export as Excel (NCBI primer blast 引物数据提取及导出工具)
// ==UserScript== // @name NCBI Primer Data Extractor and Exporter // @namespace http://tampermonkey.net/ // @version 1.0 // @description Extract primer data and export as Excel (NCBI primer blast 引物数据提取及导出工具) // @author XY ZHAO // @match *://www.ncbi.nlm.nih.gov/tools/primer-blast/* // @grant none // @icon data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPg0KPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTUuMDMwMyAxLjQ2OTY3QzE1LjMyMzIgMS43NjI1NiAxNS4zMjMyIDIuMjM3NDQgMTUuMDMwMyAyLjUzMDMzQzE0LjYxNDUgMi45NDYxNCAxNC4yNDA4IDMuMzg4MyAxMy45MTA1IDMuODQ5OEwxNS4xMTcyIDUuMDU2NThDMTUuNDEwMSA1LjM0OTQ4IDE1LjQxMDEgNS44MjQzNSAxNS4xMTcyIDYuMTE3MjRDMTQuODI0NCA2LjQxMDE0IDE0LjM0OTUgNi40MTAxNCAxNC4wNTY2IDYuMTE3MjRMMTMuMTA4OCA1LjE2OTQyQzEyLjg5ODcgNS41ODM0MSAxMi43MjAzIDYuMDA2NTMgMTIuNTc0MyA2LjQzNDU4TDE3LjQ1MjYgMTEuMzEyOEMxNy40ODk0IDExLjM0OTYgMTcuNTIxNiAxMS4zODkzIDE3LjU0OTEgMTEuNDMxMkMxNy45NTcgMTEuMjkzIDE4LjM2MDQgMTEuMTI1MyAxOC43NTU4IDEwLjkyODhMMTUuNzQ4IDcuOTIwOTZDMTUuNDU1MSA3LjYyODA2IDE1LjQ1NTEgNy4xNTMxOSAxNS43NDggNi44NjAyOUMxNi4wNDA5IDYuNTY3NCAxNi41MTU4IDYuNTY3NCAxNi44MDg3IDYuODYwMjlMMjAuMDg0NSAxMC4xMzYyQzIwLjU2OTggOS43OTQ1IDIxLjAzNDIgOS40MDUxNyAyMS40Njk3IDguOTY5NjdDMjEuNzYyNiA4LjY3Njc4IDIyLjIzNzQgOC42NzY3OCAyMi41MzAzIDguOTY5NjdDMjIuODIzMiA5LjI2MjU2IDIyLjgyMzIgOS43Mzc0NCAyMi41MzAzIDEwLjAzMDNDMTkuOTA3NyAxMi42NTMgMTYuMjY2NSAxMy44ODM5IDEyLjk3MzYgMTMuMjQzNEMxMy43MjM1IDE2LjQxOCAxMi41NzM5IDE5Ljk4NjcgMTAuMDMwMyAyMi41MzAzQzkuNzM3NDQgMjIuODIzMiA5LjI2MjU2IDIyLjgyMzIgOC45Njk2NyAyMi41MzAzQzguNjc2NzggMjIuMjM3NCA4LjY3Njc4IDIxLjc2MjYgOC45Njk2NyAyMS40Njk3QzkuNDA2NDIgMjEuMDMyOSA5Ljc5MzA4IDIwLjU2NSAxMC4xMjc5IDIwLjA3NTNMOC43NzQzNiAxOC43MjE3QzguNDgxNDYgMTguNDI4OCA4LjQ4MTQ2IDE3Ljk1NCA4Ljc3NDM2IDE3LjY2MTFDOS4wNjcyNSAxNy4zNjgyIDkuNTQyMTIgMTcuMzY4MiA5LjgzNTAyIDE3LjY2MTFMMTAuODk3NSAxOC43MjM1QzExLjA4NCAxOC4zMjA5IDExLjIzODcgMTcuOTEwMyAxMS4zNjA4IDE3LjQ5NjFDMTEuMzQ0MyAxNy40ODIzIDExLjMyODMgMTcuNDY3NiAxMS4zMTI4IDE3LjQ1MjFMNi41MDA4MyAxMi42NDAxQzYuMDYxMTMgMTIuNzY5OSA1LjYyNTUyIDEyLjkzNjQgNS4xOTkyMSAxMy4xMzg4TDguMDMwMzMgMTUuOTY5OUM4LjMyMzIyIDE2LjI2MjggOC4zMjMyMiAxNi43Mzc3IDguMDMwMzMgMTcuMDMwNkM3LjczNzQ0IDE3LjMyMzUgNy4yNjI1NiAxNy4zMjM1IDYuOTY5NjcgMTcuMDMwNkwzLjg1NzUxIDEzLjkxODRDMy4zOTIyIDE0LjI0MjUgMi45NDcwNyAxNC42MTM2IDIuNTMwMzMgMTUuMDMwM0MyLjIzNzQ0IDE1LjMyMzIgMS43NjI1NiAxNS4zMjMyIDEuNDY5NjcgMTUuMDMwM0MxLjE3Njc4IDE0LjczNzQgMS4xNzY3OCAxNC4yNjI2IDEuNDY5NjcgMTMuOTY5N0M0LjAxMzI2IDExLjQyNjEgNy41ODE5NSAxMC4yNzY1IDEwLjc1NjYgMTEuMDI2NEMxMC4xMTYxIDcuNzMzNTIgMTEuMzQ3IDQuMDkyMzQgMTMuOTY5NyAxLjQ2OTY3QzE0LjI2MjYgMS4xNzY3OCAxNC43Mzc0IDEuMTc2NzggMTUuMDMwMyAxLjQ2OTY3Wk0xNS44NTA5IDExLjgzMjVMMTIuMTY3NSA4LjE0OTA5QzEyLjAwOTQgOS4zMTg0NSAxMi4wOTQ3IDEwLjQ4MzIgMTIuNDM5IDExLjU2MUMxMy41MTY4IDExLjkwNTMgMTQuNjgxNSAxMS45OTA2IDE1Ljg1MDkgMTEuODMyNVpNMTEuMzMwMyAxMi45NTRDMTEuNjI5IDEzLjgyMTUgMTEuNzQzMyAxNC43NTQyIDExLjY4MjYgMTUuNzAwNkw4LjI5OTQzIDEyLjMxNzRDOS4yNDU4MSAxMi4yNTY3IDEwLjE3ODUgMTIuMzcxIDExLjA0NiAxMi42Njk3TDExLjI1NzUgMTIuNzQyNUwxMS4zMzAzIDEyLjk1NFoiIGZpbGw9IiMxQzI3NEMiLz4NCjwvc3ZnPg== // @license MIT License // ==/UserScript== (function() { 'use strict'; // Dynamically load SheetJS const script = document.createElement('script'); script.src = 'https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.16.9/xlsx.full.min.js'; script.onload = function() { // SheetJS is now loaded and can be used init(); }; document.head.appendChild(script); function init() { window.addEventListener('load', function() { let pairId = 1; // Initialize pair ID // Extract primer data function extractPrimerData() { const primerData = []; document.querySelectorAll('.prPairInfo').forEach((div) => { const rows = div.querySelectorAll('tr'); // Extract forward primer info const forwardPrimerInfo = { PairID: pairId, Type: 'Forward', Sequence: rows[1].children[1].textContent, Strand: rows[1].children[2].textContent, Length: rows[1].children[3].textContent, Start: rows[1].children[4].textContent, Stop: rows[1].children[5].textContent, Tm: rows[1].children[6].textContent, GC: rows[1].children[7].textContent, SelfComplementarity: rows[1].children[8].textContent, Self3Complementarity: rows[1].children[9].textContent, ProductSize: rows[4].children[1].textContent }; primerData.push(forwardPrimerInfo); // Extract reverse primer info const reversePrimerInfo = { PairID: pairId, Type: 'Reverse', Sequence: rows[2].children[1].textContent, Strand: rows[2].children[2].textContent, Length: rows[2].children[3].textContent, Start: rows[2].children[4].textContent, Stop: rows[2].children[5].textContent, Tm: rows[2].children[6].textContent, GC: rows[2].children[7].textContent, SelfComplementarity: rows[2].children[8].textContent, Self3Complementarity: rows[2].children[9].textContent, ProductSize: rows[4].children[1].textContent // Assuming product size is the same for both }; primerData.push(reversePrimerInfo); pairId++; // Increment pair ID for the next pair }); return primerData; } // Export to Excel function exportToExcel(primerData) { // Create a new workbook const wb = XLSX.utils.book_new(); // Convert primer data to worksheet const ws = XLSX.utils.json_to_sheet(primerData); // Add worksheet to workbook XLSX.utils.book_append_sheet(wb, ws, "Primer Data"); // Generate Excel file and trigger download XLSX.writeFile(wb, "primer_data.xlsx"); } // Create and add export button to the page const exportButton = document.createElement('button'); exportButton.textContent = 'Export to Excel'; exportButton.style.position = 'fixed'; exportButton.style.top = '10px'; exportButton.style.right = '10px'; exportButton.addEventListener('click', function() { const primerData = extractPrimerData(); exportToExcel(primerData); }); document.body.appendChild(exportButton); }); } })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址