[Swift-devel] Re: BLAST on Swift

Allan Espinosa aespinosa at cs.uchicago.edu
Fri Nov 21 17:35:41 CST 2008


Hi,

Here is a modification of the blast swiftscript:

type database;
type query;
type output;
type error;

(output out, error err) blastall(query i, database pref, database db[]) {
  app {
    blastall "-p" "blastp" "-F" "F" "-d" @filename(pref) "-i"
@filename(i) "-v" "300" "-b" "300" "-m8" "-o" @filename(out)
stderr=@filename(err);
  }
}

database pirpref <"/disks/ci-gpfs/swift/blast/pir/UNIPROT_for_blast_14.0.seq">;
database pir[] <filesys_mapper;location="/disks/ci-gpfs/swift/blast/pir",
pattern="UNIPROT_for_blast_14.0.seq*">;
output out <"test.out">;
query i <"test.in">;
error err <"test.err">;
(out,err) = blastall(i, pirpref, pir);

The blastall binary tries to implement its own data management so we
specify in the commandline only the *prefix* name of the database.  I
made a zero-size dummy file named $PREFIX in the directory of the
input database files.  Then i pass the entire array to the function to
satisfy data dependency.

I noticed that "ls | sort" on the directory will return $PREFIX first
in the list of files.  Swift on the other hand returns it as a last
element.

I'd like to try this script out on Ranger for a full blast run.
Anyone have preconfigured sites.xml for this system?

Thanks,
-Allan


On Sat, Nov 15, 2008 at 3:10 PM, Allan Espinosa
<aespinosa at cs.uchicago.edu> wrote:
> Hi all,
>
> I was able to run Blast locally on communicado today.  The swift
> script basically needs the query an database file passed to the atomic
> function.  It then returns the resultant sequence and stderr logs.
>
> Below is the swift script:
> ---start---
> type database;
> type query;
> type output;
> type error;
>
> (output out, error err) blastall(query i, database db) {
>  app {
>    blastall "-p" "blastp" "-F" "F" "-d" @filename(db) "-i"
> @filename(i) "-v" "300" "-b" "300" "-m8" "-o" @filename(out)
> stderr=@filename(err);
>  }
> }
>
> database pir <simple_mapper;prefix="/disks/ci-gpfs/swift/blast/pir/UNIPROT_for_blast_14.0.seq">;
> output out <"test.out">;
> query i <"test.in">;
> error err <"test.err">;
> (out,err) = blastall(i, pir);
> ---end---
>
> I looked at the dock6 documentation for OSG.  It looks that it
> recommends to transfer the datafiles to OSG sites manually via
> globus-url-copy. By my understanding of how swift works, it should be
> able to transfer my local files to the selected sites.  I have yet to
> try this and will look more on examples in the data management side of
> Swift.
>
> Do you know other users who went in this approach?  The documentation
> has only a few examples in managing data.  I'll check the swift Wiki
> later and see what material we have and also post this email/ notes.



More information about the Swift-devel mailing list