我使用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
我知道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) 我想使用值为 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) 我有一个这种格式的大文件:
> Abc1 | 一些文字
atgcgnntcagacagacaa
> Abc2 | 一些不同的文字
nnatgcgatgacatacanggaaga
> Abc3 | 其他一些文字
gcatgacagagacagatgacaggcacacg
我所要做的就是改变不以'> Abc'开头的行的情况.似乎很简单,但我不知道它为什么不起作用:
sed -n '/^>/! y/atgcn/ATGCN/' sequence.fa > test2
Run Code Online (Sandbox Code Playgroud)
我很感激你的帮助.
AK