生存分析笔记
https://lifelines.readthedocs.io/en/latest/Survival analysis with lifelines.html
前置知识
(非)参数估计:“参数” 通常指的是用来描述数据集分布特征的量,例如均值、方差、比例或回归系数
参数估计:指基于样本数据估计总体参数(如总体均值或方差)的过程,通常假设数据遵循某种已知的概率分布(如正态分布)
非参数估计:不依赖于数据遵循特定的分布假设
参数估计有一个“拟合”过程,非参数则没有
123456789from lifelines import WeibullFitterT = data['T']E = data['E']wf = WeibullFitter().fit(T, E)wf.print_summary()wf.plot_cumulative_hazard()
比较分布手段
QQplot:将它们的分位数(quantiles)进行对比。它通常用于检验一个数据集是否遵循某个特定分布,例如正态分布
X轴表示理论分布的分位数,而Y轴表示样本数据 ...
PET图像重建关键性参数笔记
template_sinogram.hs文件用于配置重建参数。
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647!INTERFILE :=!imaging modality := PTname of data file := template_sinogram.hsoriginating system := userdefined!version of keys := STIR3.0!GENERAL DATA :=!GENERAL IMAGE DATA :=!type of data := PETimagedata byte order := LITTLEENDIAN!PET STUDY (General) :=!PET data type := Emissionapplied corrections := {None}!number format := float!number of bytes per pixel := 4number of ...
树莓派4B配置OpenWRT记录
步骤记录
rpi的物理网口作为wan口,无线网络作为lan
12flowchart LR 光猫 --> 主路由 -->|以太网| rpi -->|无线| 上网设备
刷入immortalwrt
有线网连接树莓派,可能需要手动配置一下ip地址,使设备和树莓派处在同一个网段中
将lan口配置为:
协议:静态地址
设备:br-lan 设备:phy0-ap0
ipv4地址:192.168.8.1(可以选一个和主路由不冲突的)
ipv4网关留空(会默认配置为192.168.31.1,也就是主路由的网关)
新建一个wan口:
协议:DHCP客户端
设备:br-lan 设备:eth0
配置防火墙:在网络-防火墙-区域中,设置lan到wan的规则中,wan口启用IP动态伪装。这个也称为源NAT/IP masquerading
解释
想进行代理有大概两种思路:
把rpi视作一个上网设备,配置设备为br-lan,协议静态地址,ipv4地址选一个与主路由相同网段的(例如192.168.31.150之类的),并在DHCP里勾选忽略此接口(也就是此接口不提供DHCP服务, ...
Personalized Treatment Planning for Radiopharmaceutical Therapy
Personalized Treatment Planning for Radiopharmaceutical Therapy
Pre-therapy imaging (PET/CT)
Dose-estimation: Intensively investigated and partially solved (planar / SPECT/CT)
Treatment
Dose prediction
Dose effect
Treatment outcome
Adverse events
Vitalize the virtual patient
Physiologically-based pharmacokinetic (PBPK) model
Simulate time-course of radioligand uptake in organs of virtual patient
Organs & tumor: homogenous
Simulate PET imaging using realistic PET simulator
Dose calc ...
SPM学习笔记
开启SPM12
1spm pet
基本操作
12345I = dicomread(dicomFile)imshow(I, 'DisplayRange', []) % 显示DICOM图像info = dicominfo(dicomFile) % 显示元信息% info.AcquisitionTime较重要
计算SUV:使用ImCalc输入计算公式后,Display选中计算结果
图像预处理
Spatial Registration, Normalization
Registration: Rigid Transformations (rotations, translations…)
Normalization: Transform to Montreal Neurology Institute (MNI) Template
Smoothing: e.g. Gaussian kernel, improve SNR, minimize differences between normalized images, increase validity of statist ...
大话设计模式-策略模式
工厂在业务逻辑增加的过程中,也会越来越复杂,维护性逐渐降低。
策略模式
定义了算法家族,分别封装起来,让其可以互相替换。此模式让算法的变化不影响使用算法的客户。
核心在于算法是随时都可能相互替换的。
Strategy类,定义所有支持的算法的公共接口
ConcreteStrategy类,封装具体算法或行为,继承自Strategy
Context类,使用一个ConcreteStrategy进行配置,维护一个对Strategy对象的引用
123456class Context def __init__(self, strategy: Strategy): self.strategy = strategy def context_interface(): return self.strategy.algorithm_interface()
但在具体实现过程中,仍然不能完全将策略选择过程从客户端中剥离。可以考虑与简单工厂模式结合。
12345678class CashContext: def __init__(type: str): # 接收策略类型而不是具体 ...
放射性药物与放疗激活药物
放射性药物与放疗激活药物
新药开发
PSMA-SPECT/CT技术是一种前列腺特异性膜抗原-单光子发射计算机断层摄影技术
肿瘤滞留不足是放射性药物面临的关键挑战。
前期工作
制备紧缺核素
延长血液循环,提高肿瘤摄取:可能不能成功
定点修饰抗体
FAPI小分子结构改造,加强靶向,高速清除降低毒副作用
短半衰期核素降低毒副作用
共价放射性药物增加核素的肿瘤摄取和滞留,靶向后激活
核素治疗不依赖信号通路,但有副作用。
放射性驱动的药物化学
gamma、X线、热中子束容易调控
发展放疗驱动的选择性断键,引发化疗药物的靶向释放,但十分困难(电子束能量大,断键无选择性)。
羟基自由基激活药物
伦琴发现氰化铂可以被X线激活发光,因此可能使用放射线释放顺铂
肿瘤内强烈的还原环境,乏氧化
放射性含B药物用于B中子俘获治疗
B完全不参与蛋白质合成与结合,因此本底更低
钆中子俘获核反应驱动
单个癌细胞上受体的量级1e6-1e7
一些别的思考
非一线治疗天然存在劣势:收治的志愿者往往更严重
新药物的毒性很难评估:病人死亡是药物副作用还是疾病本身进展?
核素储量本身也是一 ...
大话设计模式-简单工厂模式
直觉地用计算机的方式去思考是初学者常见的问题
活字印刷
可维护:只更改需要更改的字
可复用:在后来的印刷中重复使用
可扩展:另外加字
高灵活:排版方式不同
使用封装、继承、多态,降低程序耦合。
业务封装
将业务和界面分离:Web、Windows、Linux平台下的计算机均可使用Operation类。只需重写界面即可。
松耦合
构建一个基类Operation,其他运算继承此基类,并重写其虚方法。如此可更容易地添加新运算。
简单工厂模式
用一个单独的类来进行创造实例的活动。
1234oper = OperationFactory.create_pperate('+')oper.num1 = 1oper.num2 = 1result = oper.get_result()
如果需要修改加法,只需修正class OperationAdd,增加其他运算只需添加对应的子类并修改工厂。
UML简介
接口实现:棒棒糖表示法
关联:一个类"知晓"另一个类,可用实线箭头表示
聚合:一种"弱拥有",A可包含B对象,但B对象不是A对象的一部 ...
MMSegmentation实战
课程
课程的代码教学非常详细。本文的主要代码均来源于代码教学。
检查安装成功
12345import mmcvfrom mmcv.ops import get_compiling_cuda_version, get_compiler_versionprint('MMCV版本', mmcv.__version__)print('CUDA版本', get_compiling_cuda_version())print('编译器版本', get_compiler_version())
实战
进行推理
12python demo/image_demo.py img.jpg config.py \ checkpoint.pth --out-file fname.jpg --device cuda:0 --opacity 0.5
运行语义分割预测
12345678from mmseg.apis import inference_modelfrom mmengine.model.utils import revert_sync_ba ...