小编Jes*_*pin的帖子

获取"data_files"根目录的任何python函数?

对于使用"setup.py"构建安装包的开发人员而言,这应该是一个非常常见的问题,应该先问过它,但我无法在任何地方找到合适的答案.

在setup.py中

from distutils.core import setup
setup(
    ....,
    ....,
    data_files=[('MyApp/CBV', ['myapp/data/CBV/training.cbv', 'myapp/data/CBV/test.cbv'])],
    ....,
    ....,
    )
Run Code Online (Sandbox Code Playgroud)

sudo python setup.py安装的结果

running install
running build
running build_py
running build_scripts
running install_lib
running install_scripts
changing mode of /usr/local/bin/MyApp_trainer to 755
changing mode of /usr/local/bin/MyApp_reference_updater to 755
changing mode of /usr/local/bin/MyApp_predictor to 755
changing mode of /usr/local/bin/reference_updater to 755
running install_data
creating /usr/local/MyApp/CBV
copying MyApp/data/CBV/training.cbv -> /usr/local/MyApp/CBV
copying MyApp/data/CBV/test.cbv -> /usr/local/MyApp/CBV
running install_egg_info
Removing /usr/local/lib/python2.7/dist-packages/MyApp-0.1.0.egg-info
Writing /usr/local/lib/python2.7/dist-packages/MyApp-0.1.0.egg-info
Run Code Online (Sandbox Code Playgroud)

从使用上述结果的观察,"/ usr/local"是"data_files"根目录.除了硬编码,是否有任何Python函数可以给我这个"data_files"根目录?

python setup.py

16
推荐指数
1
解决办法
7349
查看次数

有没有一种最简单的方法来构建perl包

我在Ubuntu上写了一些Perl库(.pm)和Perlscripts(.pl),我需要将它们分发给我办公室的同事.这些脚本和库需要第三方库.我想让它变得非常简单.

关于我的信息.

  • 我知道如何创建一个Perl脚本.
  • 我知道如何创建bash文件.
  • 我没有创建MAKE文件,rpm,Deb等的经验.

ubuntu perl build

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

如何在bash脚本中从matlab获取返回值?

如果我有这个matlab功能

function [result] = matlab_test(param1, param2)

disp(sprintf('param1 : %s', param1));
disp(sprintf('param2 : %s', param2));

result = 'hello matlab';
Run Code Online (Sandbox Code Playgroud)

我想在bash脚本中调用这个matlab函数

matlab -nodesktop -nosplash -nodisplay -r "try, A=matlab_test('test','matlab'); end; quit"
echo $A
Run Code Online (Sandbox Code Playgroud)

我想要这个输出

test
matlab
hello matlab
Run Code Online (Sandbox Code Playgroud)

我的要求是找到是否可以在我的bash脚本中使用Matlab的返回值,并将其传递给管道.我只想将我的应用程序分成小组件(文件)并通过管道/参数进行通信.简而言之,我想看看我可以在我的bash脚本中包装Matlab脚本的程度,以便我可以设置我的代码架构.
如果我不能这样做,我只需将我需要返回值的部分从matlab捆绑到matlab脚本中.

bash matlab function return-value

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

是否有一个函数可以在给定对齐参数的情况下计算对齐序列的分数?

我尝试对已经对齐的序列进行评分.让我们说吧

seq1 = 'PAVKDLGAEG-ASDKGT--SHVVY----------TI-QLASTFE'
seq2 = 'PAVEDLGATG-ANDKGT--LYNIYARNTEGHPRSTV-QLGSTFE'
Run Code Online (Sandbox Code Playgroud)

给定参数

substitution matrix : blosum62
gap open penalty : -5
gap extension penalty : -1
Run Code Online (Sandbox Code Playgroud)

我确实浏览了biopython cookbook,但我能得到的是替换矩阵blogsum62,但我觉得必须有人已经实现了这种类型的库.

那么有人可以建议任何可以解决我的问题的库或最短的代码吗?

Thx提前

python bioinformatics biopython

6
推荐指数
2
解决办法
9096
查看次数

如何循环perl常量

我想做同样的事情

my @nucleotides = ('A', 'C', 'G', 'T');
foreach (@nucleotides) {
    print $_;
}
Run Code Online (Sandbox Code Playgroud)

但使用

use constant NUCLEOTIDES => ['A', 'C', 'G', 'T'];
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点 ?

arrays perl loops constants

6
推荐指数
2
解决办法
3620
查看次数

将字符串参数从bash脚本传递到matlab文件的最接近方法是什么?

我有matlab文件matlab_param.m

function matlab_param(param1, param2)

disp(sprintf('param1 : %s', param1));
disp(sprintf('param2 : %s', param2));
Run Code Online (Sandbox Code Playgroud)

我希望bash脚本bash_param.sh看起来像

#!/bin/bash
echo $1
echo $2
./matlab_param.m $1 $2
Run Code Online (Sandbox Code Playgroud)

我想运行这个bashscirpt

./bash_param.sh hello world
Run Code Online (Sandbox Code Playgroud)

它会打印出来

hello
world
param1 : hello
param2 : world
Run Code Online (Sandbox Code Playgroud)

我用谷歌搜索了几个小时,找不到任何确切的解决方案.我到目前为止最接近的是

matlab -nodesktop -nosplash -nodisplay -r "try, run ('./test_param.m'); end; quit"
Run Code Online (Sandbox Code Playgroud)

我需要硬编码所有参数.

parameters bash matlab

6
推荐指数
1
解决办法
3213
查看次数

如何在Perl中使用类属性/变量作为打印文件句柄?

我想做同样的事情

open MYFILE, ">", "data.txt";
print MYFILE "Bob\n";
Run Code Online (Sandbox Code Playgroud)

而是在类变量中

sub _init_tmp_db
{
    my ($self) = @_;

    open $$self{tmp_db_fh}, ">", "data.txt";
    print $$self{tmp_db_fh} "Bob\n";
}
Run Code Online (Sandbox Code Playgroud)

它给了我这个错误:'字符串找到了运营商预期的附近"Bob \n"'

我该怎么办?

syntax perl class file-writing

5
推荐指数
1
解决办法
821
查看次数

根据每个元素在矩阵中出现的频率,创建权重矩阵的最简单方法是什么?

这是输入矩阵

 7     9     6
 8     7     9
 7     6     7
Run Code Online (Sandbox Code Playgroud)

基于它们在矩阵中出现的频率(注意:这些值是出于解释目的.我没有提前预先计算它们.这就是为什么我问这个问题)

 number frequency
 6      2
 7      4
 8      1
 9      2
Run Code Online (Sandbox Code Playgroud)

和我期望的输出

 4     2     2
 1     4     2
 4     2     4
Run Code Online (Sandbox Code Playgroud)

有一个简单的方法吗?

matlab matrix

4
推荐指数
1
解决办法
3168
查看次数

编写bash脚本以接受所有可能方向的参数和输入的最简单方法是什么(类似于sort -k1 -r)?

我想编写一个bash脚本,可以处理类似于许多内置bash命令的参数和输入.例如,像sort一样,它可以处理

sort -k 1 -r input.txt
sort input.txt -k 1 -r
cat input.txt | sort -k 1 -r
sort -k 1 -r < input.txt
sort -k 1 -r <(cat input.txt)
Run Code Online (Sandbox Code Playgroud)

我希望我的脚本能够以类似的方式处理参数和输入

myscript.sh -i 3 -b 4 input.txt
myscript.sh input.txt -i 3 -b 4
cat input.txt | myscript.sh -i 3 -b 4
myscript.sh -i 3 -b 4 < input.txt
myscript.sh -i 3 -b 4 <(cat input.txt)
Run Code Online (Sandbox Code Playgroud)

到目前为止,我只使用了"read"和"getopts"中的一些功能,并认为如果我自己尝试这样做可能会出错.

为了让我更清楚地说明我的问题,请输入input.text的内容

aaa
bbb
ccc
Run Code Online (Sandbox Code Playgroud)

我想使用参数i和b中的值来做一些事情,但我只是在这个例子中打印出来.我想要的样本输出是

i : 3
b : 4
aaa
bbb
ccc …
Run Code Online (Sandbox Code Playgroud)

bash stdin command-line-parsing

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