跳转到内容

Posts

激素受体的分类及信号转导途径

激素受体根据其位置和功能可以分为两大类: 细胞膜受体细胞内受体

细胞膜受体 (membrane receptor) 是一类跨膜镶嵌在细胞膜表面的蛋白质,其配体结合域位于细胞外表面。 细胞膜受体主要包括以下几种类型:

  1. G蛋白偶联受体 (GPCRs): 这类受体通过与G蛋白相互作用来传递信号。激素结合后,GPCRs会激活G蛋白,进而调节下游效应器 (第二受体)的活性,例:肾上腺素β受体。
    • G蛋白 (G protein): 是鸟苷酸结合蛋白的简称,是由α、β和γ三个亚单位组成的异三聚体大分子,可分为四个家族:GsG_{s}GiG_{i}GqG_{q}G12/13G_{12/13}GsG_{s}GiG_{i}对同一反应分别具有促进和抑制作用;GqG_{q}主要激活磷脂酶C (PLC),通过三磷酸肌醇 (IP3)和二酰甘油 (DAG)介导细胞内信号转导;G12/13G_{12/13}激活Rho鸟嘌呤核苷酸交换因子 (RhoGEFs),从而激活Rho GTP酶。
  2. 单次跨膜受体: 这类受体通常具有蛋白激酶活性,激素结合受体后,蛋白激酶活性被激活,启动一系列磷酸化反应。
    • 受体酪氨酸激酶 (RTKs)
    • 酪氨酸激酶偶联受体 (LTKs)
    • 鸟苷酸环化酶受体 (GCRs)

细胞内受体 (intracellular receptor) 位于细胞质或细胞核内,主要与脂溶性激素结合,如类固醇激素和甲状腺激素。即使激素受体位于细胞质内,最终也需要进入细胞核以调节基因表达,也被称为核受体 (nuclear receptor)。 核受体主要包括I类受体 (类固醇激素受体)和II类受体 (包括甲状腺激素受体和维生素D受体等)。

  1. I类受体: 主要与类固醇激素结合,如雌激素受体 (ER)、雄激素受体 (AR)、糖皮质激素受体 (GR)等。
  2. II类受体: 主要与甲状腺激素和维生素D结合,如甲状腺激素受体 (TR)和维生素D受体 (VDR)。
  • 受体调节 (receptor regulation): 在配体和生理病理因素作用下,受体的数量和敏感性可以发生变化。
  • 受体下调/脱敏 (down-regulation/desensitization): 长期高浓度配体作用下,受体数量减少或敏感性降低。受体下调通常具有剂量依赖性、时间依赖性和可逆性。
  • 受体上调/增敏 (up-regulation/hypersensitization): 长期低浓度配体作用下,受体数量增加或敏感性提高。
  1. 磷酸化和去磷酸化
  2. 膜磷脂变化
  3. 受体的脱敏和内化
  1. G蛋白偶联受体 (GPCRs): 此类受体作用的基本模式链是: 激素-膜受体-G蛋白-效应蛋白-第二信使。激素结合后,GPCRs会激活G蛋白,G蛋白的α亚单位与效应蛋白相互作用,进而调节第二信使的合成或降解;Gβγ亚单位则通过与支架蛋白结合来影响下游信号转导。
    • 第二信使: 包括环磷酸腺苷 (cAMP)、三磷酸肌醇 (IP3)、二酰甘油 (DAG)等,这些分子在细胞内起到信号放大的作用。
  2. 受体酪氨酸激酶 (RTKs): 这类受体在激素结合后会发生二聚化,其内在的酪氨酸激酶激活,导致受体自身和下游信号分子的磷酸化。磷酸化的受体可以招募适配蛋白和下游信号分子,形成信号复合物,进而激活一系列信号转导通路,如PI3K/Akt通路和MAPK通路。
  3. 酪氨酸激酶偶联型受体 (LTKs): 与RTK不同的是,这类受体不具有酪氨酸激酶活性,而是通过与酪氨酸激酶结合来传递信号,激素结合后,受体会发生构象变化吸附胞质内与之相邻并具有酪氨酸激酶活性的可溶性信号转导分子,例如JAK,来调节相应靶基因的转录过程。
  4. 鸟苷酸环化酶受体 (GCRs): 这类受体的胞内域具有鸟苷酸环化酶活性,激素结合后,受体会催化GTP转化为cGMP,cGMP作为第二信使激活cGMP依赖性蛋白激酶 (PKG),进而调节细胞功能。
  • I类核受体在受体静息状态下通常与热休克蛋白 (HSP) 结合,形成复合物。当类固醇激素进入细胞后,与核受体结合,导致HSP释放,受体发生构象变化暴露出受体核内转移部位和DNA结合部位,随后转位到细胞核内。核受体在细胞核内与特定的DNA序列结合,调节靶基因的转录。
  • II类核受体则通常在细胞核内与DNA结合,在没有激素结合时受体招募共抑制因子,抑制靶基因转录。当激素结合后,受体构象发生变化,释放共抑制因子,招募共激活因子,促进靶基因转录。

nvim中配置lsp

在进行这一步之前,确保已安装telescope和aerial插件

创建 ~/.config/nvim/lua/lsp.lua 并写入以下内容

vim.api.nvim_create_autocmd("LspAttach", {
group = vim.api.nvim_create_augroup("lsp-attach", { clear = true }),
callback = function(event)
local map = function(keys, func, desc, mode)
mode = mode or "n"
vim.keymap.set(mode, keys, func, { buffer = event.buf, desc = "LSP: " .. desc })
end
-- 设置一些快捷键,你可以使用这些快捷键进行LSP有关的操作
-- 你需要安装 Telescope
map("grn", vim.lsp.buf.rename, "[R]ename")
map("grs", require("telescope").extensions.aerial.aerial, "LSP Symbols")
map("gra", vim.lsp.buf.code_action, "[G]oto Code [A]ction", { "n", "x" })
map("grr", require("telescope.builtin").lsp_references, "[G]oto [R]eferences")
map("gri", require("telescope.builtin").lsp_implementations, "[G]oto [I]mplementation")
map("grd", require("telescope.builtin").lsp_definitions, "[G]oto [D]efinition")
map("grD", vim.lsp.buf.declaration, "[G]oto [D]eclaration")
map("gO", require("telescope.builtin").lsp_document_symbols, "Open Document Symbols")
map("grw", require("telescope.builtin").lsp_dynamic_workspace_symbols, "Open Workspace Symbols")
map("grt", require("telescope.builtin").lsp_type_definitions, "[G]oto [T]ype Definition")
map("grh", vim.lsp.buf.hover, "Hover")
local function client_supports_method(client, method, bufnr) return client:supports_method(method, bufnr) end
-- 自动高亮你光标下内容的引用,并在光标移动时清除
local client = vim.lsp.get_client_by_id(event.data.client_id)
if
client
and client_supports_method(client, vim.lsp.protocol.Methods.textDocument_documentHighlight, event.buf)
then
local highlight_augroup = vim.api.nvim_create_augroup("lsp-highlight", { clear = false })
vim.api.nvim_create_autocmd({ "CursorHold", "CursorHoldI" }, {
buffer = event.buf,
group = highlight_augroup,
callback = vim.lsp.buf.document_highlight,
})
vim.api.nvim_create_autocmd({ "CursorMoved", "CursorMovedI" }, {
buffer = event.buf,
group = highlight_augroup,
callback = vim.lsp.buf.clear_references,
})
vim.api.nvim_create_autocmd("LspDetach", {
group = vim.api.nvim_create_augroup("lsp-detach", { clear = true }),
callback = function(event2)
vim.lsp.buf.clear_references()
vim.api.nvim_clear_autocmds {
group = "lsp-highlight",
buffer = event2.buf,
}
end,
})
end
-- 创建一个快捷键,以便切换是否启用 Inlay Hints(如果可用)
if client and client_supports_method(client, vim.lsp.protocol.Methods.textDocument_inlayHint, event.buf) then
vim.lsp.inlay_hint.enable(true) -- 默认启用,你可以把它改为false
vim.keymap.set("n", "<leader>uh", function()
vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled { bufnr = event.buf })
if vim.lsp.inlay_hint.is_enabled { bufnr = event.buf } then
vim.notify("Inlay hints: " .. "ON")
else
vim.notify("Inlay hints: " .. "OFF")
end
end, { desc = "Toggle Inlay Hints" })
end
end,
})
-- 诊断信息设置
-- 查看 :help vim.diagnostic.Opts
vim.diagnostic.config {
severity_sort = true,
float = { border = "rounded", source = "if_many" },
underline = { severity = vim.diagnostic.severity.ERROR },
signs = {
text = {
[vim.diagnostic.severity.ERROR] = " ", -- 这里配置“错误”的图标,需要nerd font字体
[vim.diagnostic.severity.WARN] = " ",
[vim.diagnostic.severity.INFO] = " ",
[vim.diagnostic.severity.HINT] = " ",
},
},
virtual_text = {
source = "if_many",
spacing = 2,
format = function(diagnostic)
local diagnostic_message = {
[vim.diagnostic.severity.ERROR] = diagnostic.message,
[vim.diagnostic.severity.WARN] = diagnostic.message,
[vim.diagnostic.severity.INFO] = diagnostic.message,
[vim.diagnostic.severity.HINT] = diagnostic.message,
}
return diagnostic_message[diagnostic.severity]
end,
},
}
-- 下面这一堆是跳转到诊断信息的快捷键
vim.keymap.set(
"n",
"[h",
function() vim.diagnostic.jump { severity = vim.diagnostic.severity.HINT, count = -1 } end,
{ desc = "Previous hint" }
)
vim.keymap.set(
"n",
"]h",
function() vim.diagnostic.jump { severity = vim.diagnostic.severity.HINT, count = 1 } end,
{ desc = "Next hint" }
)
vim.keymap.set(
"n",
"[i",
function() vim.diagnostic.jump { severity = vim.diagnostic.severity.INFO, count = -1 } end,
{ desc = "Previous info" }
)
vim.keymap.set(
"n",
"]i",
function() vim.diagnostic.jump { severity = vim.diagnostic.severity.INFO, count = 1 } end,
{ desc = "Next info" }
)
vim.keymap.set(
"n",
"[w",
function() vim.diagnostic.jump { severity = vim.diagnostic.severity.WARN, count = -1 } end,
{ desc = "Previous warning" }
)
vim.keymap.set(
"n",
"]w",
function() vim.diagnostic.jump { severity = vim.diagnostic.severity.WARN, count = 1 } end,
{ desc = "Next warning" }
)
vim.keymap.set(
"n",
"[e",
function() vim.diagnostic.jump { severity = vim.diagnostic.severity.ERROR, count = -1 } end,
{ desc = "Previous error" }
)
vim.keymap.set(
"n",
"]e",
function() vim.diagnostic.jump { severity = vim.diagnostic.severity.ERROR, count = 1 } end,
{ desc = "Next error" }
)
-- 当光标处有诊断信息时自动显示vim.api.nvim_create_autocmd("CursorHold", {
pattern = "*",
callback = function()
vim.diagnostic.open_float(nil, {
focusable = false,
close_events = { "CursorMoved", "CursorMovedI", "BufHidden", "InsertCharPre" },
border = "rounded",
scope = "cursor",
})
end,
})

init.lua 中加入这一行:

require("lsp")

安装自动补全插件 blink.cmp

-- Lua/plugins/blink-cmp.lua
local function has_words_before()
local line, col = (unpack or table.unpack)(vim.api.nvim_win_get_cursor(0))
return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match "%s" == nil
end
return {
"Saghen/blink.cmp",
dependencies = {
"xzbdmw/colorful-menu.nvim",
"rafamadriz/friendly-snippets",
},
version = "1.*",
event = { "InsertEnter", "CmdlineEnter" },
opts = {
keymap = {
["<Up>"] = { "select_prev", "fallback" },
["<Down>"] = { "select_next", "fallback" },
["<C-U>"] = { "scroll_documentation_up", "fallback" },
["<C-D>"] = { "scroll_documentation_down", "fallback" },
["<C-e>"] = { "hide", "fallback" },
["<CR>"] = { "accept", "fallback" },
["<Tab>"] = {
"snippet_forward",
"select_next",
function(cmp)
if has_words_before() or vim.api.nvim_get_mode().mode == "c" then return cmp.show() end
end,
"fallback",
},
["<S-Tab>"] = {
"select_prev",
"snippet_backward",
function(cmp)
if vim.api.nvim_get_mode().mode == "c" then return cmp.show() end
end,
"fallback",
},
},
completion = {
list = { selection = { preselect = false } },
documentation = { auto_show = true },
menu = {
border = "rounded",
draw = {
columns = { { "kind_icon" }, { "label", gap = 1 } },
components = {
label = {
text = function(ctx) return require("colorful-menu").blink_components_text(ctx) end,
highlight = function(ctx) return require("colorful-menu").blink_components_highlight(ctx) end,
},
},
},
},
},
signature = {
enabled = true,
},
cmdline = {
completion = {
list = { selection = { preselect = false } },
menu = {
auto_show = true,
},
},
},
sources = {
default = { "lsp", "path", "snippets", "buffer" },
},
},
opts_extend = { "sources.default" },
}

将以下内容写入 ~/.config/nvim/lsp/lua_ls.lua

return {
cmd = { 'lua-language-server' },
filetypes = { 'lua' },
root_markers = {
'.luarc.json',
'.luarc.jsonc',
'.luacheckrc',
'.stylua.toml',
'stylua.toml',
'selene.toml',
'selene.yml',
'.git',
},
}

这里的 cmd 是语言服务器的可执行文件。在 0.11 版本中,不需要使用 nvim-lspconfig 插件。

将以下内容添加到 ~/.config/nvim/lua/lsp.lua ,用于启动这个配置:

vim.lsp.enable('lua_ls')

enable 后面的参数 lua_ls ,对应 lsp 文件夹内的 lua_ls.lua

安装三个插件

{
"mason-org/mason.nvim",
event = "VeryLazy",
keys = {
{
"<leader>M",
"<cmd>Mason<cr>",
desc = "Open Mason",
},
},
opts = {
ui = {
icons = {
package_installed = "●",
package_pending = "○",
package_uninstalled = "○",
},
},
},
},
{
"WhoIsSethDaniel/mason-tool-installer.nvim",
event = "VeryLazy",
},
{
"mason-org/mason-lspconfig.nvim",
event = "VeryLazy",
config = function()
local capabilities = require("blink.cmp").get_lsp_capabilities()
-- Enable the following language servers
-- Feel free to add/remove any LSPs that you want here. They will automatically be installed.
--
-- Add any additional override configuration in the following tables. Available keys are:
-- - cmd (table): Override the default command used to start the server
-- - filetypes (table): Override the default list of associated filetypes for the server
-- - capabilities (table): Override fields in capabilities. Can be used to disable certain LSP features.
-- - settings (table): Override the default settings passed when initializing the server.
-- For example, to see the options for `lua_ls`, you could go to: https://luals.github.io/wiki/settings/
local servers = {
lua_ls = {},
}
local formatting_tools = {
"stylua",
}
local ensure_installed = vim.list_extend(vim.tbl_keys(servers), formatting_tools)
ensure_installed = vim.list_extend(ensure_installed, dap)
require("mason").setup {}
require("mason-lspconfig").setup {
automatic_installation = false,
automatic_enable = {
"lua_ls",
},
handlers = {
function(server_name)
local server = servers[server_name] or {}
-- This handles overriding only values explicitly passed
-- by the server configuration above. Useful when disabling
-- certain features of an LSP (for example, turning off formatting for ts_ls)
server.capabilities = vim.tbl_deep_extend("force", {}, capabilities, server.capabilities or {})
vim.lsp.config(server_name, server)
end,
},
}
require("mason-tool-installer").setup {
ensure_installed = ensure_installed,
run_on_start = false,
start_delay = 0,
}
vim.cmd "MasonToolsUpdate"
end,
},

servers 变量中可以覆盖服务器的默认设置。插件会自动安装其中 servers, formatting_tools, dap 三个变量里面的工具。

lazydev.nvim 插件提供了增强Lua补全功能,可以更好地适配Neovim的配置功能

若使用此插件,删除 lsp.lua 中的 vim.lsp.enable('lua_ls') ,插件会自动调用这个函数

安装插件:

{
"folke/lazydev.nvim",
ft = "lua",
opts = {
library = {
-- Load luvit types when the `vim.uv` word is found
{ path = "${3rd}/luv/library", words = { "vim%.uv" } },
},
},
}

WSL使用、配置和迁移

安装WSL前确认:

  • CPU开启虚拟化
    终端窗口
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  • 适用于Linux的Windows子系统已启用
    终端窗口
    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

以安装Debian为示例

终端窗口
wsl --set-default-version 2 # 设置WSL 2为默认版本
wsl --install -d Debian # 安装Debian发行版

当然也可以通过Microsoft Store安装发行版。

安装完成后

终端窗口
wsl -l -v # 查看已安装的发行版及其版本
wsl --set-default Debian # 设置默认发行版为Debian

默认情况下WSL的文件存储在 %USERPROFILE%\AppData\Local\Packages 目录下,可以通过以下命令迁移至其他位置。

目前网上许多教程是更改 /etc/wsl.conf 来实现,但实际上wsl提供了更直接的方法,即 wsl --manage

  1. 查看已安装的发行版及其版本
    终端窗口
    wsl -l -v
  2. 导出发行版
    终端窗口
    wsl --export <发行版名称> <导出路径>\<文件名>.tar
  3. 注销发行版
    终端窗口
    wsl --unregister <发行版名称>
  4. 导入发行版到新位置
    终端窗口
    wsl --import <发行版名称> <新路径> <导出路径>\<文件名>.tar
  5. (可选)设置默认发行版 如果先前存在不止一个发行版,此时可能需要重新设置默认发行版
    终端窗口
    wsl --set-default <发行版名称>
  6. 设置默认用户
    终端窗口
    wsl --manage <发行版名称> --set-default-user <用户名>

细菌的遗传和变异

细菌的遗传 (heredity): 细菌保持物种遗传物质和生物学特性相对稳定,世代相传的能力。 细菌的变异 (variation): 细菌子代与亲代之间生物学特性出现的差异。

  • 细菌基因组
    • 染色体
    • 质粒
  • 移动元件
    • 插入序列
    • 转座子
    • 整合子
  • 噬菌体

细菌染色体之外的遗传物质,是一类闭环dsDNA

  • 附加体 (episome)可以与染色体整合参与遗传,也可以游离存在的一类质粒
  • 质粒存在三种构型: 共价闭环型、开环型、线性型 -质粒的特点:
    1. 自我复制
    2. 编码细菌细胞的大量辅助性的性状
    3. 可通过结合、转化等方式在细菌间转移。根据是否能通过结合转移,可分为:
    • 结合性质粒
    • 非结合性质粒
    1. 可丢失
    2. 相容性 (compatibility)和不相容性 (incompatibility): 序列结构相似、亲缘密切相关的质粒不可稳定共存于同一宿主;同源性互不相关的质粒可稳定共存

噬菌体 (bacteriophage)是感染细菌、真菌、放线菌或螺旋体等微生物的病毒。

  1. 噬菌体的结构特征 显微镜下可见: 蝌蚪形、微球形、丝形
  • 头部
    • 衣壳
    • 核: DNA/RNA
  • 尾部: 尾领、尾鞘、尾髓、尾板、尾刺、尾丝
  1. 噬菌体的繁殖 噬菌体的繁殖过程包括吸附穿入生物合成组装释放
  1. 温和噬菌体 (temperate phage): 感染细菌后,部分噬菌体的基因组不完成组装和释放,其DNA与宿主基因组整合,随宿主菌繁殖而复制。
  • 前噬菌体 (prophage): 整合于宿主基因组的噬菌体基因组
    • 溶原性细菌
    • 溶原性噬菌体
  • 溶原性转换: 溶原性细菌由于携带的前噬菌体基因得以表达,表现出新的遗传性状
  1. 毒性噬菌体: 在宿主细菌内复制增殖并最终导致细菌裂解的噬菌体,只有溶菌性周期而无溶原性周期。

移动元件 (mobile element),也被称为转座元件 (transposable element),是一类不依赖于同源重组即可在细菌或者其它生物的基因组/质粒之间改变存在位置的特殊DNA序列。

转座元件包括:

  • 插入序列(insertion sequence, IS): 一段长度约为300~2200bp,不携带任何与转座功能无关的基因的可移动元件。
  • 转座子(transposon, Tn): 长度在2000~2500bp,除了携带与转座功能有关的基因外,还会携带其它基因,如耐药基因、毒力基因。
  • 整合子(integron, In): 整合子是一种特殊的可移动元件,其可通过整合酶介导的位点特异性重组系统捕获和重组基因盒,与细菌多重耐药性有关。

心力衰竭

  • 心力衰竭 (heart failure, HF): 各种原因导致心脏结构/功能的异常改变,使得心室收缩/充盈发生障碍,在静息或运动时出现心输出量下降或心腔内压力升高,从而引起的一组复杂的临床综合征。主要表现为:
    • 活动耐力下降 (呼吸困难、疲乏)
    • 液体潴留 (肺淤血、体循环淤血和外周水肿)
  • 心功能不全 (cardiac dysfunction): 广泛指心脏结构和功能的异常改变,伴有临床症状的心功能不全称为心力衰竭。
  • 心肌受损
    • 原发性心肌损伤: 心肌炎心肌梗死心肌病心肌中毒
    • 继发性心肌损伤: 由高血压糖尿病严重贫血等一系列因素引起的心肌代谢异常,进而慢性损伤、坏死的情况
  • 心室前负荷过重
    • 心脏瓣膜关闭不全,导致血液回流心室充盈量增加。
    • 全身高动力循环状态
      • 重度贫血
      • 甲状腺功能亢进
      • 动静脉瘘
      • 脚气病
  • 心室后负荷过重
    • 左心后负荷: 高血压、主动脉瓣狭窄、主动脉缩窄
    • 右心后负荷: 肺动脉高压、肺动脉瓣狭窄
  • 心室充盈障碍: 心包疾病、限制性心肌病
  • 心律失常
  • 感染
  • 心律失常
  • 水、电解质和酸碱平衡紊乱
    • 高钾血症
    • 酸中毒
  • 妊娠和分娩
  • 情绪激动、气候变化
  1. 按发展速度分类