场景 此时有一个场景,需要设计一个根据不同的状态和条件采用不同的业务处理方式。 这样大家可能不是太理解。...AliPayServiceImpl implements PayService {} 但是仔细思考后,还是存在一些问题 如果增加一个支付方式后还需要修改,PayWay这个枚举类型 在程序中,仍需要根据不同的条件做...先思考一下这个if else的作用是什么? 答:根据思路①描述,这个if else是用来确定采用哪种支付方式。...我们可以将这块代码抽离出来,让对应的业务实现类实现自己的逻辑实现,然后根据返回值true 或者false决定是否过滤掉这个业务实现类。...isSupport方法对SupportBean中的supportNum进行取余,判断余数是否等于0,是则返回true。 类似的实现还有两个,这里就不贴出来了。
需求:返回值里面有 0,1,2,3,4 分别代表面试,开会,拜访顾客,项目实施,其他这5中类型,需要将获取到的0,1,2,3,4渲染到页面上,分别显示所对应的类型状态面试,开会,拜访顾客,项目实施,其他...json数据 将准备的json数据放在服务器上,可以方便调用 如果没有 自己的服务器,就准备掉后端的接口,或者直接存在本地的json文件里面,备用。...success: res => { this.setData({ //第一个data为固定用法,第二个data是json中的data
这个需求应该也比较常见,在不同的条件下创建不同的bean,具体场景很多,能看到这篇的肯定懂我的意思。...倘若不了解spring4.X新加入的@Conditional注解的话,要实现不同条件创建不同的bean还是比较麻烦的,可能需要硬编码一些东西做if判断。...新建一个springboot项目,添加一个Configuration标注的类,我们通过不同的条件表达式来创建bean。...然后再来一个对类进行多个条件标注的例子: package com.tianyalei.condition; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass...,然后控制台就开始报错。
然后取每一个组的前10个条目或者前5个条目来绘制柱形图或者气泡图。 那么问题来了,如何分组取前几行。今天小编就跟大家分享一个专业处理数据框的函数dplyr。...然后基于这个R包,我们用6种不同的方法来实现。...("dplyr") #加载dplyr包 library(dplyr) 我们先来看看直接head的效果 #直接head,结果不对 GO_result %>% group_by(ONTOLOGY) %>...top_n这个函数来输出每个组的前五行,wt是排序的依据,根据校正之后的p值来排序,n=-5是按从小到大排序。...会根据指定的p.adjust有小到大排序,然后取每组前5行 方法五、使用group_modify结合head #使用group_modify r5=GO_result %>% group_by(ONTOLOGY
RNA-SEQ分析的一个有用的初始步骤是评估样本之间的总体相似性: 哪些样本彼此相似,哪些不同? 这是否符合实验设计的预期? 数据集中的主要变异来源是什么?...然后,我们可以使用 plotPCA() 函数绘制前两个主成分。...我们看到PC1上的样本与我们感兴趣的条件之间有很好的分离,这很好;这表明我们感兴趣的条件是数据集中最大的变异源。...,并执行几种不同的可视化技术来探索我们的结果: 所有基因的结果表 显著基因结果表(padj<0.05) top20最显著的基因归一化表达散点图 所有显著基因的热图 结果的火山图 所有基因的结果表 首先,...sc_DE_volcano.png 采用有效的脚本对多个不同细胞类型群集进行分析,可使用用于成对比较的Wald检验或用于多组比较的似然比检验 。
我在看过的一些 Nature 文章和 COSMIC 数据库中看到用点图来展示不同癌症类型下 TMB 的分布差异。...还可以根据自己的需求调整背景面板的颜色: show_group_distribution(data, gvar = "gr", dvar = "yval", background_color =...难度有以下几点,感兴趣的读者不妨带着这些问题阅读源代码: 怎么对点排序,构建绘图坐标? 怎么对不同的 panel 展示不同的背景颜色?theme() 中的选项都不支持向量化,所以必须另辟蹊径。...我最后使用了 geom_rect(),我是怎么保证矩形画出来的填充跟背景效果一致的? 怎么保证图中的红线比例在不同的 panel 中一致? 怎么保证数据量只有 1-2 个这种情况也能画出图形?...::mutate(.order = dplyr::row_number()) %>% dplyr::group_by(.data$.gvar) %>% dplyr::arrange(.data
=1000, cores=8) 接着我们就可以根据cluster,partition或者colData(cds)来确定top n的基因表达量。...常用的方法是首先对细胞进行聚类,然后根据其基因表达谱为每个cluster注释一个细胞类型。 我们先创建一列新的colData。...colData(cds)$assigned_cell_type <- as.character(partitions(cds)) 然后我们进行一下手动注释,其实手动注释是最准的。...过滤条件: 1️⃣ JS specificty score > 0.5; 2️⃣ logistic test 有意义; 3️⃣ 不是多个细胞类型的marker。...这个文件你也可以进一步的加工一下,根据你的生物学背景等。 generate_garnett_marker_file(garnett_markers, file=".
2021-05-21:给定一个数组arr,先递减然后递增,返回arr中有多少个绝对值不同的数字? 福大大 答案2021-05-21: 双指针。左指针最左,符合条件时右移;右指针最右,符合条件时左移。
2)数据记录筛选(行筛选) filter函数:按指定条件筛选符合条件中逻辑判断要求的数据记录。...Min ;Max Mean ;Median ;Var ;Sd等 summarise(iris, max(Petal.Width), first(Sepal.Width)) #返回数据框中变量的最大值及第一四分位值...Q:按品种分组,分别计算花萼宽度的均方差 summarise(group_by(iris,Species),sd=sd(Petal.Width)) 8)连接操作符 dplyr包里还新引进了一个操作符,%...>%, 使用时把数据集名作为开头, 然后依次对此数据进行多步操作。...(x,y,by = NULL) #内连接,合并数据仅保留匹配的记录 by设置两个数据集用于匹配的字段名,默认使用全部同名字段进行匹配,如果两个数据集需要匹配的字段名不同,可以直接用等号指定匹配的字段名
) top10 % group_by(cluster) %>% top_n(10, avg_log2FC) DoHeatmap(sce,top10$gene,size...=3) ggsave(filename=paste0(pro,'_sce.markers_heatmap.pdf')) library(dplyr) top3 %...group_by(cluster) %>% top_n(3, avg_log2FC) DoHeatmap(sce,top3$gene,size=3) ggsave(paste0(pro,'DoHeatmap_check_top3...如果你还不知道clusterProfiler的compareCluster函数,赶快去看clusterProfiler4.0啦,它同步支持最新版GO和KEGG数据,支持数千物种的功能分析,应对不同来源的基因功能注释...新版本尤其实现多组数据间自由比较,如不同条件、处理等,并内置系列流行辅助工具,如数据处理包dplyr、可视化包ggplot2等,方便分析人员用熟悉的方式自由探索,实现数据高效解读。
.Reduce dimensions and Cluster cells 降维、聚类、分群、分partition 这里使用UMAP作为降维算法,再使用轨迹分区算法,把所有细胞分为两个partitio,不同分区的细胞会进行单独的轨迹分析...空间共表达效应,1代表此基因在空间距离相近的细胞中表达值高度相似。根据莫兰指数挑选前10个基因用于可视化。...degs <- dea_res$gene_short_name top_genes % dplyr::top_n(n = 10, morans_I) %>%...dplyr::pull(gene_short_name) %>% as.character() plot_genes_in_pseudotime(cds[top_genes, ], color_cells_by...of co-regulated genes 寻找共表达基因模块,根据上边的差异分析结果,按照UMAP和Louvain 聚类,将这些基因分在不同的模块中,有些模块在某些细胞中特异高表达。
这些变量应该是真正的属性,而不是同一属性在不同年、月等时间的值分别放到单独的列。...,后续的参数是条件,这些条件是需要同时满足的,另外,条件中取 缺失值的观测自动放弃,这一点与直接在数据框的行下标中用逻辑下标有所不同,逻辑下标中有缺失值会在结果中 产生缺失值。...dplyr 包的 distinct() 函数可以对数据框指定若干变 量,然后筛选出所有不同值,每组不同值仅保留一行。...R 数据整理(六:根据分类新增列的种种方法 1.0) 其他函数 slice dplyr 包的函数 slice(.data, ...) 可以用来选择指定序号的行子集,正的序号表示保留,负的序号表示排除。...group_by 按照某列对数据框进行分组,非常适合联合summarize 使用,获取指定组别不同类型内容的统计数值。
)3.Reduce dimensions and Cluster cells降维、聚类、分群、分partition这里使用UMAP作为降维算法,再使用轨迹分区算法,把所有细胞分为两个partitio,不同分区的细胞会进行单独的轨迹分析...=6)ps("UMAP_partition.pdf")图片图片4.Order cells in pseudotime along a trajectory手动选择root需要根据自己的生物学背景知识##...空间共表达效应,1代表此基因在空间距离相近的细胞中表达值高度相似。根据莫兰指数挑选前10个基因用于可视化。...degs % dplyr::top_n(n = 10, morans_I) %>% dplyr...genes寻找共表达基因模块,根据上边的差异分析结果,按照UMAP和Louvain 聚类,将这些基因分在不同的模块中,有些模块在某些细胞中特异高表达。
有5个基础的函数: - filter - select - arrange - mutate - summarise - group_by (plus) 可以和databases...以及data tables中的数据打交道。...plyr包的特点 其基础函数有以下特点: 第一个参数df 返回df 没有数据更改in place 正是因为有这些特点,才可以使用%>%操作符,方便逻辑式编程。...top_n(2,DepDelay) %>% arrange(UniqueCarrier, desc(DepDelay)) # for each month, calculate the number...1 justmarkdown的教程2
require(tidyr)) install.packages('tidyr') #根据一个包是否library成功来决定要不要安装这个包 练习7-1 图片 # 1.读取group.csv,从第二列中提取圈出来的信息...-(4)no:逻辑值为FALSE时的返回值 -(5)支持单个的逻辑值,也支持多个逻辑值组成的向量 -(6)相当于对向量的每个元素逐个进行判断,然后对判断结果F/T进行逐个替换; i = 1 ifelse...,"-") x = rnorm(3) x ifelse(x>0,"+","-") 4. ifelse()+str_detect()【王炸】 str_detect()可以检测样本中是不是含有某个字符,然后返回逻辑值...:不符合大于零的条件,就再进行一步判断; 练习7-2 # 1.加载deg.Rdata,根据a、b两列的值,按照以下条件生成向量x: #a< -1 且b<0.05,则x对应的值为down; #a>1 且b...,但顺序不同;对比之后发现我的是按排序前原本的先后顺序列出的(因为要一个一个检查是否是最大/最小的前十个);如果先arrange一下再%in%就可以跟老师的顺序一样了。
cds <- preprocess_cds(cds, num_dim = 100) num_dim 是降维的维数,默认为 100,这里是根据各组成部分解释的差异散点趋势图,也可以自己调整,建议安装默认维数进行降维...=1000, cores=8) #根据pseudo_R2方法对标记基因进行排序,取出每个cluster排名最高的基因 library(dplyr) top_specific_markers % filter(fraction_expressing >= 0.10) %>% group_by(cell_group) %>% top_n(1, pseudo_R2) top_specific_marker_ids...% pull(gene_id)) #绘制每个cluster中不同marker基因的表达量 plot_genes_by_group(cds...>= 0.10) %>% group_by(cell_group) %>% top_n(3, pseudo_R2) top_specific_marker_ids <- unique(top_specific_markers
R语言︱数据集分组、筛选(plit – apply – combine模式、dplyr、data.table) 同时,data.table与data.frame数据呈现方面,还有有所不同的。...2、按条件行筛选 从前用subset的方式进行筛选比较多, new=14,select=a:f) (1)单变量 现在data.table与dplyr from_dplyr =...用filter,content满足某种条件的进行筛选,而data.table的筛选方式很传统,比较简单。...(gender,buy_online)] #data.table用一步 dplyr:先用group_by设置分组,然后利用summarize求平均,mean=mean(); data.table...DT数据集按照x分组,然后计算v变量的和、最小值、最大值。 (2)dplyr函数利用%>%(链式操作)来改进: 链式操作是啥意思呢?
我们使用dplyr根据它准备一个tibble: # 获取世界10个最大的大陆 islands_tbl <- dplyr::tibble( name = names(islands),...针对行,我们可以使用以列名为变量的条件语句(例如size > 15000)。 这里有一个如何添加脚注的简单例子。...这里我们使用cells_data()靶向添加脚注的单元格,其他cells_*()函数有相似的接口,可以靶向表格不同的要素。...接下来我们将行划分为不同的组,创建行组。这个功能通过tab_row_group()函数实现,输入包括组名和组元素。...至于如何自定义组名的设定和选择,不妨发挥你们得想象力 列标签 类似于行组,使用tab_spanner()可以将多个列划分为不同的组。
有详细的文档介绍如何选择TF activity per cell population,根据 previously computed VIPER scores on DoRothEA’s regulons...: library(dplyr) sce.markers$fc = sce.markers$pct.1 - sce.markers$pct.2 top10 % group_by...看起来还不错,确实绝大部分的转录因子都是在不同单细胞亚群里面的特异性比较好: 特异性比较好 然后看看包官方教程 这个R包,DoRothEA on http://bioconductor.org/...有详细的文档介绍如何选择TF activity per cell population,根据 previously computed VIPER scores on DoRothEA’s regulons...首先也是获取Viper得分矩阵 ,根据不同细胞亚群进行归纳汇总 : ## We transform Viper scores, scaled by seurat, into a data frame to
设置工作路径 setwd("D:/sc-seq") 根据自己的数据存放位置自定义路径 4. 读取数据 该数据为harmony后的数据。...…") object:harmony整合后的对象; test.use:检验方法; only.pos:仅返回表达倍数大于0的基因(默认为 FALSE); logfc.threshold:类群中基因的平均表达量相对于所有其他类群的平均表达量的最小...5.2 筛选每个cluster中表达前10的基因 # 筛选p_val<0.05的基因 all.markers =cluster_markers %>% dplyr::select(gene,everything...()) %>% dplyr::filter(p_val<0.05) # 将avg_log2FC排名前10的基因筛选出来 top10 = all.markers %>% group_by(cluster)...%>% top_n(n = 10, wt = avg_log2FC) 输出文件: 5.3 手动查找maker基因进行注释 我们可以通过下面的数据库进行查找maker基因进行细胞注释。
领取专属 10元无门槛券
手把手带您无忧上云