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&#39;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 &amp; 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==--