小编Bad*_*ade的帖子

并行运行单独的进程 - Python

我使用python'multiprocessing'模块在多个内核上运行单个进程,但我希望并行运行几个独立的进程.对于ex - 进程一解析大文件,进程二找不到文件中的模式,进程三进行一些计算; 可以并行运行具有不同参数集的所有三个不同的处理吗?

def Process1(largefile):
    Parse large file
    runtime 2hrs
    return parsed_file

def Process2(bigfile)
    Find pattern in big file
    runtime 2.5 hrs
    return pattern

def Process3(integer)
    Do astronomical calculation
    Run time 2.25 hrs
    return calculation_results

def FinalProcess(parsed,pattern,calc_results):
    Do analysis
    Runtime 10 min
    return final_results

def main():
parsed = Process1(largefile)
pattern = Process2(bigfile)
calc_res = Process3(integer)
Final = FinalProcess(parsed,pattern,calc_res)

if __name__ == __main__:
    main()
    sys.exit()
Run Code Online (Sandbox Code Playgroud)

在上面的伪代码Process1中,Process2和Process3是单核过程,即它们不能在多个处理器上运行.这些过程按顺序进行,取2 + 2.5 + 2.25hrs = 6.75小时.是否可以并行运行这三个过程?这样它们可以在不同的处理器/内核上同时运行,并且当大部分时间(Process2)完成时,我们将转移到Final Process.

我将衷心感谢您的帮助.

AK

python parallel-processing multiprocessing python-3.x

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

使用Queue写入同一文件的Python多处理

我知道Stack Exchange上有很多关于将多处理结果写入单个文件的帖子,我在阅读了那些帖子之后开发了我的代码.我想要实现的是并行运行'RevMapCoord'函数,并使用multiprocess.queue将其结果写入一个文件中.但是我在排队工作时遇到了问题.我的代码:

def RevMapCoord(list):
    "Read a file, Find String and Do something"

def feed(queue, parlist):
    for par in parlist:
        print ('Echo from Feeder: %s' % (par))
        queue.put(par)
    print ('**Feeder finished queing**')

def calc(queueIn, queueOut):
     print ('Worker function started')
     while True:
         try:
             par = queueIn.get(block = False)
             res = RevMapCoord(final_res)
             queueOut.put((par,res))
         except:
             break

def write(queue, fname):
    fhandle = open(fname, "w")
    while True:
         try:
            par, res = queue.get(block = False)
            print >>fhandle, par, res
         except:
            break
    fhandle.close()


feedProc = Process(target = feed …
Run Code Online (Sandbox Code Playgroud)

python queue file-io multiprocessing

7
推荐指数
2
解决办法
8678
查看次数

控制ggplot2中的颜色透明度

我想使用值为 1 到 10 的“x”列来控制手动指定颜色的透明度。我可以通过添加“alpha = x”来实现此目的,但在这种情况下,我会在散点图中看到深色点。有人可以帮忙吗?

这是我的代码:

plot1 <- qplot(data=srna[srna$norm_sum > 0 & srna$len > 18 & srna$len < 25, ], x=position,y=norm_sum,colour= len)
plot1 + geom_point(size=4) +
  theme_bw()+
#   scale_alpha_continuous(range = c(0.1, 0.8))+
  scale_colour_manual(values = c("19" = "pink","20" = "blue","21" = "green", "22" = "yellow","23" = "violet", "24" = "red"))+
  theme(panel.grid.minor.x = element_line(colour='grey94'),panel.grid.minor.y = element_line(colour='grey94'),
        panel.grid.major.x = element_line(colour='lightgrey'),panel.grid.major.y = element_line(colour='lightgrey'))
Run Code Online (Sandbox Code Playgroud)

r ggplot2

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

更改不匹配模式的行的大小写

我有一个这种格式的大文件:

> Abc1 | 一些文字

atgcgnntcagacagacaa

> Abc2 | 一些不同的文字

nnatgcgatgacatacanggaaga

> Abc3 | 其他一些文字

gcatgacagagacagatgacaggcacacg

我所要做的就是改变不以'> Abc'开头的行的情况.似乎很简单,但我不知道它为什么不起作用:

sed -n '/^>/! y/atgcn/ATGCN/' sequence.fa > test2
Run Code Online (Sandbox Code Playgroud)

我很感激你的帮助.

AK

linux sed pattern-matching substitution

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