首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何强制排序命令将'ADNP-AS1‘放在'ADNP2’后面,而不是相反?

如何强制排序命令将'ADNP-AS1‘放在'ADNP2’后面,而不是相反?
EN

Stack Overflow用户
提问于 2019-08-27 23:16:43
回答 2查看 37关注 0票数 1

我正在对一个包含基因表达数据的文本文件进行排序,我需要将基因名称按照特定的顺序排列,以便在后续的任务中使用。我正在使用一个.sh脚本来完成几个任务,包括排序。一些基因具有几乎相同的名称;一个很好的例子是序列"ADNP","ADNP2","ADNP-AS1“。我需要用连字符连接的基因名称排在排序的最后,但现在它排在第二位。

我曾认为添加排序的LC_CTYPE="en_us.UTF-8“和LC_COLLATE="en_us.UTF-8”选项可以解决这个问题,因为这些是在不同的本地计算机上有效的区域设置选项。然而,我总是得到相同的结果。

我尝试过使用echo -e "ADNP ADNP2 ADNP-AS1“| sort和各种排序选项。当我这样做时,我得到了正确的顺序。但是,在运行shell脚本时(如下所示),我不这样做。我还将提供以下输出

下面是shell脚本的摘录

代码语言:javascript
复制
tail -n +2 $tpm | LC_CTYPE=en_us.UTF-8 sort -k1,1 | cut -f 4  > "${wd}/${sample}_host.tmp"

以下是我的区域设置

代码语言:javascript
复制
locale   
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
EN

回答 2

Stack Overflow用户

发布于 2019-08-28 07:07:14

下面是一个在R中可重现的最小示例:

代码语言:javascript
复制
> geneSamp <- c("ADNP", "ADNP-AS1", "ADNP2")
> sampExprVals <- c(10, 20, 0)
> geneDF <- data.frame(geneSamp, sampExprVals)
> correctGeneOrder <- data.frame(a = c("ADNP", "ADNP2", "ADNP-AS1"), b = c(10, 0, 20))
> geneDF <- geneDF[order(match(correctGeneOrder[, 1], geneDF[, 1])),]
> print(geneDF)
  geneSamp sampExprVals
1     ADNP           10
3    ADNP2            0
2 ADNP-AS1           20

不幸的是,我仍然不知道如何解决问题的根源,但这是一个相当简单的变通办法,很容易在我们已经运行的解析循环中实现。

票数 2
EN

Stack Overflow用户

发布于 2019-08-29 19:05:59

使用echo

-e "ADNP ADNP2 ADNP-AS1“|排序…,我得到了正确的顺序。

这就不足为奇了,因为名称已经在一行中按所需顺序排列,而且sort不会更改一行中的单词顺序。相比之下,

代码语言:javascript
复制
echo -e "ADNP\nADNP2\nADNP-AS1"|sort

产生不需要的订单

代码语言:javascript
复制
ADNP
ADNP-AS1
ADNP2

我仍然不知道如何解决问题的根源

如果如图所示,连字符后面有一个字母,则sort -d (仅考虑空格和字母数字字符)将生成所需的顺序。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57677814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档