用hadoop和java实现一种算法

ergxz8rk  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(265)

嗨,我正在尝试用hadoop和java实现一个新构建的生物信息学算法(我不确定是否可以实现)。为了在hadoop上实现这个算法,我在互联网上搜索了很多。然而,我发现的只是“识别并行任务并通过hadoop执行它们”。我真的很感激,如果你们能指导我正确的资源hadoop与java在互联网上,我可以找到一些坚实的例子以外的字数。我很懂java,但hadoop是我第一次。任何帮助都将不胜感激。
这就是我想做的
我有一个非常大的文本文件(大约100 mb),其中有一行随机的字符(a,g,t,c)。随机的a,g,t,c的长序列可能会形成一个重要的序列k字符串(atcgagc)。我可能会在这个名为“r”的文本文件的许多行中找到这个序列k-mer。
我必须执行以下任务
确定各种k-mer在r(整套/文件)中所有文本行(r)中的位置
我必须跟踪k-mer在特定r的位置。
我有两个参数用来比较不同r中的k-mers。
如果两个'r'中的k-mers满足上述参数比较,我必须更新邻居集n
如果你感兴趣,这是这里的伪代码

Given k, ĥ, ȇ
    1.  Make K  by extracting all possible kmers  from Reads
    2.  for all reads r belongs R do
            construct Gk[r] by scanning through r
            end for
    3.  for all k ε K do
                   for all read pairs (r,s) ε Gk × GK
                    if h(r,s) ≥ ĥ  and dk < ȇ h(r,s) then
                         update the N
                    end if
            end for
        end for

       k is k-mer
       K is set of all k
       ĥ minimum overlap distance
       ȇ maximum mismatch tolerance
       N neighbor set
       h(r,s)   overlap length of r and s wrt k
       d(r,s) distance between r and s
vc6uscn9

vc6uscn91#

看起来像是在输入文件中查找模式。查看grep.java和相关文件。它不能解决op中的确切问题,但它是最接近的匹配。

xj3cbfub

xj3cbfub2#

首先,这个问题看起来像“集合相似性”问题。在mapreduce平台上,有许多具有不同有效性的方法。开始看这里http://infolab.stanford.edu/~ullman/mmds.html 第三章。但前提是你的首要任务是:学习hadoop。如果不是。。。
其次,100mb—对于hadoop来说是非常小的数据量。当然,你根本不需要hadoop。甚至不会启动超过2个并行任务(默认情况下,hadoop每64mb启动1个任务)。您可以在纯java中实现任何相似性算法,它的运行速度会更快。

相关问题