Re: Help on Project Biojava
Spencer Bliven <[email protected]> Mon, 21 Nov 2016 12:10:44 +0100
| Newsgroups | gmane.comp.java.bio.general |
|---|---|
| Message-ID | <CA+P6arnhK3+8a+BZnnD6K83zOinachKxdcSGRuSost+L_CMDtQ@mail.gmail.com> |
--===============5930391427190421089== Content-Type: multipart/alternative; boundary=089e0149482a3d045f0541cdb6f4 --089e0149482a3d045f0541cdb6f4 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable > > =E2=80=A2 Mode-view-controller (MVC) (For interactive processing) > Biojava focuses mostly on providing models. However, the biojava-structure-gui package has some visualization tools using Swing. As a library, it's important for BioJava to have strong encapsulation between the MVC components, since downstream users might be using a different visualization package. There are a few places where MVC encapsulation is poor, but these are important issues to fix (e.g. #396 <https://github.com/biojava/biojava/issues/396>) > =E2=80=A2 Pipes and filters (or data flow) (For batch processing) - I thi= nk you > follow this one! > BioJava 4 provided this through IO streams for parsers and writers. With the move to Java 8, many of the newer APIs in BioJava 5 will support java.util.stream, which provides filtering and parallelization explicitly. BioJava is also compatible with Apache Spark, which enables scaling map/reduce style processing across clusters. > =E2=80=A2 Layered architecture (For complex systems with functionalities = at > different levels of abstraction) > Supported to some extent by the modular architecture of BioJava. BioJava is designed to function as a library, so you could view it as a data modelling layer embedded in some larger application by downstream users. > =E2=80=A2 Repositories (data centric) (For accessing & manipulating share= d data by > multiple subsystems) > One of the core goals of Biojava is to provide access to popular webservices (e.g. NCBI, EMBL, PDB). > =E2=80=A2 Client-server and N-tier systems (For accessing shared data and > resources from multiple locations) > This is more provided by downstream systems. For instance, the RCSB has used a client-server setup for large-scale structural alignments. The clients perform alignments using biojava, and then report results back to a central server for aggregation (Prlic et al (2010) Bioinformatics. 26(23): 2983-2985 <https://doi.org/10.1093/bioinformatics/btq572>). -Spencer --089e0149482a3d045f0541cdb6f4 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div class=3D"gmail_extra"><div class=3D"gmail_quote"><blo= ckquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left= :1px solid rgb(204,204,204);padding-left:1ex">=E2=80=A2 Mode-view-controlle= r (MVC) (For interactive processing)<br></blockquote><div><br></div><div>Bi= ojava focuses mostly on providing models. However, the biojava-structure-gu= i package has some visualization tools using Swing. As a library, it's = important for BioJava to have strong encapsulation between the MVC componen= ts, since downstream users might be using a different visualization package= . There are a few places where MVC encapsulation is poor, but these are imp= ortant issues to fix (e.g. <a href=3D"https://github.com/biojava/biojava/is= sues/396">#396</a>)</div><div>=C2=A0</div><blockquote class=3D"gmail_quote"= style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);p= adding-left:1ex"> =E2=80=A2 Pipes and filters (or data flow) (For batch processing) - I think= you follow this one!<br></blockquote><div><br></div><div>BioJava 4 provide= d this through IO streams for parsers and writers. With the move to Java 8,= many of the newer APIs in BioJava 5 will support=C2=A0java.util.stream, wh= ich provides filtering and parallelization explicitly. BioJava is also comp= atible with Apache Spark, which enables scaling map/reduce style processing= across clusters.</div><div>=C2=A0</div><blockquote class=3D"gmail_quote" s= tyle=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);pad= ding-left:1ex"> =E2=80=A2 Layered architecture (For complex systems with functionalities at= different levels of abstraction)<br></blockquote><div><br></div><div>Suppo= rted to some extent by the modular architecture of BioJava. BioJava is desi= gned to function as a library, so you could view it as a data modelling lay= er embedded in some larger application by downstream users.</div><div>=C2= =A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8e= x;border-left:1px solid rgb(204,204,204);padding-left:1ex"> =E2=80=A2 Repositories (data centric) (For accessing & manipulating sha= red data by multiple subsystems)<br></blockquote><div><br></div><div>One of= the core goals of Biojava is to provide access to popular webservices (e.g= . NCBI, EMBL, PDB).</div><div>=C2=A0</div><blockquote class=3D"gmail_quote"= style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);p= adding-left:1ex"> =E2=80=A2 Client-server and N-tier systems (For accessing shared data and r= esources from multiple locations)<br></blockquote><div><br></div><div>This = is more provided by downstream systems. For instance, the RCSB has used a c= lient-server setup for large-scale structural alignments. The clients perfo= rm alignments using biojava, and then report results back to a central serv= er for aggregation (<a href=3D"https://doi.org/10.1093/bioinformatics/btq57= 2">Prlic et al (2010) Bioinformatics. 26(23): 2983-2985</a>).</div><div><br= ></div><div><br></div><div>-Spencer</div></div></div></div> --089e0149482a3d045f0541cdb6f4-- --===============5930391427190421089== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Biojava-l mailing list - [email protected] http://mailman.open-bio.org/mailman/listinfo/biojava-l --===============5930391427190421089==--