目录
一、案例背景
基因编辑作为生命科学领域的革命性技术,近年来取得了飞速发展。它能够精准地对生物体基因组进行修饰,为治疗疑难杂症、改良农作物性状、推动生物制药创新等方面带来了前所未有的机遇。像 CRISPR - Cas9 技术的出现,极大地简化和拓展了基因编辑的应用范围。然而,基因编辑行业在发展过程中面临着诸多挑战。伦理道德争议一直围绕着该技术,比如人类胚胎基因编辑引发了广泛的社会讨论。技术层面上,基因编辑的脱靶效应、效率提升以及长期安全性评估仍是亟待解决的问题。此外,严格且复杂的监管政策也给行业的商业化进程带来了一定阻碍。借助 Python 强大的数据分析能力,深入剖析基因编辑行业相关数据,能够助力科研机构优化研发方向、降低研发风险,帮助企业制定合理的市场策略,推动基因编辑行业健康、有序地发展。
二、代码实现
python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import requests
from bs4 import BeautifulSoup
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score
from statsmodels.tsa.arima.model import ARIMA
2.1 数据收集
数据来源丰富多样,涵盖权威学术期刊数据库(如 Web of Science、Nature Research)中基因编辑相关科研论文数据、行业研究机构(如 MarketsandMarkets、BCC Research)发布的市场报告数据、基因编辑企业的年报及财务数据,以及政府卫生健康和农业部门的监管政策与统计数据。
python
# 从Web of Science抓取基因编辑相关科研论文发表数量及引用情况数据
url = 'https://apps.webofknowledge.com/Search.do?product=WOS&search_mode=GeneralSearch&qid=1&SID=5G33fdsf2345fds&query=TITLE%3D(gene+editing)'
headers = {
'User - Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
}
response = requests.get(url, headers = headers)
soup = BeautifulSoup(response.text, 'html.parser')
paper_data = []
article_list = soup.find_all('div', class_='search - results - item')
for article in article_list:
title = article.find('span', class_='title').text.strip()
year = int(article.find('span', class_='publication - year').text.strip())
citation_count = int(article.find('span', class_='times - cited - count').text.strip())
paper_data.append({'Title': title, 'Year': year, 'Citation_Count': citation_count})
paper_df = pd.DataFrame(paper_data)
python
# 从MarketsandMarkets网站抓取全球基因编辑市场规模数据
market_url = 'https://www.marketsandmarkets.com/Market - Reports/gene - editing - market - 196500654.html'
market_response = requests.get(market_url, headers = headers)
market_soup = BeautifulSoup(market_response.text, 'html.parser')
market_size_data = []
market_table = market_soup.find('table', class_='market - size - table')
market_rows = market_table.find_all('tr')
for row in market_rows[1:]:
cols = row.find_all('td')
year = cols[0].text.strip()
market_size = float(cols[1].text.strip().replace('亿美元', ''))
market_size_data.append({'Year': year, 'Market_Size': market_size})
market_size_df = pd.DataFrame(market_size_data)
2.2 数据探索性分析
python
# 查看基因编辑科研论文数据基本信息
print(paper_df.info())
# 查看全球基因编辑市场规模数据基本信息
print(market_size_df.info())
python
# 分析基因编辑相关科研论文发表数量随时间变化趋势
paper_count_by_year = paper_df.groupby('Year').size().reset_index(name='Paper_Count')
plt.figure(figsize=(12, 6))
sns.lineplot(x='Year', y='Paper_Count', data=paper_count_by_year)
plt.title('Trend of Gene Editing - Related Research Paper Publications over Time')
plt.xlabel('Year')
plt.ylabel('Number of Papers')
plt.show()
python
#