小编kva*_*our的帖子

FASTA文件的序列长度

我有以下FASTA文件:

>header1
CGCTCTCTCCATCTCTCTACCCTCTCCCTCTCTCTCGGATAGCTAGCTCTTCTTCCTCCT
TCCTCCGTTTGGATCAGACGAGAGGGTATGTAGTGGTGCACCACGAGTTGGTGAAGC
>header2
GGT
>header3
TTATGAT
Run Code Online (Sandbox Code Playgroud)

我想要的输出:

>header1
117
>header2
3
>header3
7
# 3 sequences, total length 127.
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

awk '/^>/ {print; next; } { seqlen = length($0); print seqlen}' file.fa
Run Code Online (Sandbox Code Playgroud)

我用这段代码得到的输出是:

>header1
60
57
>header2
3
>header3
7
Run Code Online (Sandbox Code Playgroud)

我需要一个小修改来处理多个序列行.

我还需要一种方法来获得总序列和总长度.欢迎任何建议......请在bash或awk中.我知道在Perl/BioPerl中很容易做到这一点,实际上,我有一个脚本可以用这些方式来做.

bash awk fasta

12
推荐指数
1
解决办法
1万
查看次数

将float转换为字符串时如何加速此代码?

我已经对我的单元测试进行了分析,并且应用程序运行的大部分时间都花费在这部分代码上.它是一个将float转换为字符串的函数.如何重写下面的代码以获得更好的速度性能?

我误读了报告,瓶颈在其他地方吗?

该档案报告指出:

总CPU%= 13.02%,自CPU%.07,总CPU(ms)769,自CPU超出100%769 ms.

5907个样本中有769个.

std::string FloatToScientificString(float val, int width, int precision)
{
    std::stringstream buffer;
    buffer << std::scientific << std::setw(width) << std::setprecision(precision) << std::setfill(' ') << val;
    return buffer.str();
}
Run Code Online (Sandbox Code Playgroud)

c++ performance

12
推荐指数
1
解决办法
787
查看次数

需要知道如何在Linux机器上安装gdb

我试图在Linux机器上安装gdb,但我不知道要安装什么文件?

你有没有人能帮到这个?

linux debugging gdb

11
推荐指数
1
解决办法
3万
查看次数

GitHub如何猜测文件的编码?

GitHub如何猜测文本文件的编码?

我的存储库中有两个文本文件:README.ru.koi8-r和mpman-ru.tex,两者都使用编码koi8-r.GitHub对第一个使用正确的编码,对第二个使用错误.

也许有一个强制正确猜测的伎俩?

github character-encoding

10
推荐指数
1
解决办法
291
查看次数

最近24小时将文件从HDFS中的多个目录复制到本地

从HDFS到本地获取数据时遇到问题。我有例如:

/path/to/folder/report1/report1_2019_03_24-03_10*.csv
/path/to/folder/report1/report1_2019_03_24-04_12*.csv
...
/path/to/folder/report1/report1_2019_03_25-05_12*.csv
/path/to/folder/report1/report1_2019_03_25-06_12*.csv
/path/to/folder/report1/report1_2019_03_25-07_11*.csv
/path/to/folder/report1/report1_2019_03_25-08_13*.csv
/path/to/folder/report2/report2_out_2019_03_25-05_12*.csv
/path/to/folder/report2/report2_out_2019_03_25-06_11*.csv
/path/to/folder/report3/report3_TH_2019_03_25-05_12*.csv
Run Code Online (Sandbox Code Playgroud)

因此,我需要输入每个文件夹(report1,report2,report3 ...,但并非所有文件夹都以“ report”开头),然后输入从先前24小时复制到本地的CSV文件,并且应该每天早晨4点完成是(我可以使用crontab安排它)。问题是我不知道如何遍历文件并将时间戳记作为参数传递。

我已经尝试过类似的东西(在Stack Overflow上找到)

/datalake/hadoop/bin/hadoop fs -ls /path/to/folder/report1/report1/*    |   tr -s " "    |    cut -d' ' -f6-8    |     grep "^[0-9]"    |    awk 'BEGIN{ MIN=1440; LAST=60*MIN; "date +%s" | getline NOW } { cmd="date -d'\''"$1" "$2"'\'' +%s"; cmd | getline WHEN; DIFF=NOW-WHEN; if(NOW > DIFF){ print "Migrating: "$3; system("datalake/hadoop/bin/hadoop fs -copyToLocal /path/to/local_dir/"$3) }}'
Run Code Online (Sandbox Code Playgroud)

但这是复制比我早几天的文件,并且仅从一个目录(在本例中为report1)复制文件。

有什么方法可以使此操作更加灵活和正确。如果可以使用bash而不是Python来解决问题,那就太好了。任何建议都欢迎或链接到具有类似问题的良好答案。

另外,也不必处于某个循环中。我可以为每个报告使用分隔的代码行。

bash hadoop hdfs

9
推荐指数
1
解决办法
658
查看次数

为什么测试"$?" 一个反模式,看一个命令是否成功?

我在这里看到测试是否$?是零(成功)或其他东西(失败)是反模式,但我无法在其他任何地方找到它.

坚持维基百科反模式的定义:"反模式(或反模式)是对反复出现的问题的常见反应,这种反复出现的问题通常是无效的,并且可能会产生极大的反作用." 为什么这会是反模式?

bash shell sh

8
推荐指数
1
解决办法
476
查看次数

在具有无限多态实体的Fortran中,通用解析是否可行

当您尝试通过通用接口或组合模块或通过类型绑定过程重载子例程时,必须考虑具有相同通用名称的任何过程必须具有可区分或不兼容的参数.

当使用无限多态实体时,您可以快速运行这个令人难以置信的教育示例中演示的问题:

INTERFACE foobar
  SUBROUTINE foo(x)
    INTEGER :: x
  END SUBROUTINE foo
  SUBROUTINE bar(x)
    CLASS(*) :: x
  END SUBROUTINE bar
END INTERFACE foobar
Run Code Online (Sandbox Code Playgroud)

在这里,foo(x)与bar(x)作为参数的冲突bar也可以是一个INTEGER.

可以使用SELECT TYPE新子例程中的构造来解决此特定问题,该子例程替换了通用接口:

SUBROUTINE foobar(x)
  CLASS(*) :: x
  SELECT TYPE (x)
    TYPE IS INTEGER
      CALL foo(x)
    CLASS default
      CALL bar(x)
  END SELECT
END SUBROUTINE foobar
Run Code Online (Sandbox Code Playgroud)

然而,有时这样的结构会变得乏味且不必要.

是否有其他方法可以在不使用构造的情况下实现此类专业化SELECT TYPE?

fortran

8
推荐指数
1
解决办法
301
查看次数

这个star(*)符号在C++中的含义是什么? - 指向会员的指针

在我的项目中,MyClass.h文件中有几行

class MyClass{
public:
....

#ifndef __MAKECINT__
  std::vector<Status_e(MyClass::*)(TupleInfo & info)> m_processObjects; //!
#endif
....
}
//The Status_e is an enum type
//The TupleInfo is a struct
Run Code Online (Sandbox Code Playgroud)

我*在上面的代码片段中无法理解这个用法.在MyClass.cxx文件中,m_processObjects用作:

for (unsigned int f = 0; f < m_processObjects.size(); ++f) {
    status = (this->*m_processObjects[f])( m_tuples[i] );
    if ( status == FAILURE ) {
      return EL::StatusCode::FAILURE;
    }
....
}
....
Run Code Online (Sandbox Code Playgroud)

我从来没有听说过这样的用法this->*blabla,但这段代码片段有效.那意味着什么?

c++ pointers

8
推荐指数
1
解决办法
425
查看次数

将不同列的大数据文件合并为一个大文件

我有 N 个制表符分隔的文件。每个文件都有一个标题行,说明列的名称。某些列对于所有文件是通用的,但有些列是唯一的。

我想将所有文件合并成一个包含所有相关标题的大文件。

例子:

> cat file1.dat
a b c
5 7 2
3 9 1

> cat file2.dat
a b e f
2 9 8 3
2 8 3 3
1 0 3 2

> cat file3.dat
a c d g
1 1 5 2

> merge file*.dat
a b c d e f g
5 7 2 - - - -
3 9 1 - - - -
2 9 - - 8 3 -
2 8 …
Run Code Online (Sandbox Code Playgroud)

bash awk r dataframe

8
推荐指数
2
解决办法
306
查看次数

为什么求幂的优先级低于一元加减的优先级?

大多数语言(例如 Fortran、Python、Ruby、Perl、Awk 等)定义的幂运算符的优先级高于一元加号和减号的优先级。这会产生以下结果:

In [1]: -2**1
Out[1]: -2

In [2]: -2**2
Out[1]: -4
Run Code Online (Sandbox Code Playgroud)

诸如 Ksh、bash、zsh 之类的 Shell 将这两个运算符的优先级颠倒了。这导致了令人惊讶的结果:

$ echo $((-2**1))
-2
$ echo $((-2**2))
4
Run Code Online (Sandbox Code Playgroud)

问题:为什么 shell 有这种特殊的优先顺序?我认为这是基于系谱的ksh > bash > zsh。但是还是..

注意:求幂不是 POSIX 的一部分

注意:其他语言/解释器存在类似的优先顺序,例如bc,tcl


相关问题:

bash ksh zsh operator-precedence language-lawyer

8
推荐指数
1
解决办法
164
查看次数