单细胞系列教程:计数矩阵是如何生成的?(二)

导读

本文将介绍scRNA-seq的表达矩阵是如何生成。

1. 文库制备

根据所使用的文库制备方法,RNA 序列(也称为读数或标签)将来自转录本(10X GenomicsCEL-seq2Drop-seq)的 3' 末端(或 5' 末端) , inDrops) 或来自全长转录本 (Smart-seq)。

下面列出了这些方法的以下优点:

  • 3’ (or 5’)-end sequencing(3' 端测序):
    • 通过使用区分生物复制品和扩增 (PCR) 复制品的独特分子标识符进行更准确的量化
    • 测序的细胞数量多,可以更好地识别细胞类型
    • 成本更便宜
    • 最佳结果大于10,000 个细胞
  • Full length sequencing(全长测序):
    • 检测异构体水平的表达差异
    • 鉴定等位基因特异性表达差异
    • 对少量细胞进行更深入的测序
    • 最适合细胞数量少的样品

3' 端测序与全长测序需要执行许多相同的分析步骤,但 3' 越来越受欢迎,并且在分析中包含更多步骤。因此,将详细分析来自 3' 协议的数据,重点是基于液滴的方法(inDropsDrop-seq10X Genomics)。

2. 3’-end

对于 scRNA-seq 数据的分析,了解每个读数中存在哪些信息以及如何在分析中使用它是有帮助的。

对于 3' 端测序方法,源自同一转录本的不同分子的读数将仅源自转录本的 3' 端,因此具有相同序列的可能性很高。然而,文库制备过程中的 PCR 步骤也可能产生重复读取。为了确定读数是生物扩增还是技术扩增,这些方法使用唯一的分子标识符或 UMI

  • 映射到相同转录本的不同 UMI的读取来自不同的分子,并且是生物学重复,每个读取都应该被计算在内。
  • 具有相同 UMI 的读取来自相同的分子并且是技术重复,应该计为单个读取。
  • 在下图中,ACTB 的读取应计为单次读取,而 ARL1 的读取应分别计数。

所以需要检查 UMI,无论采用哪种液滴方法,在细胞水平上进行正确量化都需要以下内容:

  • Sample index:确定读取来自哪个样本。在文库准备期间添加,需要记录。
  • Cellular barcode:确定读取来自哪个单元格,每种文库制备方法都有一个在文库制备过程中使用的细胞条形码。
  • Unique molecular identifier (UMI):确定读取来自哪个转录分子,UMI将用于折叠 PCR 重复。
  • Sequencing read1:Read1 序列
  • Sequencing read2:Read2 序列

3. 流程

scRNA-seq方法将确定如何从测序读数中解析条形码和 UMI。因此,尽管一些具体步骤会略有不同,但无论采用何种方法,总体工作流程通常都会遵循相同的步骤。一般工作流程如下所示:

工作流程的步骤是:

  • 计数矩阵的生成:formating reads, demultiplexing samples, mapping and quantification
  • 原始计数矩阵的质控:过滤劣质细胞
  • 聚类:基于转录活性的相似性对细胞进行聚类(细胞类型 类似于 不同的clusters
  • marker鉴定和簇注释:识别每个簇的marker并注释已知的细胞类型簇
  • 下游其他分析

无论进行何种分析,基于每个条件的单个样本得出的关于总体的结论都是不可信的。仍然需要生物重复!也就是说,如果您想得出与总体相对应的结论,请做生物学重复。

4. 计数矩阵

首先讨论此工作流程的第一部分,即从原始测序数据生成计数矩阵。将重点关注基于液滴的方法使用的 3' 端测序,例如 inDrops10X GenomicsDrop-seq

测序后,要么将原始测序数据输出为 BCLFASTQ 格式,要么生成计数矩阵。如果读取是 BCL 格式,那么需要转换为 FASTQ格式。 bcl2fastq 工具可以轻松执行此转换。

对于许多 scRNA-seq 方法,从原始测序数据生成计数矩阵经历的步骤类似。

alevin 是一个命令行工具,用于估计 scRNA-seq 数据的表达,其中转录物的 3' 末端被测序。umi-tools 和 zUMI 是可以执行这些过程的附件。这些工具结合了 UMI以纠正假阳性。此过程中的步骤包括:

  1. 格式化读取和过滤嘈杂的cellular barcodes
  2. 样本拆分
  3. Mapping到转录组
  4. 根据UMI进行定量

如果使用 10X Genomics 文库制备方法,则 Cell Ranger 管道包含上述所有步骤。

5. 数据解析

使用 FASTQ 文件解析cell barcodes, UMIs, 和 sample barcodes。对于基于液滴的方法,由于以下原因,许多细胞条形码将匹配少量读取(< 1000 读取):

  • 从垂死的细胞中包裹自由漂浮的 RNA
  • 表达少量基因的细胞(红细胞等)
  • 由于未知原因死亡的细胞

在读取结果之前,需要从序列数据中过滤掉这些多余的条形码。为了进行这种过滤,提取并保存每个细胞的cellular barcodemolecular barcode。例如,如果使用umis工具,信息将添加到每次读取的header,格式如下:

@HWI-ST808:130:H0B8YADXX:1:1101:2088:2222:CELL_GGTCCA:UMI_CCCT
AGGAAGATGGAGGAGAGAAGGCGGTGAAAGAGACCTGTAAAAAGCCACCGN
+
@@@DDBD>=AFCF+<CAFHDECII:DGGGHGIGGIIIEHGIIIGIIDHII#

文库制备方法中使用的细胞条形码(cellular barcodes)是已知的,未知条形码将被丢弃,同时允许与已知细胞条形码的数量不匹配。

6. 数据拆分

如果对多个样本进行测序,则下一步是对样本进行拆分。这个过是由zUMIs完成的。需要解析读取以确定与每个单元格相关的样本条形码(sample barcode)。

7. 比对

为了确定reads来自哪个基因,使用传统 STARKallisto/RapMap进行align(对齐)。

8. 定量

重复的 UMI被去除,只有唯一的 UMI使用 KallistofeatureCounts 等工具进行定量。结果输出是一个细胞的基因计数矩阵:

矩阵中的每个值表示来自相应基因的单元格中的读取数。使用计数矩阵,可以探索和过滤数据,只保留高质量的单元格。

本文转载于网络 如有侵权请联系删除

相关文章

  • HTML5移动端开发的常用触摸事件

    大家好,又见面了,我是你们的朋友全栈君。HTML5移动端开发的常用触摸事件h5开发手机端是经常会有触摸事件和滑动事件HTML5中新添加了很多事件,但是由于他们的兼容问题不是很理想,应用实战性不是太强,所以在这里基本省略,咱们只分享应用广泛兼容不错的事件,日后随着兼容情况提升以后再陆续添加分享。今天为大家介绍的事件主要是触摸事件:touchstart、touchmove和touchend。  一开始触摸事件touchstart、touchmove和touchend是iOs版Safari浏览器为了向开发人员传达一些信息新添加的事件。因为iOs设备既没有鼠标也没有键盘,所以在为移动Safari浏览器开发交互性网页的时候,PC端的鼠标和键盘事件是不够用的。  在iPhone3Gs发布的时候,其自带的移动Safari浏览器就提供了一些与触摸(touch)操作相关的新事件。随后,Android上的浏览器也实现了相同的事件。触摸事件(touch)会在用户手指放在屏幕上面的时候、在屏幕上滑动的时候或者是从屏幕上移开的时候出发。下面具体说明:  touchstart事件:当手指触摸屏幕时候触发,即使已经

  • 总结:GET与POST请求方法有什么区别

    发现很多前端小伙伴的简历当中都写有这么一句:了解http协议。其实大可不必,因为http是前端基础中的基础。这就相当于一位厨师的简历中写着:熟练使用炊具。既然简历中出现这个知识点,那么紧随而来的便是面试官的提问:get与post方法有什么区别呢?大部分面试者都只会从单词字面上回答:get是从服务器获取数据,而post是向服务器传送数据。很显然上面的回答是无法让面试官信服的,下面是我对这两种请求方法的一些总结: 首先get和post都是http请求的方法。而http又是基于TCP/IP的应用层通信协议。所以本质上来说get和post请求是没有区别的,都是TCP链接。他们能做的事情也都是一样的(与服务器进行交互)。换言之:get能做的事,post也可以做,反之亦可!http协议提供这两种方法,也是在特定的情况下区分应用:1、参数位置:get请求的参数是放在url(query)里面的。而POST请求的参数是放置在请求体(content)里面的。当然post请求也是可以放置在url当中的。2、浏览器缓存:get请求可以被浏览器缓存,而post请求不能被缓存。 3、参数长度:get请求参数由于是

  • 分享几个有效的网站访问速度测试工具和方法(5个测速网页)

    一般我们选择主机和服务器搭建网站之后,如何进行网站访问速度测试的?老左一般采用的办法是选择服务器的时候肯定需要选择主流服务商,且在配置上不要太抠门,在机房上中文业务的站点尽量的选择国内机房,且带宽上也不要过分吝啬,基本上从硬件上速度不会太差。如果我们选择过分便宜的商家机器,即便是中国或者其他亚洲节点的CN2线路,速度也不会太好,要记住一分钱一分货。然后我们采用的办法就是人工的体验。比如我们自己公司的同事体验速度,包括多个浏览器的体验友好度。也有让其他地区的网友、同事进行访问速度测试,这个一般比较直观的检测到网站的访问速度。当然,速度的问题也有我们的主题和网站的功能有关系,这个具体我们会去检测网站网络的文件加载速度是否有拖累速度的文件。如果我们只是用来测试网站的访问速度,PING速度不是最好的测试办法,这个仅仅测试线路的PING延迟,对于网站的加载速度,需要检测到网站的文件加载速度,这个和主机是有关系,但是更有需要检查出来我们网站的文件兼容度和是否有提优的因素。这里,老左整理几个我们常见的网站加载访问速度测试,这个较多的用来测试国外的网站,比如我们的外贸类网站居多。因为这些工具较多的是英

  • SAP QM MARC和QMAT表里的’Post to Insp.Stock’标记

    SAPQMMARC和QMAT表里的’PosttoInsp.Stock’标记在项目上,我们发现某个成品物料明明激活了04检验类型,却发现该成品的工单产生后,相关的stocktype并不是QI的,而是默认为Un-restrictedUse的。这引起了我的好奇和警惕,抽时间去做了一番调查。1,比如物料号***0005451,其QM视图里检验类型的数据(QMAT表),如下图,各个检验类型包括04检验类型的界面里’Posttoinsp.stock’选项都有勾选上的。如上图。但是工厂数据QM视图里的’PosttoInsp.stock’选项却因故未能勾选上,如下图示:2,问题出在项目上物料主数据的批量导入是逐个视图导入的方式进行的,而MARC数据文件里字段‘PosttoInsp.stock'没有设置为X。3,这种数据的不一致,会导致该成品的工单收货后,库存不会进入质检状态。比如工单#3000027442,默认的stocktype不是QI的,如下图:4,实际上,SAP系统里QMAT和MARC表里,都有字段INSMK。MARC表,QMAT表,MARC表里的’Posttoinsp.stock’标

  • Linux上进行常用软件的配置方法

    当拿到一个新的linux服务器的时候一般要经过以下5个配置修改HOSTANME vi/etc/sysconfig/network 修改HOSTNAME和IP的映射 vi/etc/hosts 关闭防火墙 serviceiptablesstop 关闭防火墙的开机启动 chkconfigiptablesoff 重启linux服务器 reboot1.配置jdk 1.1.在home目录下创建apps目录(根据习惯)    mkdirapps1.2.使用xftp工具把jdk的解压包(tar.gz格式)上传到linux服务器的apps文件夹下 1.3.解压jdk的压缩包 tar-zxvfxxxxx.gar.gz 1.4.进入解压好的jdk中,并且获取到其的绝对路径 pwd 1.5.配置环境变量 vi/etc/profile 1.6.使环境变量立即生效 source/etc/profile 1.7.检测jdk是否配置成功 javac-version2.配置tomcat 也就是只要是从apache官网上下载的所有组件/框架/项目都需要jdk的环境变量支持 2.1.从官网下载tomcat8 2.2.使用x

  • prometheus-operator 监控 k8s 外部集群

    prometheus-operator监控k8s外部集群其实监控k8s外部集群和监控内部集群没啥区别,大概思路就是把外部资源通过endpoint的方式给他虚拟成k8s集群内部的一个资源,其实下面操作就是有点为了用k8s而用k8s了,有点吃力不讨好的架势,但是我们这里为了学习,可以玩耍prometheus-operator监控etcd无论是Kubernetes集群外的还是使用Kubeadm安装在集群内部的etcd集群,我们这里都将其视作集群外的独立集群,因为对于二者的使用方法没什么特殊之处。对于etcd集群一般情况下,为了安全都会开启https证书认证的方式,所以要想让Prometheus访问到etcd集群的监控数据,就需要提供相应的证书校验。由于我们集群是通过二进制安装的。所以我清楚的知道etcd证书存放的位置,kubeadm安装的可以通过kubectlgetpodetcd-master-nkube-system-oyaml找到证书etcd证书对应存放的位置#llca.pemclient.pemclient-key.pem -rw-r--r--.1rootroot13268月2021:

  • 盘点多款国产Linux桌面操作系统

    编辑:strongerHuang 微信公众号:strongerHuang 素材来源:百度百科、网络国产操作系统多为以Linux为基础二次开发的操作系统。2014年4月8日起,美国微软公司停止了对WindowsXPSP3操作系统提供服务支持,这引起了社会和广大用户的广泛关注和对信息安全的担忧。工信部对此表示,将继续加大力度,支持Linux的国产操作系统的研发和应用,并希望用户可以使用国产操作系统。一、深度操作系统深度(deepin)操作系统是由武汉深之度科技有限公司开发的Linux发行版。deepin操作系统是一个基于Linux的操作系统,专注于使用者对日常办公、学习、生活和娱乐的操作体验的极致,适合笔记本、桌面计算机和一体机。Deepin原名LinuxDeepin、deepinos、深度系统、深度操作系统。在2014年4月改名Deepin,2015年4月从deepin2014.3开始改名为deepin。deepin团队基于Qt/C++(用于前端)和Go(用于后端)开发了的全新深度桌面环境(DDE),以及音乐播放器,视频播放器,软件中心等一系列特色软件。网址:https://www.de

  • 应对LeanCloud对于处理性能的限制

    最近一直想如何才能统计资源分享页面里的资源的下载次数,由于是直接放的资源链接,即点击即可获取,所以没有所谓的拦截页面进行统计,同时作为静态博客也几乎没有带数据存储的动态扩展能力,这时想到了用LeanCloud来实现下载的计数,最后基本实现了这个想法,有兴趣的可以去资源分享里看看效果。更广泛的应用场景其实上面说的对下载次数进行统计实际上就是统计点击的计数,这就可以应用到更多的场景,比如给文章添加喜欢数、顶数、踩数等等,这是可以直接用的,处理逻辑都不变。 还有就是类似淘宝五颗星打分数的这种评分机制,也是可以稍作改变就可以。 总之,只要是由点击后触发数据更新的场景都可以用此来实现。这里,对如何实现整个需求暂不细说,主要说一下遇到的主要问题。LeanCloud查询处理的性能局限QPS 因特网上,经常用每秒查询率来衡量域名系统服务器的机器的性能,其即为QPS。 对应fetches/sec,即每秒的响应请求数,也即是最大吞吐能力。 计算关系: QPS=并发量/平均响应时间 并发量=QPS*平均响应时间 这里,LeanCloud对免费实例的QPS做了限制,可以理解,如果同时的查询发送的过多,则会使L

  • python装饰器的学习

    在python中,装饰器是一种增加函数功能的简单方法,利用装饰器功能可以很快的给不同的函数插入相同的功能。在函数的参数中,已经知道,除了形式参数外,其实函数也可以是函数的参数,见下面的代码,来实现这样的一个效果,deff1(): print('Hello') deff2(xxx): returnxxx复制在如上的代码中,函数f1()输出结果是"Hello",函数f2的参数是xxx,函数f2返回值是xxx,那么调用函数后,得到的结果见如下:函数f2()调用后,输出结果是函数f1()的输出结果,在函数f2()调用中,可以看到参数是函数f1()。在python中,这仅仅是一种实现的方式,函数的参数不仅仅是变量,也可以是函数。装饰器要实现的效果就是给不同的函数插入相同的功能,在软件开发过程中,这样的事情是经常遇到的,比如一个系统,有用户系统,业务系统,支付系统,要求每个系统加log的详细输出,直接写一个log详细输出的函数调用就可以了,但是如果又要求全部取消了,那么就把调用的log详细输出的函数代码屏蔽,很显然,这样的实现方式并不是很完美的解决方案,另

  • 『高级篇』docker之springboot,springcloud(八)

    介绍了很多关于微服务的东西,大家对微服务有了一些认识,但是考虑到各位老铁java比较多,那就不得不说springboot和springcloud。在java的世界里他们跟微服务有这密切的关系,刚接触springboot和springcloud的同学可能存在一种混乱,springboot跟微服务的关系,springcloud跟微服务的关系,springboot和springcloud他们之间的关联关系,帮大家沥青思路,撇清关系,不在背锅!SpringBoot的使命springBoot是spring旗下的项目,它具体为什么出现,他的使命是什么?最主要的就是化繁为简,让我们开发spring变的简单,各种xml的配置,各种bean,服务接口,实现,缓存,消息队列,里面没个3个以上的spring配置文件很难看出来你是spring的项目,有点麻烦配置文件太多了。独立运行java-jar*.jar原来的需要一个web服务器,tomcat,代码发布到服务器的指定位置。内嵌web服务器讲web服务器和应用的包打在一起,让我们不用关心细节一个命令就可以启动。简化配置尽可能自动化的配置spring,这里面很

  • 第五章:使用QueryDSL与SpringDataJPA实现查询返回自定义对象

    在我们实际项目开发中,往往会遇到一种多表关联查询并且仅需要返回多表内的几个字段最后组合成一个集合或者实体。这种情况在传统的查询中我们无法控制查询的字段,只能全部查询出后再做出分离,这种也是我们最不愿意看到的处理方式,这种方式会产生繁琐、复杂、效率低、代码阅读性差等等问题。QueryDSL为我们提供了一个返回自定义对象的工具类型,而Java8新特性Collection中stream方法也能够完成返回自定义对象的逻辑,下面我们就来看下这两种方式如何编写?本章目标基于SpringBoot平台完成SpringDataJPA与QueryDSL整合查询返回自定义对象的两种方式。构建项目我们先来使用idea工具创建一个SpringBoot项目,预先添加相对应的依赖,pom.xml配置文件内容如下所示:<?xmlversion="1.0"encoding="UTF-8"?> <projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.

  • 腾讯云负载均衡负载均衡API概览

    通用接口 接口名 Action 功能描述 查询负载均衡异步接口的执行结果 DescribeLoadBalancersTaskResult 查询负载均衡异步操作接口的执行结果。 购买负载均衡 CreateLoadBalancer 通过该接口来购买负载均衡。 查询负载均衡实例价格 InquiryLBPriceAll 查询负载均衡实例的价格。 查询负载均衡实例列表 DescribeLoadBalancers 查询负载均衡实例的列表。 删除负载均衡实例 DeleteLoadBalancers 删除负载均衡实例。 负载均衡监控接口 GetMonitorData 查询负载均衡的监控数据。 更换HTTPS类型负载均衡证书 ReplaceCert 更换负载均衡使用的证书。 查询证书关联的负载均衡监听器 GetCertListWithLoadBalancer 查询证书关联的负载均衡信息。 克隆负载均衡 CloneLB 克隆负载均衡。 传统型负载均衡相关接口实例相关接口 接口名 Action 功能描述 修改负载均衡属性信息 ModifyLoadBa

  • 编译安装的php 安装pdo_mysql扩展(php版本5.6.29)

    1.进入扩展目录 cd/etc/php-5.6.29/ext/pdo_mysql/复制 注:根据自己情况做适当改变 2.执行phpize /etc/php-5.6.29/scripts/phpize复制 3.编译 ./configure--with-php-config=/etc/php-5.6.29/scripts/php-config--with-pdo-mysql=/usr/bin/mysql复制 --with-php-config=/路径是你已经安装的php的路径下面的bin/php-config--with-pdo-mysql=你的mysql目录(我的mysql为apt-getinstall默认安装的目录) 注:php-config需要赋可执行权限否则会报错找不到php-config 4.make&makeinstall 可能会报错找不到mysql.h文件,默认搜索找不到头文件的位置,这时候需要建立软链接 sudoln-s/usr/include/mysql/*/usr/local/include/复制 执行完毕查看/usr/local/lib/php

  • 微信支付JSAPI模式及退款CodeIgniter集成篇

    微信支付接口文档:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_1 首先你得知道这个jsapi是不能离开微信进行调用支付的,明白了这个道理我们好下手,页面是在微信内显示并通过jsapi调用微信支付组件进行支付。 可以看看我们上一篇文章,主要是Native扫码支付模式二 我们仍然继续使用wechatpay.php这个支付集成类,简单方便好理解,不过如果应用jsapi的话这个类有个bug 在我们构造jsapi需要的参数时有个时间戳,我们用time()生成的,会报微信支付调用JSAPI缺少参数:timeStamp 修改如下: /** *获取js支付使用的第二个参数 */ publicfunctionget_package($prepay_id){ $data=array(); $data["appId"]=$this->_config["appid"];          //改动地方,把它变成字符串 $time=time(); $data["timeStamp"]="\"".$time.

  • 【CF1141E】Superhero Battle

    x ∗ p ≥ y → x = ⌊ y − 1 p ⌋ + 1

  • Linux shell逐行读取文件的方法

    方法1:while循环中执行效率最高,最常用的方法。 functionwhile_read_line_bottom(){ whilereadline do echo$line done<$FILENAME }复制   注释:我习惯把这种方式叫做read釜底抽薪,因为这种方式在结束的时候需要执行文件,就好像是执行完的时候再把文件读进去一样。 方法2:重定向法;管道法:cat$FILENAME|whilereadLINE functionwhile_read_line(){ cat$FILENAME|whilereadline do echo$line done }复制   注释:我只所有把这种方式叫做管道法,相比大家应该可以看出来了吧。当遇见管道的时候管道左边的命令的输出会作为管道右边命令的输入然后被输入出来。 方法3:文件描述符法 functionwhile_read_line_fd(){ exec3<&0 exec0<$FILENAME whilereadline do echo$line done exec0<&

  • 一、Spring Security

    一、SpringSecurity介绍 1、框架介绍 SpringSecurity基于Spring框架,提供了一套Web应用安全性的完整解决方案。一般来说,Web应用的安全性包括用户认证(Authentication)和用户授权(Authorization)两个部分。 (1)用户认证指的是:验证某个用户是否为系统中的合法主体,也就是说用户能否访问该系统。用户认证一般要求用户提供用户名和密码。系统通过校验用户名和密码来完成认证过程。 (2)用户授权指的是验证某个用户是否有权限执行某个操作。在一个系统中,不同用户所具有的权限是不同的。比如对一个文件来说,有的用户只能进行读取,而有的用户可以进行修改。一般来说,系统会为不同的用户分配不同的角色,而每个角色则对应一系列的权限。 SpringSecurity其实就是用filter,多请求的路径进行过滤。 (1)如果是基于Session,那么Spring-security会对cookie里的sessionid进行解析,找到服务器存储的sesion信息,然后判断当前用户是否符合请求的要求。 (2)如果是token,则是解析出token,然后将当前请求加

  • [分享] 微信支付中商户对个人用户付款案例

    转自:http://blog.csdn.net/ppqiaoping/article/details/51967625   随着微信支付的普及,越来越的APP要求支持微信支付。相信大多数开发者也碰到了这样的需求。百度了一下,大家用到最多的是微信支付中个人对商户的支付业务,而很少有人用到微信中商户对个人付款的业务。我最近就碰到了这样的需求,因为从来没有做过,所以只能查资料,可是百度到的资料很少,并且是过时的东西。又问了圈子里的高手,可是大家都没有做过。没办法只有硬着头皮自己拱吧!还好还好,功夫不负有心人啊!终于被我整明白了,现在得空,拿出来跟大家一起分享。   首先给大家吃颗定心丸,所有的东西在你没有用过之前,它都是神秘的,当你用过之后,就会发现,也就那么回事。呵呵,开始正题吧!   这是企业付款的文档地址,大家需要先仔细看两遍。https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_1(就算有我的指导,也建议大家先看文档,看文档能便于加深大家的理解)   总体思路:1、准备数据;2、把所有的参数连

  • java.lang.ClassCastException: $Proxy0 cannot be cast to javax.servlet.ServletRequestWrapper

    我是在myeclipse8.5使用代理的时候遇到这个问题的。因为我是跟着视频敲的,所以按道理代码是不会有问题。。最后经过我百折不挠的折腾,我发现问题的根源是myeclipse自带的tomcat。。我换成自己下载的tomcat6,bug就消失了。。以后不用myeclipsetomcat了。太坑

  • 6/15/2020

    晴   今天没有盯盘,指数冲高回落,个股表现相对活跃,涨幅9%以上个股79只。北上资金流出27亿,南下资金流入30亿,已经是连续4天递增流入。   由于对慢牛还是疯牛存在摇摆,吃不准证监会改革会不会改变A股的本质,暂时不敢乱买股票,空仓中。感觉今年很难有大涨,原因:   1)ZF都过苦日子了,下面得多严重,可想而知。今年财政吃紧,而货币政策忌惮通胀,也担心这几年去杠杆调结构的努力,被一次大水漫灌,功亏一篑。这种情况下,很难想象会启动什么牛市。   2)进入秋冬,疫情能否再次爆发席卷全球,仍然是个未知数。   3)面对疫情影响,各国不会把政策用完。“矫枉必须过正,不过正不能矫枉”(毛主席在《湖南农民运动考察报告》的原话),“过正”的刺激政策,应该留在年报公布后。也就是,那份惨不忍睹的成绩单摆在世人面前时,是“过正”的刺激打爆空头,矫正空头思维的最佳时机。   所以,明年年初,疫苗上市了、年报公布了,病毒的底细被摸透了,一轮政策刺激也该推出了,大涨更有底气。   但是,指数目前位置,好像也没有啥下跌空间,震荡有可能会维持下去。更多需要观察:   1)指数大跌后成交量的表现是不正常的,感觉像

  • ABC278 整合题解

    A A题,送分题。 link。 思路 数据范围很小,其实直接模拟也是可以通过的。 不过我们很容易想到\(O(n)\)的算法。 对于前\(k\)个数,不输出,其他数正常输出。 然后再在末尾补上\(k\)个\(0\)。 容易发现,这样也是正确的。只要特判一下\(k\gen\)的情况就行了,这个时候全部输出\(0\)。 代码 省去了大段的缺省源。 voidsolve() { intn,k; scanf("%d%d",&n,&k); if(k>=n) { for(inti=1;i<=n;i++)printf("0"); puts(""); exit(0); } for(inti=1;i<=n;i++) { intx; scanf("%d",&x); if(i>k)printf("%d",x); } while(k--)printf("0"); puts(""); } 复制 B B题,模拟题,难度较低。 link。 思路 我们发现,所谓的交换位置,就是:交换\(h\)的个位与\(m\)的十位。 所以直接模拟就行。而\(24\)小时制,就是指

相关推荐

推荐阅读