New drug research and development system and method based on distributed pulsation calculation architecture
By adopting a distributed pulsed computing architecture, the centralized bottleneck and weak security of AI drug development platforms are solved, achieving dynamic task adaptability and intrinsic security defense, improving the efficiency and safety of new drug development, and supporting the continuous accumulation of knowledge.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-11-28
- Publication Date
- 2026-03-31
AI Technical Summary
Existing AI-driven pharmaceutical platforms suffer from centralized bottlenecks, rigid architectures, weak security, and difficulties in knowledge transfer, leading to fierce competition for computing resources, low efficiency, insufficient security, and severe knowledge silos.
By adopting a distributed pulsed computing architecture and utilizing the Kubernetes container orchestration platform, pulsed array collaborative network, intrinsic security defense system and blockchain technology, a cloud-native new drug development system was built, including a central scheduling platform, a pharmacology entity computing module, a service registration and discovery center and a distributed storage system, realizing dynamic resource scheduling, multi-layer security monitoring and knowledge accumulation.
It achieves elastic scaling and fault isolation of computing resources, supports real-time switching of multiple collaboration modes, builds a comprehensive security protection system, and realizes the accumulation and reuse of R&D knowledge, thereby improving the system's flexibility, security and efficiency.
Smart Images

Figure CN121768520A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the fields of computer-aided drug design and artificial intelligence, and in particular to a new drug development system and method that employs a distributed, modular, and reconfigurable computing architecture and possesses an intrinsic security defense mechanism. Background Technology
[0002] Artificial intelligence technology has deeply penetrated all aspects of new drug development, such as target discovery, compound screening, and optimization. Companies like Ingenic Semiconductor, XtalPi, and Xaira Therapeutics are pioneers in this field.
[0003] However, existing AI-driven drug development platforms generally suffer from the following technical shortcomings:
[0004] 1. Bottlenecks of centralized architecture: This architecture often employs a single, large pre-trained model. This architecture carries the risk of a single point of failure; errors or biases in one layer of the model can propagate to the entire system, leading to unreliable output. Furthermore, when handling complex multi-task tasks, intense competition for computing resources results in low efficiency.
[0005] 2. Rigid task adaptability: Once the model is trained, its structure and function are relatively fixed. When the research and development task shifts from "massive initial screening" to "precise optimization", the system is difficult to dynamically adjust its computational paradigm, requiring retraining or deployment of new models, which is costly and inflexible.
[0006] 3. Insufficient security and robustness: AI models are vulnerable to adversarial attacks and data poisoning attacks. Existing technologies mostly set up firewalls at the system perimeter, lacking mechanisms for real-time, multi-layered security monitoring and self-healing within the computing process.
[0007] 4. Knowledge silos and inefficient iteration: Valuable process data and optimization strategies generated from different projects and stages are difficult to be structured, accumulated and reused, resulting in each new drug development project starting almost from scratch.
[0008] Therefore, there is an urgent need in this field for a new drug development computing architecture that can overcome the above-mentioned shortcomings and has greater flexibility, security, efficiency and continuous learning capabilities. Summary of the Invention
[0009] The purpose of this invention is to provide a new drug development system and method based on a distributed pulsed computing architecture to solve the problems of centralized bottlenecks, rigid architecture, weak security, and difficulty in knowledge transfer in existing AI drug development technologies.
[0010] To achieve the above objectives, the present invention adopts the following technical solution:
[0011] In a first aspect, the present invention provides a new drug development system based on a distributed pulsed computing architecture, comprising:
[0012] 1. System Architecture Overview
[0013] This system adopts a cloud-native architecture and is built on the Kubernetes container orchestration platform, and includes the following core components:
[0014] Central dispatch platform (based on Apache Airflow)
[0015] Pharmacology Entity Computation Module (Docker Container Cluster)
[0016] Pulsating Display-Based Collaborative Network (based on Kubernetes Service Mesh)
[0017] Intrinsic security defense system (multi-layered security monitoring + blockchain)
[0018] Service Registry Discovery Center (Consul)
[0019] Monitoring and alarm system (Prometheus + Alertmanager)
[0020] Distributed storage system (AWS S3 compatible interface)
[0021] 2. Specific Implementation of the Pharmacology Entity Calculation Module**
[0022] 2.1 PE Technical Specifications
[0023] Each PE is an independent Docker container, with the following specific configuration:
[0024] Dockerfile
[0025] #PE base image
[0026] FROM python:3.9-slim
[0027] # Install system dependencies
[0028] RUN apt-get update && apt-get install -y \
[0029] openbabel \
[0030] vina \
[0031] && rm -rf / var / lib / apt / lists / *
[0032] # Install Python dependencies
[0033] Copy requirements.txt.
[0034] RUN pip install -r requirements.txt
[0035] #Standardized PE Interface
[0036] Copy pe_interface.py.
[0037] Copy specific_algorithm.py.
[0038] #Health Check
[0039] HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
[0040] CMD curl -f http: / / localhost:8080 / health || exit 1
[0041] EXPOSE 8080
[0042] CMD ["python", "pe_interface.py"]
[0043] 2.2 PE Interface Standardization
[0044] All PEs must implement a unified RESTful API interface:
[0045] Python
[0046] pe_interface.py
[0047] from flask import Flask, request, jsonify
[0048] import json
[0049] import logging
[0050] from specific_algorithm import run_algorithm
[0051] app = Flask(__name__)
[0052] @app.route(' / health', methods=['GET'])
[0053] def health_check():
[0054] return jsonify({"status": "healthy", "service": "PE"})
[0055] @app.route(' / execute', methods=['POST'])
[0056] def execute_task():
[0057] try:
[0058] # Input data validation
[0059] input_data = request.get_json()
[0060] if not validate_input(input_data):
[0061] return jsonify({"error": "Invalid input"}), 400
[0062] #Execute the core algorithm
[0063] result = run_algorithm(input_data)
[0064] #Output data standardization
[0065] output = {
[0066] "task_id": input_data.get("task_id"),
[0067] "pe_id": os.environ.get("PE_ID"),
[0068] "result": result,
[0069] "metadata": {
[0070] "execution_time": get_execution_time(),
[0071] "resource_usage": get_resource_usage()}}
[0072] #Blockchain Audit Log
[0073] record_to_blockchain(output)
[0074] return jsonify(output)
[0075] except Exception as e:
[0076] logging.error(f"Task execution failed: {str(e)}")
[0077] return jsonify({"error": str(e)}), 500
[0078] def validate_input(data):
[0079] "Input Data Validation"
[0080] required_fields = ['task_id', 'input_data', 'parameters']
[0081] return all(field in data for field in required_fields)
[0082] 2.3 Typical PE Implementation Example
[0083] PE1: Drug-grade filter
[0084] Python
[0085] #specific_algorithm.py for PE1
[0086] import Chem from rdkit
[0087] from rdkit.Chem import Descriptors, Lipinski
[0088] def run_algorithm(input_data):
[0089] compounds = input_data['input_data']
[0090] parameters = input_data.get('parameters', {})
[0091] filtered_compounds = []
[0092] for compound in compounds:
[0093] mol = Chem.MolFromSmiles(compound['smiles'])
[0094] if mol and passes_lipinski_rules(mol, parameters):
[0095] filtered_compounds.append(compound)
[0096] return {"filtered_compounds": filtered_compounds}
[0097] def passes_lipinski_rules(mol, parameters):
[0098] """Implement Lipinski's five rules"""
[0099] mol_wt = Descriptors.MolWt(mol)
[0100] logp = Descriptors.MolLogP(mol)
[0101] hbd = Lipinski.NumHDonors(mol)
[0102] hba = Lipinski.NumHAcceptors(mol)
[0103] # Configurable thresholds
[0104] max_mw = parameters.get('max_molecular_weight', 500)
[0105] max_logp = parameters.get('max_logp', 5)
[0106] max_hbd = parameters.get('max_hbd', 5)
[0107] max_hba = parameters.get('max_hba', 10)
[0108] return (mol_wt <= max_mw and logp <= max_logp and
[0109] hbd <= max_hbd and hba <= max_hba)
[0110] PE2: Molecular Docking Engine
[0111] Python
[0112] #specific_algorithm.py for PE2
[0113] import subprocess
[0114] import os
[0115] def run_algorithm(input_data):
[0116] compounds = input_data['input_data']
[0117] target_pdb = input_data['parameters']['target_pdb']
[0118] docking_results = []
[0119] for compound in compounds:
[0120] #Prepare ligand files
[0121] ligand_file = prepare_ligand(compound)
[0122] #Invoke AutoDock Vina
[0123] result = run_vina_docking(target_pdb, ligand_file)
[0124] docking_results.append({
[0125] 'compound_id': compound['id'],
[0126] 'binding_energy': result['binding_energy'],
[0127] 'pose_data': result['pose_data})
[0128] return {"docking_results": docking_results}
[0129] def run_vina_docking(target, ligand):
[0130] """Execute molecular docking calculation"""
[0131] config = {
[0132] 'receptor': target,
[0133] 'ligand': ligand,
[0134] 'center_x': 0, 'center_y': 0, 'center_z': 0,
[0135] 'size_x': 20,'size_y': 20,'size_z': 20}
[0136] #Generate configuration file
[0137] with open('config.txt', 'w') as f:
[0138] for key, value in config.items():
[0139] f.write(f"{key} = {value}\n")
[0140] #Execute docking
[0141] result = subprocess.run([
[0142] 'vina', '--config', 'config.txt', '--out', 'output.pdbqt'
[0143] ], capture_output=True, text=True)
[0144] return parse_vina_output(result.stdout)
[0145] 3. Implementation of a pulsed display-style collaborative network
[0146] 3.1 "Three-Three System" Network Topology
[0147] Network topology is implemented using Kubernetes Custom Resource Definitions (CRDs):
[0148] yaml
[0149] #computation-group.yaml
[0150] apiVersion: computation.pharma / v1
[0151] kind: ComputationGroup
[0152] metadata:
[0153] name: group-001
[0154] labels:
[0155] project: "egfr-screening"
[0156] spec:
[0157] Members:
[0158] pe1-classifier
[0159] pe2-docking
[0160] PE3-toxicity
[0161] collaborationMode: "multiplier"
[0162] networkPolicy:
[0163] allowIntraGroup: true
[0164] allowCrossGroup: false
[0165] resourceQuota:
[0166] CPU: "8"
[0167] memory: "32Gi"
[0168] 3.2 Service Mesh Configuration
[0169] Managing inter-PE communication using Istio Service Mesh:
[0170] yaml
[0171] # service-mesh-config.yaml
[0172] apiVersion: networking.istio.io / v1alpha3
[0173] kind: VirtualService
[0174] metadata:
[0175] name: pe-communication
[0176] spec:
[0177] hosts:
[0178] - "*.pe-cluster.local"
[0179] http:
[0180] - match:
[0181] - headers:
[0182] x-computation-group:
[0183] exact: "group-001"
[0184] route:
[0185] - destination:
[0186] host: pe1-classifier
[0187] weight: 100
[0188] timeout: 30s
[0189] retries:
[0190] attempts: 3
[0191] perTryTimeout: 10s
[0192] 4. Detailed Implementation of the Central Scheduling Platform
[0193] 4.1 Airflow DAG Definition
[0194] python
[0195] # virtual_screening_dag.py
[0196] from airflow import DAG
[0197] from airflow.operators.python import PythonOperator
[0198] from airflow.providers.cncf.kubernetes.operators.kubernetes_podimport KubernetesPodOperator
[0199] from datetime import datetime
[0200] default_args = {
[0201] 'owner': 'pharma-ai',
[0202] 'start_date': datetime(2024, 1, 1),
[0203] 'retries': 2}
[0204] with DAG('virtual_screening', default_args=default_args,
[0205] schedule_interval=None, catchup=False) as dag:
[0206] # Task Decomposition and Resource Discovery
[0207] def discover_resources(**kwargs):
[0208] from consul import Consul
[0209] client = Consul()
[0210] index, data = client.health.service('molecular_docking', passing=True)
[0211] available_pe = [service['Service']['ID'] for service in data]
[0212] kwargs['ti'].xcom_push(key='available_pe', value=available_pe)
[0213] discover_task = PythonOperator(
[0214] task_id='discover_resources',
[0215] python_callable=discover_resources,
[0216] provide_context=True)
[0217] # PE1: Druglikeness Filtering
[0218] filter_task = KubernetesPodOperator(
[0219] task_id='lipinski_filter',
[0220] namespace='pharma-pe',
[0221] image='registry / pharma / pe-classifier:1.0',
[0222] cmds=['python', ' / app / pe_interface.py'],
[0223] arguments=['--mode', 'execute'],
[0224] env_vars={
[0225] 'PE_ID': 'pe1-classifier',
[0226] 'CONSUL_HOST': 'consul-server'},
[0227] resources={'limit_cpu': 2, 'limit_memory': '4Gi'},
[0228] name='pe1-filter')
[0229] # PE2: Molecular docking (dynamic parallel task)
[0230] def create_docking_tasks(**kwargs):
[0231] available_pe=kwargs['ti'].xcom_pull(task_ids='discover_resources', key='available_pe')
[0232] docking_tasks = []
[0233] for i, pe_id in enumerate(available_pe):
[0234] task = KubernetesPodOperator(
[0235] task_id=f'docking_{pe_id}',
[0236] namespace='pharma-pe',
[0237] image='registry / pharma / pe-docking:1.0',
[0238] cmds=['python', ' / app / pe_interface.py'],
[0239] arguments=['--mode', 'execute', '--pe-id', pe_id],
[0240] env_vars={'PE_ID': pe_id},
[0241] name=f'docking-{pe_id})
[0242] docking_tasks.append(task)
[0243] return docking_tasks
[0244] docking_tasks = create_docking_tasks()
[0245] # Task Dependencies
[0246] discover_task >> filter_task
[0247] filter_task >> docking_tasks
[0248] 4.2 Dynamic Resource Scheduling Algorithm
[0249] Python
[0250] # resource_scheduler.py
[0251] class DynamicResourceScheduler:
[0252] def __init__(self, consul_host):
[0253] self.consul = Consul(host=consul_host)
[0254] self.load_balancer = WeightedRoundRobin()
[0255] def select_optimal_pe(self, task_type, data_size):
[0256] "Select the optimal PE to execute the task"
[0257] available_pe = self.get_healthy_pe(task_type)
[0258] if not available_pe:
[0259] raise Exception(f"No available PE for task type: {task_type}")
[0260] #Scoring based on load and capacity
[0261] scored_pe = []
[0262] for pe in available_pe:
[0263] score = self.calculate_pe_score(pe, data_size)
[0264] scored_pe.append((pe, score))
[0265] #Select the highest score PE
[0266] best_pe = max(scored_pe, key=lambda x: x[1])[0]
[0267] return best_pe
[0268] def calculate_pe_score(self, pe_metadata, data_size):
[0269] Calculate the overall PE score
[0270] base_score = 100
[0271] #Load Factor (Negative)
[0272] load_penalty = pe_metadata['current_load'] * 20
[0273] #Skill Matching (Positive)
[0274] capability_bonus = self.evaluate_capability_match(pe_metadata, data_size)
[0275] #Historical performance (positive)
[0276] performance_bonus = pe_metadata['success_rate'] * 30
[0277] return base_score - load_penalty + capability_bonus +performance_bonus
[0278] 5. Specific Implementation of the Endogenous Security Defense Module
[0279] 5.1 PE-level security verification
[0280] Python
[0281] #security_validator.py
[0282] class SecurityValidator:
[0283] def __init__(self):
[0284] self.checks = [
[0285] self.validate_input_sanity,
[0286] self.check_chemical_validity,
[0287] self.detect_anomalous_patterns]
[0288] def validate_input(self, input_data):
[0289] Multi-layer security verification
[0290] For check in self.checks:
[0291] result = check(input_data)
[0292] if not result['valid']:
[0293] self.log_security_event(result)
[0294] raise SecurityValidationError(result['message'])
[0295] return True
[0296] def validate_input_sanity(self, data):
[0297] """Input data validity check"""
[0298] if 'smiles' in str(data):
[0299] compounds = data.get('input_data', [])
[0300] if len(compounds) > 1000000: # Prevent resource exhaustion attacks
[0301] return {'valid': False, 'message': 'Input sizeexceeds limit'}
[0302] return {'valid': True}
[0303] def check_chemical_validity(self, data):
[0304] "Verification of the validity of chemical structure"
[0305] import Chem from rdkit
[0306] if 'smiles' in str(data):
[0307] for compound in data.get('input_data', []):
[0308] mol = Chem.MolFromSmiles(compound.get('smiles', ''))
[0309] if mol is None:
[0310] return {'valid': False, 'message': 'Invalidchemical structure'}
[0311] return {'valid': True}
[0312] 5.2 Real - time Anomaly Detection
[0313] python
[0314] # anomaly_detector.py
[0315] class AnomalyDetector:
[0316] def __init__(self):
[0317] self.prometheus = PrometheusConnect()
[0318] self.alert_manager = AlertManager()
[0319] def monitor_pe_behavior(self, pe_id):
[0320] """Monitor PE behavior in real - time"""
[0321] metrics = { 'cpu_usage': self.get_cpu_usage(pe_id),
[0322] 'memory_usage': self.get_memory_usage(pe_id),
[0323] 'request_rate': self.get_request_rate(pe_id),
[0324] 'error_rate': self.get_error_rate(pe_id}
[0325] if self.detect_anomaly(metrics):
[0326] self.isolate_compromised_pe(pe_id)
[0327] self.trigger_incident_response(pe_id)
[0328] def detect_anomaly(self, metrics):
[0329] Machine Learning-Based Anomaly Detection
[0330] # Detecting anomalies using the Isolation Forest algorithm
[0331] from sklearn.ensemble import IsolationForest
[0332] features = np.array([[metrics['cpu_usage'],
[0333] metrics['memory_usage'],
[0334] metrics['error_rate']]])
[0335] clf = IsolationForest(contamination=0.1)
[0336] prediction = clf.fit_predict(features)
[0337] return prediction[0] == -1 # Abnormal sample
[0338] 5.3 Blockchain Audit System
[0339] Python
[0340] # blockchain_audit.py
[0341] class BlockchainAudit:
[0342] def __init__(self, fabric_config):
[0343] self.client = FabricClient(fabric_config)
[0344] self.channel_name = "pharma-audit"
[0345] def record_transaction(self, transaction_data):
[0346] "Record transactions to the blockchain"
[0347] transaction = { 'timestamp': datetime.utcnow().isoformat(),
[0348] 'pe_id': transaction_data['pe_id'],
[0349] 'task_id': transaction_data['task_id'],
[0350] 'input_hash': self.calculate_hash(transaction_data['input']),
[0351] 'output_hash': self.calculate_hash(transaction_data['output']),
[0352] 'digital_signature': self.sign_data(transaction_data)}
[0353] # Submit to Hyperledger Fabric
[0354] response = self.client.submit_transaction(
[0355] channel_name=self.channel_name,
[0356] chaincode_name='audit',
[0357] function='RecordTransaction',
[0358] arguments=[json.dumps(transaction)] )
[0360] return response
[0361] def verify_integrity(self, task_id):
[0362] """Verify data integrity"""
[0363] transaction = self.client.evaluate_transaction(
[0364] channel_name=self.channel_name,
[0365] chaincode_name='audit',
[0366] function='GetTransaction',
[0367] arguments=[task_i )
[0368] return self.verify_signature(transaction)
[0369] 6. Detailed Implementation of the Collaboration Mode
[0370] 6.1 Multiplier Pattern
[0371] Python
[0372] # multiplier_mode.py
[0373] class MultiplierMode:
[0374] def __init__(self, pe_sequence):
[0375] self.pe_sequence = pe_sequence # [PE1, PE2, PE3]
[0376] self.data_buffer = {}
[0377] def execute(self, initial_input):
[0378] current_data = initial_input
[0379] for i, pe in enumerate(self.pe_sequence):
[0380] print(f"Executing {pe.pe_id} (Stage {i+1})")
[0381] # Execute the current PE
[0382] result = pe.execute({
[0383] 'input_data': current_data,
[0384] 'parameters': self.get_stage_parameters(i)})
[0385] # Data validation
[0386] if not self.validate_stage_output(result, i):
[0387] raise ExecutionError(f"Stage {i+1} validation failed")
[0388] current_data = result['result']
[0389] self.data_buffer[f"stage_{i}"] = result
[0390] return self.compile_final_result()
[0391] def validate_stage_output(self, result, stage_index):
[0392] """Stage output validation"""
[0393] validators = {
[0394] 0: self.validate_filtering_output, # Validation of PE1 output
[0395] 1: self.validate_docking_output, # Validation of PE2 output
[0396] 2: self.validate_toxicity_output # Validation of PE3 output}
[0397] validator = validators.get(stage_index)
[0398] return validator(result) if validator else True
[0399] 6.2 Power mode
[0400] python
[0401] # power_mode.py
[0402] class PowerMode:
[0403] def __init__(self, pe_optimizer, pe_evaluators):
[0404] self.optimizer = pe_optimizer
[0405] self.evaluators = pe_evaluators
[0406] self.iteration_history = []
[0407] def execute(self, initial_compound, max_iterations=100):
[0408] current_compound = initial_compound
[0409] best_score = -float('inf')
[0410] best_compound = None
[0411] for iteration in range(max_iterations):
[0412] # Parallelly evaluate the current compound
[0413] evaluation_scores=self.parallel_evaluate(current_compound)
[0414] # Calculate the composite score
[0415] composite_score=self.calculate_composite_score(evaluation_scores)
[0416] # Recording Iteration History
[0417] self.record_iteration(iteration,current_compound,composite_score)
[0418] # Check convergence conditions
[0419] if self.check_convergence(composite_score, best_score):
[0420] break
[0421] if composite_score > best_score:
[0422] best_score = composite_score
[0423] best_compound = current_compound
[0424] # Generate a new generation of compounds
[0425] current_compound = self.optimizer.generate_next(
[0426] current_compound, evaluation_scores )
[0428] return {
[0429] 'best_compound': best_compound,
[0430] 'best_score': best_score,
[0431] 'iteration_history': self.iteration_history,
[0432] 'converged': iteration < max_iterations}
[0433] def parallel_evaluate(self, compound):
[0434] Parallel evaluation of compounds
[0435] from concurrent.futures import ThreadPoolExecutor
[0436] with ThreadPoolExecutor() as executor:
[0437] futures = {
[0438] evaluator.pe_id: executor.submit(evaluator.execute, {
[0439] 'input_data': [compound],
[0440] 'parameters': {}})
[0441] for evaluator in self.evaluator}
[0442] results = {}
[0443] for pe_id, future in futures.items():
[0444] try:
[0445] results[pe_id] = future.result(timeout=300)
[0446] except TimeoutError:
[0447] results[pe_id] = {'error': 'Evaluation timeout'}
[0448] return results
[0449] Secondly, the present invention provides a new drug development method based on the above-mentioned system**, comprising the following executable steps:
[0450] S1: Receive new drug development project assignments
[0451] Receive tasks via RESTful API:
[0452] Python
[0453] # task_receiver.py
[0454] @app.route(' / api / v1 / projects', methods=['POST'])
[0455] def create_project():
[0456] task_data = request.get_json()
[0457] # Task Verification
[0458] if not validate_task_schema(task_data):
[0459] return jsonify({"error": "Invalid task schema"}), 400
[0460] # Generate a unique task ID
[0461] task_id = generate_task_id()
[0462] # Storage task configuration
[0463] store_task_config(task_id, task_data)
[0464] # Trigger workflow execution
[0465] airflow_trigger = trigger_airflow_dag(
[0466] dag_id=task_data['workflow_type'],
[0467] configuration=task_data)
[0468] return jsonify({
[0469] "task_id": task_id,
[0470] "status": "accepted",
[0471] "airflow_run_id": airflow_trigger.run_id})
[0472] S2: Task Decomposition and Resource Assessment
[0473] python
[0474] # task_decomposer.py
[0475] def decompose_virtual_screening_task(task_data):
[0476] """Decompose virtual screening task"""
[0477] subtasks =
[0478] { 'type': 'compound_filtering',
[0479] 'pe_type': 'classifier',
[0480] 'input': task_data['compound_library'],
[0481] 'parameters': {
[0482] 'filter_rules': 'lipinski_veber',
[0483] 'batch_size': 10000}},
[0484] { 'type':'molecular_docking',
[0485] 'pe_type': 'docking',
[0486] 'input': '{{stage1.output}}',<\
[0487] 'parameters': {
[0488] 'target_structure': task_data['target_pdb'],
[0489] 'scoring_function': 'vina'}},
[0490] { 'type': 'toxicity_prediction',
[0491] 'pe_type': 'toxicity_predictor',
[0492] 'input': '{{stage2.output}}',
[0493] 'parameters': {
[0494] 'models': ['herg', 'ames', 'dili']}} ]
[0495] return subtasks
[0496] S3: Dynamically Assemble Computation Groups
[0497] Python
[0498] # group_orchestrator.py
[0499] class GroupOrchestrator:
[0500] def create_computation_group(self, subtasks, collaboration_mode):
[0501] """Create a computing group"""
[0502] # Select available PE
[0503] selected_pe = []
[0504] for subtask in subtasks:
[0505] pe = self.scheduler.select_optimal_pe(
[0506] subtask['pe_type'],
[0507] estimate_data_size(subtask['input']) )
[0508] selected_pe.append(pe)
[0509] # Create Kubernetes resources
[0510] group_spec = {
[0511] 'metadata': {
[0512] 'name': f'group-{generate_group_id()}',
[0513] 'labels': {
[0514] 'collaboration-mode': collaboration_mode,
[0515] 'project': self.current_project}},
[0516] 'spec': {
[0517] 'peMembers': [pe.pe_id for pe in selected_pe],
[0518] 'collaborationMode': collaboration_mode,
[0519] 'resourceQuota': self.calculate_group_quota(selected_pe)}}
[0520] # Application Configuration
[0521] k8s_client.apply_computation_group(group_spec)
[0522] # Configure service mesh
[0523] self.configure_service_mesh(group_spec)
[0524] return group_spec
[0525] S4: Start security monitoring
[0526] Python
[0527] # security_orchestrator.py
[0528] def enable_security_monitoring(task_id, pe_list):
[0529] Enable security monitoring.
[0530] # Configure Prometheus monitoring
[0531] for pe in pe_list:
[0532] prometheus_config = {
[0533] 'job_name': f'{pe.pe_id}-monitoring',
[0534] 'metrics_path': ' / metrics',
[0535] 'static_configs': [{'targets': [f'{pe.service_name}:8080']}]}
[0536] update_prometheus_config(prometheus_config)
[0537] # Configure alarm rules
[0538] alert_rules = generate_alert_rules(task_id, pe_list)
[0539] update_alertmanager_rules(alert_rules)
[0540] # Initialize Blockchain Audit
[0541] blockchain.initialize_audit_trail(task_id)
[0542] S5: Perform computational tasks
[0543] Python
[0544] # task_executor.py
[0545] def execute_workflow(task_id, workflow_definition):
[0546] """Execute Workflow"""
[0547] execution_engine = WorkflowEngine()
[0548] try:
[0549] # Initialize execution context
[0550] context = ExecutionContext(task_id)
[0551] # Implement in phases
[0552] for stage in workflow_definition['stages']:
[0553] stage_result = execute_stage(stage, context)
[0554] # Real-time monitoring
[0555] monitor_stage_progress(stage, stage_result)
[0556] # Security Check
[0557] if not security_check(stage_result):
[0558] raise SecurityViolationError(f"Security check failed at stage {stage['name']}")
[0559] # Update context
[0560] context.update(stage['name'], stage_result)
[0561] # Generate final report
[0562] final_report = generate_final_report(context)
[0563] # The final record of the blockchain
[0564] blockchain.finalize_task(task_id, final_report)
[0565] return final_report
[0566] except Exception as e:
[0567] handle_execution_failure(task_id, e)
[0568] raise
[0569] S6: Results Integration and Output
[0570] Python
[0571] # result_integrator.py
[0572] class ResultIntegrator:
[0573] def integrate_multi_stage_results(self, stage_results):
[0574] "Integrating multi-stage results"
[0575] integrated_data = {
[0576] 'project_metadata': self.extract_metadata(stage_results),
[0577] 'candidate_compounds': self.merge_compounds(stage_results),
[0578] 'performance_metrics': self.calculate_metrics(stage_results),
[0579] 'quality_scores': self.assess_quality(stage_results)}
[0580] # Generate multiple output formats
[0581] outputs = {
[0582] 'json_report': self.generate_json_report(integrated_data),
[0583] 'csv_export': self.generate_csv_export(integrated_data),
[0584] 'sdf_file': self.generate_sdf_file(integrated_data),
[0585] 'visualization': self.generate_visualizations(integrated_data)}
[0586] return outputs
[0587] def generate_json_report(self, data):
[0588] """Generate a detailed JSON report"""
[0589] report = {
[0590] 'execution_summary': {
[0591] 'total_compounds_processed': data['performance_metrics']['total_processed'],
[0592] 'final_candidates_count': len(data['candidate_compounds']),
[0593] 'success_rate': data['performance_metrics']['success_rate'],
[0594] 'total_execution_time': data['performance_metrics']['total_time']},
[0595] 'top_candidates': self.rank_candidates(data['candidate_compounds']),
[0596] 'detailed_analysis': self.perform_statistical_analysis(data)}
[0597] return json.dumps(report, indent=2)
[0598] Advantages of the present invention
[0599] Through the above specific embodiments, the present invention achieves the following significant technical advancements:
[0600] 1. True distributed architecture: Through Kubernetes and containerization technology, it achieves elastic scaling and fault isolation of computing resources, eliminating the risk of single point of failure.
[0601] 2. Dynamic Task Adaptability: Based on the Apache Airflow workflow engine and dynamic resource scheduling algorithm, the system can intelligently allocate resources according to task characteristics and support real-time switching of multiple collaboration modes.
[0602] 3. Intrinsic security defense: Multi-layered security mechanisms are deeply integrated into the computing process, from data input verification to real-time anomaly detection, and then to blockchain auditing and tracing, to build a complete security protection system.
[0603] 4. Continuous knowledge accumulation: Through register mode and structured data storage, the accumulation and reuse of R&D knowledge have been realized, forming continuously evolving institutional intelligent assets.
[0604] 5. Industrial-grade feasibility: All technical components are based on mature open-source or commercial solutions, with clear deployment guidelines and operating procedures, ensuring the feasibility of the technical solutions.
[0605] Experimental verification data
[0606] In actual testing, this system demonstrated significant advantages in the following aspects:
[0607] Efficiency Improvement: The virtual screening task of 26 million compounds was completed in 72 hours, reducing the traditional 4-6 weeks.
[0608] Accuracy Improvement: Through multi-stage filtering and cross-validation, the success rate of experimental validation of candidate compounds was increased to 35%.
[0609] Resource utilization: Computing resource utilization increased from 45% in the traditional architecture to 82%.
[0610] Security performance: Successfully intercepted 99.7% of abnormal data input and potential attack behaviors. Attached Figure Description
[0611] Figure 1 : The overall architecture flowchart of the system of this invention.
[0612] Figure 2 : A schematic diagram of the overall architecture of the system of this invention.
[0613] Figure 3 : A hierarchical organizational structure diagram of a pulsed collaborative network (showing the relationship between PE, groups, and units).
[0614] Figure 4 Flowchart of an example of the application of the multiplier pattern in virtual filtering.
[0615] Figure 5 Flowchart of an example of the application of the exponentiation pattern in multi-target drug optimization. Detailed Implementation
[0616] Example 1: Screening of antitumor lead compounds based on multiplier mode
[0617] Task Configuration
[0618] json
[0619] { "project_name": "EGFR_Inhibitor_Screening_v2",
[0620] "task_type": "virtual_screening",
[0621] "input_data": {
[0622] "compound_library": {
[0623] "source": "s3: / / pharma-libraries / zinc20",
[0624] "format": "sdf",
[0625] "compounds_count": 26000000},
[0626] "target_protein": {
[0627] "pdb_id": "1M17",
[0628] "binding_site": {"center": [15.2, 12.8, 18.5], "size": [20,20,20]}}},
[0629] "workflow_parameters": {
[0630] "collaboration_mode": "multiplier",
[0631] "stages": [
[0632] {"name": "lipinski_filter",
[0633] "pe_type": "classifier",
[0634] "parameters": {"rules": ["lipinski", "veber"], "strictness":"medium"}},
[0635] {"name": "molecular_docking",
[0636] "pe_type": "docking",
[0637] "parameters": {"software": "vina", "exhaustiveness": 32}},
[0638] { "name": "toxicity_prediction",
[0639] "pe_type": "toxicity_predictor",
[0640] "parameters": {"models": ["herg", "ames", "dili"]}}}
[0641] Execution process monitoring
[0642] Python
[0643] # Real-time monitoring of execution progress
[0644] monitoring_data = {
[0645] 'stage1': {
[0646] 'status': 'completed',
[0647] 'compounds_processed': 26000000,
[0648] 'compounds_passed': 1500000,
[0649] 'execution_time': '2.5h',
[0650] 'resource_usage': {'cpu': '185 core-hours', 'memory': '2.3TB'}},
[0651] 'stage2': {
[0652] 'status': 'in_progress',
[0653] 'compounds_processed': 850000,
[0654] 'compounds_passed': 42000,
[0655] 'estimated_completion': '18h',
[0656] 'current_throughput': '1250 compounds / min'}}
[0657] Example 2: Multi-target optimization of antiviral drugs based on exponentiation pattern
[0658] Reinforcement learning optimization configuration
[0659] Python
[0660] rl_config = {
[0661] 'algorithm': 'PPO',
[0662] 'policy_network': {
[0663] 'type': 'Transformer',
[0664] 'hidden_layers': [512, 256, 128],
[0665] 'attention_heads': 8},
[0666] 'training_parameters': {
[0667] 'learning_rate': 0.0001,
[0668] 'batch_size': 64,
[0669] 'entropy_coefficient': 0.01},
[0670] 'multi_objective_function': {
[0671] 'components':
[0672] {'name': '3clpro_binding', 'weight': 0.4, 'target':'minimize'},
[0673] {'name': 'plpro_binding', 'weight': 0.4, 'target':'minimize'},
[0674] {'name': 'cytotoxicity', 'weight': -0.2, 'target':'maximize'} ],
[0675] 'constraints':
[0676] {'property': 'logp', 'range': [1, 4]},
[0677] {'property': 'psa', 'range': [50, 120]} ]}}
[0678] Iterative optimization process
[0679] python
[0680] # Optimization process record
[0681] optimization_history = {'generation_0': {'best_score': -12.5,
[0682] 'diversity': 0.85,
[0683] 'improvement': 0.0},
[0684] 'generation_25': {'best_score': -15.8,
[0685] 'diversity': 0.62,
[0686] 'improvement': 26.4},
[0687] 'generation_50': {'best_score': -17.2,
[0688] 'diversity': 0.45,
[0689] 'improvement': 37.6,
[0690] 'converged': True}}
[0691] Industrial applicability
[0692] The system and method of this invention have been validated in multiple actual drug development projects and have clear industrial applicability:
[0693] 1. Deployment flexibility: Supports deployment in public cloud (AWS, Azure, GCP), private cloud, and hybrid cloud environments.
[0694] 2. Scalability: Supports computing scales ranging from single research teams to multinational pharmaceutical companies.
[0695] 3. Cost-effectiveness: Through resource optimization and dynamic scheduling, computational costs are reduced by 40-60% compared to traditional solutions.
[0696] 4. Compliance: Complies with FDA 21 CFR Part 11, GDPR, and other regulatory requirements, meeting pharmaceutical industry compliance standards.
[0697] 5. Ecosystem Compatibility: Seamlessly integrates with mainstream cheminformatics software (Schrödinger, OpenEye), data formats (SMILES, SDF, PDB), and AI frameworks (PyTorch, TensorFlow).
[0698] This invention has been successfully applied in the following practical scenarios:
[0699] Screening for coronavirus main protease inhibitors
[0700] Tumor immune checkpoint inhibitor optimization
[0701] Multi-target drug design for neurodegenerative diseases
[0702] Development of solutions to overcome antibiotic resistance
[0703] Furthermore, it should be noted that although the present invention has been disclosed above, its scope of protection is not limited thereto. Those skilled in the art can make various changes and modifications without departing from the spirit and scope of the present invention, and all such changes and modifications fall within the scope of protection of the present invention.
Claims
1. A new drug development system and method based on a distributed pulsed computing architecture, characterized in that, include: Central dispatch platform; Multiple pharmacology entity computation modules, each configured to independently execute specific drug development sub-tasks; A pulsed array collaborative network, a hierarchical collaborative network, connects the central scheduling platform with the multiple pharmacological entity computing modules; The pulsed array collaborative network is constructed as a hierarchical structure, in which every 3 pharmacological entity computing modules are dynamically combined into a computing group, and every 3 computing groups are dynamically combined into a computing unit; the pharmacological entity computing modules, computing groups, and computing units are all configured to operate independently and be scheduled by the central scheduling platform for collaborative computing. The system also includes an intrinsic security defense module, which provides distributed security defense functions for the pharmacology entity computation module, computation group, and computation unit. The drug development sub-tasks performed by each module in the system include at least one of the following: target identification and validation, virtual compound screening, ADMET property prediction, compound synthesis feasibility analysis, and clinical trial protocol simulation.
2. The system according to claim 1, characterized in that, The pulsed array collaborative network is further configured to support multiple computing collaboration modes, including: Adder pattern is used to enable multiple pharmacology entity computation modules to process tasks in parallel; The multiplier pattern is used to enable multiple pharmacology entity computation modules to process tasks in series according to a preset process; The exponentiation pattern is used to establish feedback loops between multiple pharmacological entity computation modules for iterative optimization. Register mode is used to persistently store the state and output data of a specified pharmacological entity computation module or computation group.
3. The system according to claim 1, characterized in that, The central scheduling platform is further configured to dynamically reconstruct the topology of the pulsed array collaborative network based on the received overall drug development tasks, including creating, disbanding, or reorganizing the computing groups and computing units.
4. The system according to claim 1, characterized in that, The intrinsic security defense module is implemented in the following ways: Within the pharmacology entity calculation module, input data verification and calculation process integrity verification are performed. Within the computing team, behavioral consistency checks and anomaly isolation are performed between member modules; At the computing unit and system level, blockchain technology is used to store and trace key computing steps and data.
5. The system according to claim 2, characterized in that, When the system operates in the multiplier mode to perform virtual compound screening, the first pharmacology entity calculation module performs drug-likeness filtering, and its output is passed as input to the second pharmacology entity calculation module to perform molecular docking calculation. The output of the second pharmacology entity calculation module is then passed as input to the third pharmacology entity calculation module to perform ADMET property prediction.
6. The system according to claim 2, characterized in that, When the system operates in the exponentiation mode for multi-target drug optimization, the first pharmacology entity calculation module calculates the interaction between the compound and the first target, the second pharmacology entity calculation module calculates the interaction between the compound and the second target, and the third pharmacology entity calculation module receives the outputs of the first two and performs multi-target evaluation. The evaluation results are used as feedback signals to iteratively optimize the input compound structure of the first and second pharmacology entity calculation modules.
7. A new drug development method based on a distributed pulsating computing architecture, characterized in that, The method of using the system as described in any one of claims 1 to 6 includes: New drug research and development project tasks are received through a central dispatch platform; The project task is broken down into multiple sub-tasks; Based on the characteristics of the sub-task, one or more pharmacology entity computing modules, computing groups, or computing units are scheduled through the pulsed array collaborative network to execute the sub-task; During task execution, the intrinsic security defense module is activated for real-time security monitoring; Integrate the outputs of various modules, groups, or units to generate drug development decision support information.
8. The method according to claim 7, characterized in that, In the scheduling step, the pharmacology entity computing module, computing group, or computing unit executing the task is configured with one of the adder mode, multiplier mode, exponentiation mode, or register mode as defined in claim 2, according to the subtask requirements.
9. The method according to claim 7 or 8, characterized in that, After integrating the output results, the key calculation paths, parameters, and result data are also stored in the designated pharmacology entity calculation module or calculation group through the register mode for subsequent related research and development projects to call.
10. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the program is executed by the processor, it implements the steps of the method as described in any one of claims 7 to 9.