{"action":"created","issue":{"url":"https://api.github.com/repos/uchicago-bio/2015-Autumn-Forum/issues/45","labels_url":"https://api.github.com/repos/uchicago-bio/2015-Autumn-Forum/issues/45/labels{/name}","comments_url":"https://api.github.com/repos/uchicago-bio/2015-Autumn-Forum/issues/45/comments","events_url":"https://api.github.com/repos/uchicago-bio/2015-Autumn-Forum/issues/45/events","html_url":"https://github.com/uchicago-bio/2015-Autumn-Forum/issues/45","id":113740074,"number":45,"title":"Parallel alignment: Global or local scores?","user":{"login":"bjmc","id":328557,"avatar_url":"https://avatars.githubusercontent.com/u/328557?v=3","gravatar_id":"","url":"https://api.github.com/users/bjmc","html_url":"https://github.com/bjmc","followers_url":"https://api.github.com/users/bjmc/followers","following_url":"https://api.github.com/users/bjmc/following{/other_user}","gists_url":"https://api.github.com/users/bjmc/gists{/gist_id}","starred_url":"https://api.github.com/users/bjmc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bjmc/subscriptions","organizations_url":"https://api.github.com/users/bjmc/orgs","repos_url":"https://api.github.com/users/bjmc/repos","events_url":"https://api.github.com/users/bjmc/events{/privacy}","received_events_url":"https://api.github.com/users/bjmc/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2015-10-28T04:12:15Z","updated_at":"2015-10-30T04:35:48Z","closed_at":null,"body":"For question # 4, are we supposed to be have our program report the global alignment score between the two sequences? Or the best local alignment?"},"comment":{"url":"https://api.github.com/repos/uchicago-bio/2015-Autumn-Forum/issues/comments/152413474","html_url":"https://github.com/uchicago-bio/2015-Autumn-Forum/issues/45#issuecomment-152413474","issue_url":"https://api.github.com/repos/uchicago-bio/2015-Autumn-Forum/issues/45","id":152413474,"user":{"login":"bdallen-uchicago","id":14986570,"avatar_url":"https://avatars.githubusercontent.com/u/14986570?v=3","gravatar_id":"","url":"https://api.github.com/users/bdallen-uchicago","html_url":"https://github.com/bdallen-uchicago","followers_url":"https://api.github.com/users/bdallen-uchicago/followers","following_url":"https://api.github.com/users/bdallen-uchicago/following{/other_user}","gists_url":"https://api.github.com/users/bdallen-uchicago/gists{/gist_id}","starred_url":"https://api.github.com/users/bdallen-uchicago/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bdallen-uchicago/subscriptions","organizations_url":"https://api.github.com/users/bdallen-uchicago/orgs","repos_url":"https://api.github.com/users/bdallen-uchicago/repos","events_url":"https://api.github.com/users/bdallen-uchicago/events{/privacy}","received_events_url":"https://api.github.com/users/bdallen-uchicago/received_events","type":"User","site_admin":false},"created_at":"2015-10-30T04:35:48Z","updated_at":"2015-10-30T04:35:48Z","body":"I guess I see how breaking up the database is a nice general way of dividing the work for any query you might want to run against it, particularly if you typically have 16 cores and break the db up into 16 parts. What seems odd about this to me is that since you are querying the database against itself, your query is also the entire database. You also have to divide that up somehow to run across nodes, but each query partition needs to be aligned against the entire database (or all chunks), not just itself.\r\n\r\nIf you wanted to use 16 nodes, with 16 tasks/cores on each, then the query chunks could just be an entire db, so on a given node, you would take one chunk of the db, and in 16 threads, compare all the sequences in that chunk to each sequence in one of the target db chunks. That's not very flexible though. To use N nodes as a script arg, you could assign increasing numeric values to each node, and have it scan through the entire db to find a certain section of it based on N and the db size. E.g. if you want to run on 25 nodes, db size of 100, each would get 4, and node i (assuming zero based) would start at offset 4i. Basically doing sequential I/O to skip over the sequences before it. Or you could index the db and do a file seek straight to the desired record. Or create another split copy of the database for the query, tailored to the number of nodes you plan on running it against."}}