BRCAPro Web Service 1.0

convertingtownSoftware and s/w Development

Nov 4, 2013 (3 years and 9 months ago)

217 views

BRCAPro Web Service 1.0, Technical Guide

Date:
12/1/09


_________________________________________________________________________
________________________



Prepared by 5AM Solutions, Inc.
|

i


















B
RCA
Pro Web Service 1.0

Technical Guide


Delivered to:

Tom Bechtold


Prepared by
:

5AM Solutions, Inc.

11710 Plaza America Drive

Suite 2000

Reston, VA 20190

Contact:
Makiko Du
ncan

E
-
mail:
mduncan@5amsolutions.com

BRCAPro Web Service 1.0

SUBMITTED

Technical Guide


Date: 11/25/2009




Document Approvals

The list contains the name for the core project team and any key stakeholders who have an interest in the
success of the project. An “S” identifies persons responsible for approval from the
Business and
Development. Sign off of the document would be required when a decision is made not to take action for
defined gaps.


S

Name

Role

S

Name

Role

S

Maki Duncan

Program Manager





J Ireland

Architect










Revision History

When you make a
change to a document, you must add an entry to this Revision History table and you
must manually type the Last Revised Date on the front cover.


Date

Version

Description

Revised by

11/22
/2009

0.1

Initial draft.

Deb Dasgupta

11/24
/2009

0.2

Added

of new in
put parameters

(new brcapro_input.xsd
and sample xml files)

R. Hannes Niedner

11/24/2009

0.3

Minor edits and changes to input requirements.

J Ireland

11/25/2009

0.4

Updated architecture description and added description
of new input parameters.

Deb
Dasgupta

12
/
01
/2009

0.5

Corrected typos,

changed formatting of commands,

refined

deployment instructions
, added integration test
instructions

R. Hannes Niedner

12/10/2009

0.6

Changed references to the 1.0.3 Release

R. Hannes Niedner

12/10/2009

0.6

Changed references to the 1.0.4 Release

R. Hannes Niedner





Copyrights and Trademarks

© Copyright 2008
-
9 by 5AM
Solutions, Inc. All rights reserved.
BRCAPro Web Service 1.0

SUBMITTED

Technical Guide


Date: 11/25/2009



Table of Contents

1.

Architectural Representation

................................
................................
....................

1

1.1

Third party dependencies

................................
................................
................................
............................

2

1.1.1

R

................................
................................
................................
................................
........................

2

1.1.2

RServe

................................
................................
................................
................................
..............

2

1.1.3

REngine
................................
................................
................................
................................
.............

2

1.1.4

RSession

................................
................................
................................
................................
...........

2

1.2

RWrapper

................................
................................
................................
................................
....................

2

1.3

BayesMendelWS

................................
................................
................................
................................
.........

2

1.4

Converter

................................
................................
................................
................................
.....................

2

1.5

Architectural Goals and Constraints

................................
................................
................................
............

3

1.5.1

Technical Stack

................................
................................
................................
................................
.

3

1.5.2

Performance

................................
................................
................................
................................
......

3

1.5.3

caBIG Awareness

................................
................................
................................
..............................

3

1.5.4

Security

................................
................................
................................
................................
.............

3

1.5.5

Usability

................................
................................
................................
................................
.............

3

1.5.6

Testability

................................
................................
................................
................................
..........

3

2.

Implementation

................................
................................
................................
.........

3

2.1

Overview

................................
................................
................................
................................
......................

3

2.1.1

bayesmendel
-
services module

................................
................................
................................
..........

3

2.1.2

bayesmendel
-
web module
................................
................................
................................
.................

4

2.1.3

bayesmendel
-
ear module

................................
................................
................................
..................

4

2.2

Input Description:

................................
................................
................................
................................
.........

4

2.3

Output Description:

................................
................................
................................
................................
......

6

2.4

Validation

................................
................................
................................
................................
.....................

6

3.

Deployment

................................
................................
................................
..............

7

3.1

R/BayesMendel installation

................................
................................
................................
.........................

7

3.1.1

WINDOWS XP

................................
................................
................................
................................
..

7

3.1.2

CentOS 5.4 i386

................................
................................
................................
................................

8

3.2

Accessing the web service code

................................
................................
................................
..................

9

3.3

Building the web service

................................
................................
................................
............................

10

3.3.1

Create jboss profile

................................
................................
................................
.........................

10

3.3.2

Create rserve profile

................................
................................
................................
........................

10

3.3.3

Building the application
................................
................................
................................
....................

10

3.4

Deploying the web service

................................
................................
................................
.........................

11

3.4.1

Configure Application Server

................................
................................
................................
...........

11

3.4.2

Deploy Web Service to Application Server

................................
................................
......................

11

3.4.3

Running the integration Tests

................................
................................
................................
..........

11

4.

API Reference

................................
................................
................................
........

11

4.1

Full API Reference

................................
................................
................................
................................
.....

11

4.2

Web Service Descriptor

................................
................................
................................
.............................

12

4.3

Input XSD

................................
................................
................................
................................
..................

13

4.4

Sample Input XML

................................
................................
................................
................................
....

23

4.5

Output XSD

................................
................................
................................
................................
..............

24

4.6

Sample Output XML

................................
................................
................................
................................
.

27


Table of Figures

Figure 1: Archtecturally Significant Implementation Elements

................................
................................
.......................

1


BRCAPro Web

Service

1.0


SUBMITTED


Technical Guide


Date:
12/1/09


Prepared by 5AM Solutions, Inc.

|

1


1.

Architectural Representation

This section of the document first describes the structural hierarchy of the system in layers,
packages, and subsystems and then goes on to describe h
ow these elements collaborate to
provide the most architecturally significant functionality. The only subsystems that are
accessible to external

systems are the web service it
self. All
other
subsystems are internal to
the application and do not expose re
mote interfaces. The web service layer is accessib
le to web
clients
using
SOAP via HTTP
.

T
he BRCAPro web service is implemented as a Java EE 6
application built on top of Java SE. Each of the subsystems shown in Figure 1 is described
briefly following th
e diagram.


Figure
1
: Arch
i
tecturally Significant Implementation Elements

BRCAPro Web

Service

1.0


SUBMITTED


Technical Guide


Date:
12/1/09


Prepared by 5AM Solutions, Inc.

|

2


1.1

Third party dependencies

1.1.1

R

The
BayesMendel

algorithm that the BRCAPro web service provides access to is implemented
in the R language (
http://www.r
-
project.org/
). R is a language and environment for statistical
computing and graphics.
The BRCAPro web service

access
es

R
t
hrough the Rserve
,
Rengine
,
and RSession

libraries.

1.1.2

RServe

RServe (
http://www.rforge.net/Rserve/
) is a TCP/IP server

which allows other programs and
languages to access a remote installation of R
,

instead of running and maintaining one locally.
It has both server components installed on the machine running R

and

a client component
used by the application that is remote
ly connecting to R.

1.1.3

REngine

REngine is the interface between an instance of R and Java. It performs type translation
between Java and R.

1.1.4

RSession

RSession
(
http://code.google.com/p/rsession/
)
sits on top of RServe and REngine. Rsession
provides an easy

to use

Java framework
giving access to a remote R session. RSession
provides a high level API that facilitates the interaction between R and Java.


1.2

RWrapper

The RWrapper includes a series of classes for holding data to be passed to R for processing
wi
th the BayesMendel algorithm, and for ho
l
ding the results of that processing. The
RWrapper also provides a single service that
sends provided input data to
the BayesMendel
algorithm
and returns the results of the processing
the input data with the algori
thm
.

The
RWrapper leverages the third party
dependencies described above to
commun
i
cate with the
algorithm using R.


1.3

BayesMendelWS

Using the published
BRCAPro
wsdl, a SOAP client can submit a request to the application.
This request i
s converted to XML

and is
sent to the server using SOAP via HTTP and TCP/IP.
The server passes the re
quest to the JBoss Application S
erver
. The Application Server first
passes the XML to the Marshaller, which converts the XML into a Java object. The details of
the conver
sion are specified by the
BRCAPro
input XSD.
The details of this XSD and the
corresponding Java object are described in section 2.2 below. The actual XSD is provided in
section 4.2, and an example XML file that conforms to the XSD is provided in section
4.3.

At this point, the marshaled Java object is passed to the BayesMendel web service itself.
The
web service runs the
BRCAPro
algorithm on the data received from the marshaller and returns
the results of the algorithm. The details of how the web service runs the algorithm will be
discussed below. The web service passes the results of the algorithm to the marshaller, which
conve
rts the results to XML. The details of the conversion are specified by the
BRCAPro
output XSD.
The details of this XSD and the corresponding Java object are described in
section 2.3 below. The actual XSD is provided in section 4.4, and an example XML file

that
conforms to the XSD is provided in section 4.5.
The resultant XML is sent back to the client
using SOAP via HTTP and TCP/IP, thus completing the web service request.



1.4

C
onverter

The converter enables communication between the BayesMendel WS and t
he RWrapper. The
converter translates the marshaled object that is provided to the BayesMendel WS into a
BRCAPro Web

Service

1.0


SUBMITTED


Technical Guide


Date:
12/1/09


Prepared by 5AM Solutions, Inc.

|

3


corresponding RWrapper input object that can be

provided to R. Similarly, the converter
translates the results of running the algorithm
in R
into an
object that can be returned by the
BayesMendel WS.


1.5

Architectural Goals and Constraints

The following factors are key considerations affecting the architecture beyond the functional
requirements that are guiding the design of
BRCAPro web service

software
.

1.5.1

Technical Stack

The system must run in a Linux environment using Java 6 and JBoss 4.2.3. Our tests are run
in an environment matching the intended production environment. It should be noted that
the
current test suite requires Java version 1.6.0_15 or
later in the test environment in order to
succeed
.

1.5.2

Performance

The system must be capable of responding within 3 seconds to each request under a sustained
load of 1 request every 5 seconds. Performance tests have verified that this goal has been met
,
with

an average response time of approximately 1 second
.

1.5.3

caBIG Awareness

The web service must be implemented in such a way that it could interoperate with NCI caBIG
software and tools. During the initial development phases, no functional requirements will
dictate interoperability. However, the vision for the software requires

the project to be built
using compatible technology, with an eye towards consuming Silver or Gold compatible
services from ca* applications.

1.5.4

Security

The system must not accept, use, or store any private health information. If the input data
includes a
ny PHI, such as date of birth, it is simply ignored.

1.5.5

Usability

The web service shall publish a web service descriptor for inspection by clients.

The web service shall validate incoming data to ensure the integrity of the data returned from
the web servic
e.

1.5.6

Testability

90% of all application code must be tested by unit and integration tests. This testing metric is
enforced in the application’s build process and has been met successfully.

All application subsystems must be independently testable.


2.

Implementation

2.1

Overview

The application is set up as multiple modules to support
a separation of concerns. Each
module is sep
arately tested using unit tests.

The fully constructed application is also tested
using integration tests.

2.1.1

b
ayesmendel
-
service
s

module

The bayesmendel
-
services module contains the RWrapper
classes

for receiving input data for
the BayesMendel algorithm, passing the data to R for processing with the algorithm, and
returning the results.
The artifact produced by this module is bayes
mendel
-
services.jar, which
includes all of the R Wrapper classes. The major third party component dependencies noted
are on
RSession,
RServe
,

and REngine.

BRCAPro Web

Service

1.0


SUBMITTED


Technical Guide


Date:
12/1/09


Prepared by 5AM Solutions, Inc.

|

4


2.1.2

b
ayesmendel
-
web

module

The bayesmendel
-
web module contains the classes that comprise the publicly
available web
service.
This includes the classes for holding the input data received by the web service and
the output data returned by the web service, and the classes for the web service itself.
In
addition, this module includes

the
converter that maps

between the inputs and outputs
required by the web service and the inputs and outputs expected by the RWrapper.
The
module also includes supporting documentation, such as the web service descriptor and the
input and output XML schema definitions. The ar
tifact produced by this module is
bayesmendel
-
web.war, which, in addition to including the web service class and resource files,
contains any necessary third
-
party supporting JARs.

2.1.3

b
ayesmendel
-
ear

module

The bayesmendel
-
ear module constructs the full app
lication using the artifacts produced by
the bayesmendel
-
services and bayesmendel
-
web modules. The artifact produced by the
bayesmendel
-
ear module is the deployable Java 6 EE Enterprise Application Archive (EAR)

.
The EAR also contains the third
-
party JAR
s necessary to support the layers of the application.


2.2

Input
D
escription:

The web service takes a Brcap
roInput object as its only argument. This object contains all of
the
required and optional inputs to the
BRCAPro

algorithm. The BrcaproInput object cont
ains
a parameters object
, a brcraparams object
,

and a family object. The parameters object
specifies the
ID of the person for whom carrier probabilities are to be estimated.

The
parameters object also indicates the race or ethnicity of the family. The race can be
"Unknown" (the default), "Asian", "Black", "Hispanic", "NativeAmerican", and "White".
Race/ethnicity categories and estimates were derived using the DevCan softwa
re provided by
the National Cancer Institute (NCI).

T
he parameters object
also specifies whether a default allele frequency will be used. It can take
values

of

"AJ" if the desired allele frequency is that of the Ashkenazi Jewish population,
"nonAJ" if th
e desired allele frequency is that of non Ashkenazi Jewish populations, "Italian" if
the desired allele frequency is that of Italian populations, or "other" for a user
-
specified allele
frequency
.

The brcaparams object includes various parameters for confi
guring the
BayesMendel

algorithm itself. For example, the brcaparams object includes
an allele frequency element that
contains the BRCA1 and BRCA2 allele frequencies
for the counselee
’s population
. This
element is required if “other” is chosen as the all
ele frequency type
in the parameters object
described above.

The brcaparams object also includes a prediction limits element that defines the breast and
ovarian cancer risk
predictions

produced by the
BayesMendel

algorithm. The prediction
limit
s

element specifies the number of years between each risk prediction calculation for the
counselee. The prediction limit
s

element also indicates the maximum age up to which risk
predictions should be calculated for the counselee.
The number of years betwe
en calculations
has a default value of 5. As an example, if the number of years between calculations is 6, the
maximum age is 60, and the counselee’s current age is 30, predictions will be calculated for
ages 36, 42, 48, 54, and 60.

The brcaprams object

also includes
specificity and sensitivity elements. The specificity
element indicates the specificity of the gene tests for BRCA1 and BRCA2 as numbers between
0 and 1. Similarly, the sensitivity element indicates the sensitivity of the gene tests for BR
CA1
and BRCA2 as numbers between 0 and 1. The BRCA1 and BRCA2 specificities
have a default
value of 1.0, and the BRCA1 and BRCA2

sensitivities have default values of 0
.8
.

Finally
, the brcaparams object includes
a data sets element that indicates the bac
kground data
sets to be used by the BayesMendel algorithm.
The data sets element specifies
the name of a
numeric data frame of penetran
c
e information by genotype, age, and sex.
Default input is
BRCAPro Web

Service

1.0


SUBMITTED


Technical Guide


Date:
12/1/09


Prepared by 5AM Solutions, Inc.

|

5


provided by BRCApenet.metaDSL.2008, based

on a nine study
meta
-
analysis

using the
DerSimonian and Laird random effects modeling approach

(Chen and Parmigiani, 2006).

User
-
specified input penetrance objects should closely follow the

format described in

RCApenet.metaDSL.2008, including column names. If the penetran
ce matrix

includes post
-
intervention

penetrances, then the matrix should have 32 columns, and the 16

post
-
intervention penetrances

should take the column name of their pre
-
intervention column with


INT" prefixed to it,

i.e. for pre
-
intervention penetrance
"fFX1", its post
-
intervention

p
enetrance should be named "INTfFX1".

The data sets element specifies the name of a
data
frame of 110 rows by 8 columns that

adjusts carrier probabilities for competing risks.

The family element of the BrcaproInput is simply a

collection of family members.

Each family
member
specifies

the person’s identifier, the person’s gender, and the identifiers of the
person

s mother and father
, if known
. A value of
1

in the gender field means that the person is
male, and a value of
0

me
ans that the person is female.

Each family member also includes a breast cancer
element
that
indicates whether or not the
fa
mily member has breast cancer. The element
identifies the person’
s breast cancer diagnosis
,

the age of onset of the breast cancer in
one breast, and the age of onset of the breast cancer in
the contralateral breast
. The
diagnosis

can have values of 0 (no cancer or no information), 1
(cancer in one breast), or 2 (bilateral breast cancer).

F
amil
y members for whom no
information is available should be coded with a 0 in the cancer diagnosis
field
, and a 1 in the
age fields. If it is known that a family member is affected, but age of diagnosis

i
s unknown,
either enter an estimate or evaluate the pro
gram at different plausible ages.

The onset age in the breast cancer element specifies the estimated or exact age of onset of
breast cancer if a breast cancer case. It specifies the current age or age of death if not a breast
cancer case. It must be set to

1 if the person is unaffected and there is no age information.

Similarly, the contralateral onset age specifies the estimated or exact age of onset of breast
cancer in the contralateral breast if a breast cancer case. This is only for family members wit
h
a diagnosis indicating bilateral breast cancer. All other family members should have a value of
0, which is the default.

Each
family
member
contains an ovarian cancer element
that indicates whether or not the
family member has ovarian cancer. The elem
ent identifies the person’s ovarian cancer
diagnosis and the age of onset of the ovarian cancer. The diagnosis can have values of
0 (no
cancer or no information) or

1 (
ovarian

cancer
present
). The onset age in the
ovarian

cancer
element specifies the
est
imated or exact age of onset of
ovarian cancer if an ovarian
cancer
case. It specifies the curre
nt age or age of death if not an ovarian
cancer case. It must be set to
1 if the person is unaffected and there is no age information. Family members for whom n
o
ovarian
information is available should be coded with a 0 in the cancer diagnosis fields, and a 1
in the age fields. If it is known that a family member is affected, but the age of diagnosis

is
unknown, either enter an estimate or evaluate the program at

different plausible ages.

Each member also includes a germline testing element

that identifies BRCA1 and BRCA2
germline testing results. For each mutation, the germline testing element can have a value of
0 (no test performed), 1 (positive test), or 2 (n
egative test).

If the results for BRCA1 prognostic markers are available, the user can input the results the
marker testing element included in

the family member. The marker
testing element indicates
the results for the ER, CK14, CR5.6, and PR tests. For each test, the marker testing element
can have a value of 0 (no test performed), 1 (positive test), or 2 (negative test). Note that even
if not all
4

biomarker results are a
vailable, all 4
values must be specified.

Finally, each family

member

also

contains an oophorectomy element

that indicates if and
when the family member had an oophorectomy.
If people have undergone an important
intervention, like oophorectomy for BRCAP
r
o
, the intervention and age of intervention are
included in oophorectomy

element. Specific
ally, the oophorectom
y element has an
oophorectomy flag with a value of 0 if no oophorectomy was performed and a value of 1 if the
patient had an oophorectomy. In a
ddition, the oophorectomy element specifies the estimated
BRCAPro Web

Service

1.0


SUBMITTED


Technical Guide


Date:
12/1/09


Prepared by 5AM Solutions, Inc.

|

6


or exact age of the person when the oophorectomy was performed.
Furthermore, you must
provide the hazard ratios of PostOophorectomyHR, which convert each column of the
penetrance matrix to its post
-
intervention value.

F
amily members for whom no information is
avai
l
able should be coded with a 0 in the oophorectomy flag and a 0 in the age field.


2.3

Output D
escription:

The web service returns a
Brca
p
roOutput object. This object contains all of the res
ults of the
B
RCAPro

algorithm. Specifically,
the

object
c
orresponds

to an R object of class
"BayesMendel" with 5 slots. To
save bandwidth
,

the output differs from this object in that the
output does NOT contain the data correspo
n
ding to the "family" and "counselee.id" slots, since
they are already available to the client in the input.

One property of the output object is the total log
-
likelihood from the model. The
output object
also contains a probabilities object. The probabi
lities object identifies the marginal
probabilities of being a carrier of either BRCA1 or BRCA2 mutations, a carrier of only the
BRCA1 mutation, a carrier of only the BRCA2 mutations, and a carrier of both BRCA1 and
BRCA2 mutations.

The output object als
o contains a posterior object that includes similar information to the
probabilities object. Specifically, the posterior object corresponds to a 2 by 2 matrix, which
gives the joint probability of carrying mutations at BRCA1 and BRCA2.
The rows of the ma
trix
give the carrier status at BRCA1, and the columns give the carrier status at BRCA2. The first
row/column indicates that the counselee is wild type or a non
-
carrier, and the second
row/column indicates that the counselee is a heterozygous carrier with

one mutated allele.
Therefore, the posterior object indentifies the probabilities that the counselee has neither
mutation, only the BRCA1 mutation, only the BRCA2 mutation, or both BRCA1 and BRCA2
mutations.

Finally, the output object includes a predic
tions element. The predictions element
corresponds to a data frame listing the ages (from current age to "age.to" by "age.by”) and the
cumulative risks of developing breast

or ovarian cancer by each age. Each prediction in the
predictions element identif
ies the age in years for risk prediction, the cumulative risk to
develop breast cancer, and the cumulative risk to develop ovarian cancer.


2.4

Validation

The web service validates the provided input data to ensure the integrity of the outgoing
results. Th
e following is a list of validations that are performed on the incoming data. Note
that in addition to being enforced by the application, these restrictions are reflected in the
input XSD.



If the allele frequency type is “other,” then BRCA1 and BRCA2 al
lele frequencies must be
provided.



If the allele frequency type is not “other,” then the BRCA1 and BRCA2 allele frequencies
must not be provided.



If required, the BRCA1 and BRCA2 allele frequencies must be between 0 and 1

(inclusive)
.



All ages are betw
een 0 and 150
.



The
number of years between
risk
predictions

and
the maximum age for risk prediction
must be between 0 and 150.



BRCA1 and BRCA2 specificities must be between 0 and 1.



BRCA1 and BRCA2 sensitivities must be between 0 and 1.



The identifiers
of the family members must start at 1 and be sequential.



The identifier of the counselee must be greater than
or equal to
1.



The gender provided for each family member must be either 0 or 1.



For
each

family member, the identifier to the member’s father
m
ust refer

to another male
BRCAPro Web

Service

1.0


SUBMITTED


Technical Guide


Date:
12/1/09


Prepared by 5AM Solutions, Inc.

|

7


member of the family.



For
each

family member, the identifier to the member’s mother
must refer

to another
female member of the family.



No male relatives can have a positive ovarian cancer diagnosis or a positive oophorectomy
flag.

Male relatives can have a positive breast cancer status, though it is rare.



A

valid race must be provided



For each family member, the breast cancer diagnosis must be 0
, 1

or

2.



For each family member, if the breast cancer diagnosis is 0 or 1, then the

contralateral
onset age must be 0.



For each family member, the ovarian cancer diagnosis must be 0 or 1.



For each family member, any age associated with negative cancer status that is not 1 (or 0
for contralateral breast cancer onset age) must be equal o
r greater than the maximum
onset age for ovarian
,
breast
or contralateral breast cancer
.



For each family member, if the family member has a positive contralateral breast cancer
diagnosis, the contralateral onset age must be greater than or equal to the ons
et age for
the other breast.



For each family member, the two test results in the germline testing element must be 0
, 1

or

2.



For each family member, the four test results in the marker testing element must be 0
, 1

or

2.



For each family member, the oo
phorectomy flag in the oophorectomy element must be 0
or 1.



For each family member, if the oophorectomy flag indicates that no oophorectomy was
performed, then the age of oophorectomy must be 0.



3.

Deployment

3.1

R/
BayesMendel

installation

3.1.1

WINDOWS XP

3.1.1.1

Install R 2.9.2

(Note: 2.10.0 can NOT install BayesMendel_2.0
-
3.zip because the R files were compiled under
R 2.8)

Download from
http://cran.r
-
project.org/bin/windows/base/old/2.9.2/

Run the downloaded file.

Setup language: English, Next

Welcome: Next

Lice
nse: Next

Location: C:
\
R, Next

Select Components: Full, Next

Startup options: No (defaul
t)

Start Menu: R, Next

Additional Tasks: Save version number in registry; associate R with .RData files

3.1.1.2

Install BayesMendel

Start
-
>
All Programs
-
>R
-
>R 2.9.2

Packages
-
>
Install package(s)...

BRCAPro Web

Service

1.0


SUBMITTED


Technical Guide


Date:
12/1/09


Prepared by 5AM Solutions, Inc.

|

8


choose CRAN mirror (any US)

choose kinship

OK

Packages
-
> Install p
ackage(s) from local ZIP files

choose BayesMendel_2.0
-
3.zip

OK


3.1.1.3

Install Rserve

Pack
ages
-
> Install package(s)...

choose CRAN mirror (any US)

Rserve

OK


3.1.1.4

Test Rserve

R

Rserve()

q()

telnet localhost 6311


3.1.2

CentOS 5.4 i386

(information on other Linux distributions can be found at
http://cran.cnr.berkeley.edu/bin/linux/
)


3.1.2.1

Install and update OS (as root)

yum update

/sbin/shutdown
-
r now


(because kernel was updated)


3.1.2.2

Install R 2.10.0 (as root)

(see
http://cran.cnr.berkeley.edu/doc/FAQ/R
-
FAQ.html
-

How
-
can
-
R
-
be
-
installed
-
_0028Unix_0029
)

wget http://cran.r
-
project.org/bin/linux/redhat/el5/i386/R
-
2.10.0
-
2.el5.i386.rpm

wget http://cran.r
-
project.org/bin/linux/redhat/el5/i386/R
-
core
-
2.10.0
-
2.el5.i386.rpm

wget http://cran.r
-
project.org/bin/linux/redhat/el5/i386/R
-
dev
el
-
2.10.0
-
2.el5.i386.rpm

wget http://cran.r
-
project.org/bin/linux/redhat/el5/i386/libRmath
-
2.10.0
-
2.el5.i386.rpm

wget http://cran.r
-
project.org/bin/linux/redhat/el5/i386/libRmath
-
devel
-
2.10.0
-
2.el5.i386.rpm

yum install tetex
-
latex xdg
-
utils libgfortran

BRCAPro Web

Service

1.0


SUBMITTED


Technical Guide


Date:
12/1/09


Prepared by 5AM Solutions, Inc.

|

9


wge
t http://dag.wieers.com/rpm/packages/perl
-
File
-
Copy
-
Recursive/perl
-
File
-
Copy
-
Recursive
-
0.35
-
1.el5.rf.noarch.rpm

rpm
-
iv perl
-
File
-
Copy
-
Rec
ursive
-
0.35
-
1.el5.rf.noarch.rpm

rpm
-
iv R
-
core
-
2.10.0
-
2.el5.i386.rpm

rpm
-
iv

libRmath
-
2.10.0
-
2.el5.i386.rpm

rpm
-
iv li
bRm
ath
-
devel
-
2.10.0
-
2.el5.i386.rpm

yum install bzip2
-
devel gcc
-
c++ gcc
-
gfortran libX11
-
devel pcre
-
deve
l tcl
-
devel tk
-
devel zlib
-
devel

rpm
-
i
v R
-
devel
-
2.10.0
-
2.el5.i386.rpm

rpm
-
iv R
-
2.10.0
-
2.el5.i386.rpm


3.1.2.3

Install BayesMendel (as root)

R

i
nstall.packages("kinship")

CRAN mirror Selection: any US

q()

R CMD INSTALL BayesMendel_2.0
-
3.tar.gz


3.1.2.4

Install Rserve
0.6.0
(as root)

(See
http://www.rforge.net/Rserve/doc.html
)

wget http://www.rforge.net
/src/contrib/Rserve_0.6
-
0.tar.gz

R
CMD INSTALL Rserve_0.6
-
0.tar.gz

(For daemon, see
http://code.google.com/p/rsession/wiki/RserveLinuxDaemon
)


3.1.2.5

Test Rserve

CMD R
serve

telnet localhost
6311


3.1.2.6

Setup Rserve daemon startup scripts

(see
http://code.google.com/p/rsession/wiki/RserveLinuxDaemon
)


3.2

Accessing the web service code

The web service code is located in the 5AM open source
subversion repository. The code can
be checked out from the following URL:


https://svn.5amsolutions.com/opensource/brcapro/t
ags/1.0.4



BRCAPro Web

Service

1.0


SUBMITTED


Technical Guide


Date:
12/1/09


Prepared by 5AM Solutions, Inc.

|

10


3.3

Building the web service

3.3.1

Create
jboss
profile

In the directory into which the code has been checked out, create a file named profiles.xml
with the following contents, customized to your environment:


<profilesXml>


<profiles>


<
profile>


<id>dev</id>


<activation>


<activeByDefault>true</activeByDefault>



</activation>


<properties>










<jboss.home
>
/app_servers
/
jboss
-
4.2.3.GA
</
jboss.home>










<jboss.hostname>localhost</jboss.hostname>










<jboss.port>8080</jboss.port>










<jboss.naming.port>1099</jboss.naming.port>










<jboss.configuration>default</jboss.configuration>




</properties>



</profile>



</profiles>

</profilesXml>


3.3.2

Create rserve profile

In the bayesmendel
-
services subdirectory in the directory into which the code has been
checked out, create a file named profiles.xml with the following contents, customized to your
environment
:


<
profilesXml>

<profiles>


<profile>



<id>dev</id>



<activation>


<activeByDefault>true</activeByDefault>



</activation>





<properties>










<rserve.server>192.168.150.173</rserve.server>










<rserve.port>
6311</rserve.port>









<rserve.test.server>192.168.150.173</rserve.test.server>










<rserve.test.port>6311</rserve.test.port>




</properties>


</profile>


</profiles>

</profilesXml>


It is important that the rserve properties are specif
ied in a profiles.xml file collocated with the
pom.xml of the bayesmendel
-
services module. Adding the rserve properties to the profiles.xml
file in the main checkout directory will NOT override the values specified in the bayesmendel
-
services pom.xml.

If t
he ‘
activeByDefault’ propert
y is defined

as ‘true’ as listed above then no
profile needs to be indicated when issuing the maven build command described in the next
section.

Please see
http://maven.apache.org/guides/introduction/introduction
-
to
-
profiles.html

for
further information on Maven Build Profiles.


3.3.3

Building the application

The application bu
ilds with maven (
http://maven.apache.org
) and Java version 6. Version
2.0.9 of maven or earlier is required. The application will not build with version 2.1.0 or later.
BRCAPro Web

Service

1.0


SUBMITTED


Technical Guide


Date:
12/1/09


Prepared by 5AM Solutions, Inc.

|

11


To build the application, issue the following command from the directory into which
the code
has been checked out:

mvn clean install


3.4

Deploying the web service

The built application runs using the JBoss application server (
http://www.jboss.org/jbossas/
).
The application has been tested using version 4.2.3 of the JBoss application server

built for
Java 6.


3.4.1

Configure Application Server

Open the following file:

<jboss_home>/server/default/deploy/jbossws.sar/jbossws.beans/META
-
INF/jboss
-
beans.xml

where
<
jboss_home
>

is the directory where
the
JBoss

application server

is located

and
update
the value of this setting with the hostname of the machine running JBoss:

<property name="webServiceHost">localhost</property>


3.4.2

Deploy Web Service to Application Server

C
opy
<application_home>/bayesmendel
-
ear/target/
bayesmendel
.ear



t
o


<jboss_hom
e>/server/default/deploy

where

<application_home>

is the directory wher
e

the code is located, and
<jboss_home>

is
the directory w
here JB
oss is located.

When JBoss is started, the web service will be available
to service requests.


3.4.3

Running the
integration Tests

Once the web

application
is deployed in the Jboss application server as described above you
can run the integration tests
. With the web service active change into the
directory into which
the code has been checked out

and issue the comman
d:

mvn
clean
install


P ci


4.

API Reference

4.1

Full API Reference

A full API reference can be generated for each of the three modules of the application. Issue
the following command from the directory containing the application code to generate the API
documen
tation:

mvn site


The generated API reference documentation will be located in the following directories:

<application_home>
/
bayesmendel
-
services/target/site/apidocs/
index.html

<application_home>
/
bayesmendel
-
services/target/site/testapidocs/
index.html

<
application_home>
/
bayesmendel
-
web/target/site/apidocs/
index.html

<application_home>
/
bayesmendel
-
web/target/site/testapidocs/
index.html

<application_home>
/
bayesmendel
-
ear/target/site/testapidocs/
index.html

BRCAPro Web

Service

1.0


SUBMITTED


Technical Guide


Date:
12/1/09


Prepared by 5AM Solutions, Inc.

|

12



where
<application_home>

is the directory containi
ng the code.


4.2

Web Service Des
c
riptor

The following is the web service descriptor that specifies the web service. The wsdl references
an input xsd specifying the inputs to the web service and an output xsd specifying the output.
The input and output xsd’s

are provided in the following sections.


<?
xml

version
=

1.0


encoding
=

UTF
-
8

?>

<
wsdl:definitions

name
=

BayesMendelService



targetNamespace
=

http://riskmodels.breasthealthdesicions.org/BayesMendel


xmlns:tns
=

http://riskmodels.breasthealthdesicions.org/BayesMendel


xmlns:wsdl
=

http://schemas.xmlsoap.org/wsdl/


xmlns:xsd
=

http://www.w3.org/2001/XMLSchema


xmlns:soap
=

http://schemas.xmlsoap.org/wsdl/soap/

>


<
wsdl:types
>


<
xsd:schema
>


<
xsd:import


namespace
=

http://riskmodels.breasthealthdesicions.org/BayesMendel




schemaLocation
=

brcapro_input.xsd

/>


</
xsd:schema
>



<
xsd:schema
>


<
xsd:import



namespace
=

http://riskmodels.breasthealthdesicions.org/BayesMendel




schemaLocation
=

brcapro_output.xsd

/>


</
xsd:schema
>


</
wsdl:types
>


<
wsdl:message

name
=

brcaproRequest

>


<
wsdl:part

element
=

tns:brcaproInput


name
=

brcaproInput

/>


</
wsdl:message
>



<
wsdl:message

name
=

brcaproResponse

>


<
wsdl:part

element
=

tns:brcaproOutput


name
=

brcaproOutput

/>


</
wsdl:message
>



<
wsdl:portType

name
=

BayesMendelService

>


<
wsdl:operation

name
=

brcapro


parameterOrder
=

brcaproRequest

>


<
wsdl:input

message
=

tns:brcaproRequest

/>


<
wsdl:output

message
=

tns:brcaproResponse

/>


</
wsdl:operation
>


</
wsdl:portType
>



<
wsdl:binding

name
=

BayesMendelServiceBinding


type
=

tns:BayesMendelService

>


<
soap:binding

style
=

document




transport
=

http://schemas.xmlsoap.org/soap/http


/>


<
wsdl:operation

name
=

brcapro

>


<
soap:operation

soapAction
=

brcapro


/>


<
wsdl:input
>


<
soap:body

use
=

literal


/>


</
wsdl:input
>


<
wsdl:output
>


<
soap:body

use
=

literal


/>


</
wsdl:output
>


</
wsdl:operation
>


</
wsdl:binding
>



<
wsdl:service

name
=

BayesMendelService

>


<
wsdl:port

binding
=

tns:BayesMendelServiceBinding


name
=

BayesMendelPort

>

BRCAPro Web

Service

1.0


SUBMITTED


Technical Guide


Date:
12/1/09


Prepared by 5AM Solutions, Inc.

|

13



<
soap:address


location
=

http://riskmodels.breasthealthdesicions.org/BayesMendel


/>


</
wsdl:port
>


</
wsdl:service
>

</
wsdl:definitions
>



4.3

Input XSD

The following is the
input XML schema definition referenced from the web service descriptor.
This fully specifies the allowable inputs to the web service.


<?
xml

version
=
"1.0"

encoding
=
"UTF
-
8"
?>

<
xsd:schema

xmlns:xsd
=
"http://www.w3.org/2001/XMLSchema"



targetNamespace
=
"http://riskmodels.breasthealthdesicions.org/BayesMendel"


xmlns:brcapro
=
"http://riskmodels.breasthealthdesicions.org/BayesMendel"



elementFormDefault
=
"qualified"
>


<
xsd:annotation
>


<
xsd:appinfo
>
BayesMendel Web Service

Parameter Definitions
</
xsd:appinfo
>


<
xsd:documentation

xml:lang
=
"en"
>


Author: hniedner@5amsolutions.com


</
xsd:documentation
>


<
xsd:documentation

xml:lang
=
"en"
>


Input for the brcapro() method


</
xsd:documentation
>


</
xsd:annotation
>



<
xsd:element

name
=
"brcaproInput"
>


<
xsd:complexType
>


<
xsd:sequence
>


<
xsd:element

ref
=
"brcapro:parameters"

minOccurs
=
"0"

maxOccurs
=
"1"
/>


<
xsd:element

ref
=
"brcapro:brcaparams"

minOccurs
=
"0"

maxOccurs
=
"1"
/>


<
xsd:element

ref
=
"brcapro:family"

minOccurs
=
"0"

maxOccurs
=
"1"
/>


</
xsd:sequence
>


</
xsd:complexType
>


</
xsd:element
>



<
xsd:element

name
=
"parameters"
>


<
xsd:complexType
>


<
xsd:attribute

name
=
"counselee.id"

type
=
"xsd:int"

default
=
"1"



use
=
"optional"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


@[counselee.id] ID of the person for whom carrier


probabilities are to be estimated. Defaults to 1.


</
xsd:documentation
>


</
xsd:annotation
>


</
xsd:attribute
>



<
xsd:attribute

name
=
"race"

default
=
"Unknown"

use
=
"optional"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


@[race] A character string specifying the


race/e
thnicity of the family. It takes values


"Unknown" (the default), "Asian", "Black",


"Hispanic", "NativeAmerican", and "White".


Race/ethnicity categories and estimates were derived



using the DevCan software provided by the


National Cancer Institute (NCI).


http://srab.cancer.gov/devcan/


</
xsd:documentation
>

BRCAPro Web

Service

1.0


SUBMITTED


Technical Guide


Date:
12/1/09


Prepared by 5AM Solutions, Inc.

|

14



</
xsd:annotation
>


<
xsd:simpleType
>


<
xsd:restriction

base
=
"xsd:string"
>


<
xsd:enumeration

value
=
"Unknown"
/>


<
xsd:enumeration

value
=
"Asian"
/>


<
xsd:enumeration

value
=
"Black"
/>


<
xsd:enumeration

value
=
"Hispanic"
/>


<
xsd:enumeration

value
=
"NativeAmerican"
/>


<
xsd:enumeration

value
=
"White"
/>


</
xsd:restriction
>


</
xsd:si
mpleType
>


</
xsd:attribute
>



<
xsd:attribute

name
=
"allef.type"

default
=
"nonAJ"

use
=
"optional"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


@[allef.type] A character string specifying whether a


default allele frequency will be used. It can take values "AJ"


if the desired allele frequency


is allelfr
eqs=c(0.00609756097560976,0.00679723502304147)


corresponding to the Ashkenazi Jewish


population; or "nonAJ" if the desired allele frequency is


c(0.0005829, 0.0006760), from Antoniou


(2002), corresponding to non Ashkenazi Jewish populations; or


"Italian" if the desired allele


frequency is c(0.001673779,0.001326221) corresponding to


Italian

populations; or "other" for a


user
-
specified allele frequency.

Default is "nonAJ"


</
xsd:documentation
>


</
xsd:annotation
>


<
xsd:simpleType
>


<
xsd:restriction

base
=
"xsd:string"
>


<
xsd:enumeration

value
=
"nonAJ"
/>


<
xsd:enumeration

value
=
"other"
/>


<
xsd:enumeration

value
=
"AJ"
/>


<
xsd:enumeration

value
=
"Italian"
/>


</
xsd:restriction
>


</
xsd:simpleType
>


</
xsd:attribute
>


</
xsd:complexType
>


</
xsd:element
>



<
xsd:element

name
=
"brcaparams"
>


<
xsd:complexType
>


<
xsd:sequence
>


<
xsd:element

ref
=
"brcapro:alleleFrequency"

minOccurs
=
"0"



maxOccurs
=
"1"
/>


<
xsd:element

ref
=
"brcapro:predictionLimits"

minOccurs
=
"0"



maxOccurs
=
"1"
/>


<
xsd:element

ref
=
"brcapro:specificity"

minOccurs
=
"0"

maxOccurs
=
"1"
/>


<
xsd:element

ref
=
"brcapro:sensitivity"

minOccurs
=
"0"

maxOccurs
=
"1"
/>


<
xsd:element

ref
=
"brcapro:datasets"

minOccurs
=
"0"

maxOccurs
=
"1"
/>


</
xsd:sequence
>


<
/
xsd:complexType
>


</
xsd:element
>



<
xsd:element

name
=
"alleleFrequency"
>


<
xsd:complexType
>


<
xsd:attribute

name
=
"brca1"

use
=
"required"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


@[allefBRCA1] Allele Frequency for BRCA1, required


when brcapro:allef.type = 'other'

BRCAPro Web

Service

1.0


SUBMITTED


Technical Guide


Date:
12/1/09


Prepared by 5AM Solutions, Inc.

|

15



</
xsd:documentation
>


</
xsd:annotation
>


<
xsd:simpleType
>



<
xsd:restriction

base
=
"brcapro:simpleDecimal"
>


<
xsd:minInclusive

value
=
"0"
/>



<
xsd:maxInclusive

value
=
"1"
/>



</
xsd:restriction
>


</
xsd:simpleType
>


</
xsd:attribute
>



<
xsd:attribute

name
=
"brca2"

use
=
"required"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


@[allefBRCA2] Allele Frequency for BRCA2, required


when brcapro:allef.type = 'other'


</
xsd:documentation
>


</
xsd:annotation
>


<
xsd:simpleType
>


<
xsd:restriction

base
=
"brcapro:simpleDecimal"
>



<
xsd:minInclusive

value
=
"0"
/>



<
xsd:maxInclusive

value
=
"1"
/>



</
xsd:restriction
>


</
xsd:simpleType
>


</
xsd:attribute
>


</
xsd:complexType
>


</
xsd:element
>



<
xsd:element

name
=
"predictionLimits"
>


<
xsd:complexType
>


<
xsd:attribute

name
=
"ageBy"

use
=
"optional"

default
=
"5"

type
=
"xsd:int"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


@[ageBy] The number of years between each risk


prediction calculation for the counselee,


default=5. For example, if age.by = 5 and the


counselee's current age i
s 30, risk predictions


will be calculated at ages 35, 40, 45, etc. up to


the value of 'age.to


</
xsd:documentation
>


</
xsd:annotation
>


</
xsd:attribute
>



<
xsd:attribute

name
=
"ageTo"

use
=
"optional"

default
=
"81"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


@[ageTo] The maximum age up to which risk predictions



should be calculated for the counselee. Default is 81.


The range is from 0 to 150.


</
xsd:documentation
>


</
xsd:annotation
>


<
xsd:simpleType
>


<
xsd:restriction

base
=
"xsd:int"
>


<
xsd:minInclusive

value
=
"0"
/>



<
xsd:maxInclusive

value
=
"150"
/>



</
xsd:restriction
>


</
xsd:simpleType
>


</
xsd:attribute
>


</
xsd:complexType
>


</
xsd:element
>



<
xsd:element

name
=
"specificity"
>


<
xsd:complexType
>


<
xsd:attribute

name
=
"brca1"

use
=
"required"
>

BRCAPro Web

Service

1.0


SUBMITTED


Technical Guide


Date:
12/1/09


Prepared by 5AM Solutions, Inc.

|

16



<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


@[allefBRCA1] A scalar, the specificity of the gene


test for BRCA1. Default=1.0


</
xsd:documentation
>


</
xsd:annotation
>


<
xsd:simpleType
>


<
xsd:restriction

base
=
"brcapro:simpleDecimal"
>


<
xsd:minInclusive

value
=
"0"
/>



<
xsd:maxInclusive

value
=
"1"
/>



</
xsd:restriction
>


</
xsd:simpleType
>


</
xsd:attribute
>



<
xsd:attribute

name
=
"brca2"

use
=
"required"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


@[allefBRCA2] A scalar, the specificity of the gene


test for BRCA2. Default=1.0


</
xsd:documentation
>


</
xsd:annotation
>


<
xsd:simpleType
>


<
xsd:restriction

base
=
"brcapro:simpleDecimal"
>


<
xsd:minInclusive

value
=
"0"
/>



<
xsd:maxInclusive

value
=
"1"
/>



</
xsd:restriction
>


</
xsd:simpleType
>


</
xsd:attribute
>


</
xsd:complexType
>


</
xsd:element
>



<
xsd:element

name
=
"sensitivity"
>


<
xsd:complexType
>


<
xsd:attribute

name
=
"brca1"

use
=
"required"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


@[allefBRCA1] A scalar, the sensitivity of the gene


test for BRCA1. Default=0.8


</
xsd:documentation
>


</
xsd:annotation
>


<
xsd:simpleType
>


<
xsd:restriction

base
=
"brcapro:simpleDecimal"
>


<
xsd:minInclusive

value
=
"0"
/>



<
xsd:maxInclusive

value
=
"1"
/>



</
xsd:restriction
>


</
xsd:simpleType
>


</
xsd:attribute
>



<
xsd:attribute

name
=
"brca2"

use
=
"required"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


@[allefBRCA2] A scalar, the sensitivity of the gene



test for BRCA2. Default=0.8


</
xsd:documentation
>


</
xsd:annotation
>


<
xsd:simpleType
>


<
xsd:restriction

base
=
"brcapro:simpleDecimal"
>


<
xsd:minInclusive

value
=
"0"
/>



<
xsd:maxInclusive

value
=
"1"
/>



</
xsd:restriction
>


</
xsd:simpleType
>


</
xsd:attribute
>


</
xsd:complexType
>

BRCAPro Web

Service

1.0


SUBMITTED


Technical Guide


Date:
12/1/09


Prepared by 5AM Solutions, Inc.

|

17



</
xsd:element
>



<
xsd:element

name
=
"datasets"
>


<
xsd:complexType
>


<
xsd:attribute

name
=
"penetrance"

default
=
"BRCApenet.metaDSL.2008"

use
=
"optional"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


@[penetrance] A numeric data frame of penetrance

i
nformation


by genotype, age and sex.

Default input is provided by
\



BRCApenet.metaDSL.2008, based

o
n a nine study meta
-
analysis


using the DerSimonian and Laird random

e
ffects modeling


approach (Chen and Parmigiani, 2006).

U
ser
-
specified input


penetrance objects should closely follow the

format described


in BRCApenet.metaDSL.2008, including column names.
I
f the


penetrance matrix includes post
-
intervention

p
enetrances,



then the matrix should have 32 columns, and the 16

post
-



intervention penetrances should take the column name of their


pre
-
intervention column with "INT" prefixed to it,

i
.e. for


pre
-
intervention penetrance "fFX1", its post
-
intervention



penetrance should be named "INTfFX1".


</
xsd:documentation
>


</
xsd:annotation
>


<
xsd:simpleType
>


<
xsd:restriction

base
=
"xsd:string"
>



<
xsd:enumeration

value
=
"BRCApenet.metaDSL.2008"
/>


<
xsd:enumeration

value
=
"BRCApenet.AJ.2001.2008"
/>


<
xsd:enumeration

value
=
"BRCApenet.AJ.2004.2008"
/>


<
xsd:enumeration

value
=
"BRCApenet.I
talian.2008"
/>


<
xsd:enumeration

value
=
"BRCApenet.nonAJ.2001.2008"
/>


<
xsd:enumeration

value
=
"BRCApenet.nonAJ.2004.2008"
/>


<
xsd:enumeration

value
=
"CBRCApenet.metaDSL.2009"
/>


</
xsd:restriction
>


</
xsd:simpleType
>


</
xsd:attribute
>



<
xsd:attribute

name
=
"comprisk"

default
=
"compriskSurv"

use
=
"optional"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


@[comprisk] A data frame of 110 rows by 8 columns that


adjusts carrier probabilities for competing risks.


Currently only a single dataset comes with the R package.



</
xsd:documentation
>


</
xsd:annotation
>


<
xsd:simpleType
>


<
xsd:restriction

base
=
"xsd:string"
>



<
xsd:enumeration

value
=
"compriskSurv"
/>


</
xsd:restriction
>


</
xsd:simpleType
>


</
xsd:attribute
>


</
xsd:complexType
>


</
xsd:element
>



<
xsd:element

name
=
"family"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


[family] c
ollects all data for the dataframe family


</
xsd:documentation
>


</
xsd:annotation
>


<
xsd:complexType
>


<
xsd:sequence
>


<
xsd:element

ref
=
"brcapro:member"

minOccurs
=
"1"

maxOccurs
=
"unbounded"
/>

BRCAPro Web

Service

1.0


SUBMITTED


Technical Guide


Date:
12/1/09


Prepared by 5AM Solutions, Inc.

|

18



</
xsd:sequence
>


</
xsd:complexType
>


</
xsd:element
>



<
xsd:element

name
=
"member"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


[member] each member contains data for 1 row in the dataframe


family


</
xsd:documentation
>


</
xsd:annotation
>


<
xsd:complexType
>


<
xsd:sequence
>


<
xsd:element

ref
=
"brcapro:breastCancer"

minOccurs
=
"0"

maxOccurs
=
"1"
/>


<
xsd:element

ref
=
"brcapro:ovarianCancer"

minOccurs
=
"0"

maxOccurs
=
"1"
/>


<
xsd:element

ref
=
"brcapro:germline.testing"

minOccurs
=
"0"

maxOccurs
=
"1"
/>


<
xsd:element

ref
=
"brcapro:marker.testing"

minOccurs
=
"0"

maxOccurs
=
"1"
/>


<
xsd:element

ref
=
"brcapro:oophorectomy"

minOccurs
=
"0"

maxOccurs
=
"1"
/>


</
xsd:sequence
>


<
xsd:attribute

name
=
"id"

type
=
"xsd:int"

use
=
"required"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


@[id] ID of this family member


</
xsd:documentation
>


</
xsd:annotation
>


</
xsd:attribute
>


<
xsd:attribute

name
=
"fatherId"

type
=
"xsd:int"

default
=
"0"

use
=
"optional"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


@[fatherId] ID of the paternal family member, defaults


to 0 if unknown


</
xsd:documentation
>


</
xsd:annotation
>


</
xsd:attribute
>


<
xsd:attribute

name
=
"motherId"

type
=
"xsd:int"

default
=
"0"

use
=
"optional"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


@[motherId] ID of the maternal family member, defaults


to 0 if unknown


</
xsd:documentation
>


</
xsd:annotation
>


</
xsd:attribute
>


<
xsd:attribute

name
=
"gend
er"

use
=
"required"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


@[gender] Gender (0=female, 1=male)


</
xsd:documentation
>


</
xsd:annotation
>


<
xsd:simpleType
>


<
xsd:restriction

base
=
"xsd:int"
>


<
xsd:pattern

value
=
"(0|1)"
/>


</
xsd:restriction
>


</
xsd:simpleType
>


</
xsd:attribute
>


</
xsd:complexType
>


</
xsd:element
>



<
xsd:element

name
=
"breastCancer"
>


<
xsd:complexType
>


<
xsd:attribute

name
=
"affectedBreast"

default
=
"0"

use
=
"optional"
>


<
xsd:annotation
>

BRCAPro Web

Service

1.0


SUBMITTED


Technical Guide


Date:
12/1/09


Prepared by 5AM Solutions, Inc.

|

19



<
xsd:documentation

xml:lang
=
"en"
>


@[affectedBreast] Breast cancer status

(0=no cancer of no


information, 1=breast cancer,one breast
i
nvolved; 2=bilateral


breast cancer) Family members for whom no infor
mation is


available should be coded with a 0 in the cancer diagnosis


fields, and a 1 in the age fields. If it is known


that a family member is affected, but age of diagnosis is



unknown, either enter an estimate or evaluate the program at


different plausible ages.


</
xsd:documentation
>


</
xsd:annotation
>


<
xsd:simpleType
>


<
xsd:restriction

base
=
"xsd:int"
>


<
xsd:pattern

value
=
"(0|1|2)"
/>


</
xsd:restriction
>


</
xsd:simpleType
>


</
xsd:attribute
>



<
xsd:attribute

name
=
"ageBreast"

default
=
"1"

use
=
"optional"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


@[ageBreast] Estimated or exact Age of onset of breast


cancer if a breast cancer case.



Current age or age of death if not a breast cancer case. 1 if


unaffected and there is no age information.


Family members for whom no information is available


should be coded with a 0 in the cancer diagnosis


fields, and a 1 in the age fields. If it is


known that a family member is affected, but age of diagnosis


is unk
nown, either enter an estimate


or evaluate the program at different plausible ages.


</
xsd:documentation
>


</
xsd:annotation
>


<
xsd:simpleType
>


<
xsd:restriction

base
=
"xsd:int"
>


<
xsd:minInclusive

value
=
"1"
/>


<
xsd:maxInclusive

value
=
"150"
/>


</
xsd:restriction
>


</
xsd:simpleType
>


</
xsd:attribute
>



<
xsd:attribute

name
=
"ageBreastContralateral"

default
=
"0"

use
=
"optional"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


@[ageBreastContralateral] Estimated or exact Age of


onset of breast
cancer if a breast cancer case.


Only for members with breast cancer status=2. For


the rest enter a 0.


The default is 0.


</
xsd:documentation
>


</
xsd:annot
ation
>


<
xsd:simpleType
>


<
xsd:restriction

base
=
"xsd:int"
>


<
xsd:minInclusive

value
=
"0"
/>


<
xsd:maxInclusive

value
=
"150"
/>


</
xsd:restriction
>


</
xsd:simpleType
>


</
xsd:attribute
>


</
xsd:complexType
>


</
xsd:element
>



<
xsd:element

name
=
"ovarianCancer"
>


<
xsd:complexType
>

BRCAPro Web

Service

1.0


SUBMITTED


Technical Guide


Date:
12/1/09


Prepared by 5AM Solutions, Inc.

|

20



<
xsd:attribute

name
=
"affectedOvary"

default
=
"0"

use
=
"optional"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


@[affectedOvary] Ovarian cancer status (0=no cancer,


1=ovarian cancer).

Family members for whom no information is


avaliable should be coded with a 0

in the cancer diagnosis


fields, and a 1 in the ag
e fields. If it is known that a


family member is

affected
, but age of diagnosis

i
s unknown,



either enter an estimate or evaluate the program at

different


plausible ages.


</
xsd:documentation
>


</
xsd:annotation
>


<
xsd:simpleType
>


<
xsd:restri
ction

base
=
"xsd:int"
>


<
xsd:pattern

value
=
"(0|1)"
/>


</
xsd:restriction
>


</
xsd:simpleType
>


</
xsd:attribute
>



<
xsd:attribute

name
=
"ageOvary"

default
=
"1"

use
=
"optional"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


@[ageOvary] Estimated or exact age of onset of ovarian


cancer if an ovarian cancer case.


Current age or age of death i
f not an ovarian cancer case. 1


if
unaffected and there is no age information.


Family members for whom no information is avaliable


should be coded with a 0 in the cancer diagnosis


fields, and a 1 in the age fields. If it is


known that a family member is affected, but age of diagnosis


is unknown, either enter an es
timate


or evaluate the program at different plausible ages.


</
xsd:documentation
>


</
xsd:annotation
>


<
xsd:simpleType
>


<
xsd:restriction

base
=
"xsd:int"
>


<
xsd:minInclusive

value
=
"1"
/>


<
xsd:maxInclusive

value
=
"150"
/>


</
xsd:restriction
>


</
xsd:simpleType
>


</
xsd:attribute
>


</
xsd:complexType
>


</
xsd:element
>



<
xsd:element

name
=
"germline.testing"
>


<
xsd:complexType
>


<
xsd:attribute

name
=
"brca1"

default
=
"0"

use
=
"optional"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


@[brca1] results for BRCA1 germline testings are


available, the user can input the results in


data frame germline.testing (0=no test, 1=positive


test, 2=negative test).


If the results for BRCA1 prognostic markers are available, the


user can

input the results in data frame

marker.testing


with column name
s. Note that even if not all the


biomarker results listed below

are available


all 4 columns must contain non
-
missing values, which


should be set to 0 for biomarkers that were not teste
d.


</
xsd:documentation
>


</
xsd:annotation
>


<
xsd:simpleType
>


<
xsd:restriction

base
=
"xsd:int"
>

BRCAPro Web

Service

1.0


SUBMITTED


Technical Guide


Date:
12/1/09


Prepared by 5AM Solutions, Inc.

|

21



<
xsd:pattern

value
=
"(0|1|2)"
/>


</
xsd:restriction
>


</
xsd:simpleType
>


</
xsd:attribute
>



<
xsd:attribute

name
=
"brca2"

default
=
"0"

use
=
"optional"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


@[brca2] results for BRCA2 germline testings are


available, the user can input the results in


data frame germline.testing (0=no test, 1=positive


test, 2=negativ
e test).


</
xsd:documentation
>


</
xsd:annotation
>


<
xsd:simpleType
>


<
xsd:restriction

base
=
"xsd:int"
>


<
xsd:pattern

value
=
"(0|1|2)"
/>


</
xsd:restricti
on
>


</
xsd:simpleType
>


</
xsd:attribute
>


</
xsd:complexType
>


</
xsd:element
>



<
xsd:element

name
=
"marker.testing"
>


<
xsd:complexType
>


<
xsd:attribute

name
=
"ER"

default
=
"0"

use
=
"optional"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


@[ER] ER testing result. (0=no test, 1=positive test,


2=negative test)


</
xsd:documentation
>



</
xsd:annotation
>


<
xsd:simpleType
>


<
xsd:restriction

base
=
"xsd:int"
>


<
xsd:pattern

value
=
"(0|1|2)"
/>


</
xsd:restriction
>


</
xsd:simpleType
>


</
xsd:attribute
>



<
xsd:attribute

name
=
"CK14"

default
=
"0"

use
=
"optional"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


@[CK14] CK14 testing result. (0=no test, 1=positive



test, 2=negative test)


</
xsd:documentation
>


</
xsd:annotation
>


<
xsd:simpleType
>


<
xsd:restriction

base
=
"xsd:int"
>


<
xsd:pattern

value
=
"(0|1|2)"
/>


</
xsd:restriction
>


</
xsd:simpleType
>


</
xsd:attribute
>



<
xsd:attribute

name
=
"CK5.6"

default
=
"0"

use
=
"optional"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


@[CK5.6] CK5/6 testing result. (0=no test, 1=positive


test, 2=negative test)


</
xsd:documentation
>


</
xsd:annotation
>


<
xsd:simpleType
>


<
xsd:
restriction

base
=
"xsd:int"
>


<
xsd:pattern

value
=
"(0|1|2)"
/>

BRCAPro Web

Service

1.0


SUBMITTED


Technical Guide


Date:
12/1/09


Prepared by 5AM Solutions, Inc.

|

22



</
xsd:restriction
>


</
xsd:simpleType
>


</
xsd:attribute
>



<
xsd:attribute

name
=
"PR"

default
=
"0"

use
=
"optional"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


@[PR] PR testing result. (0=no test, 1=positive test,


2=negative test)


</
xsd:documentation
>


</
xsd:annotation
>


<
xsd:simpleType
>


<
xsd:restriction

base
=
"xsd:int"
>


<
xsd:pattern

value
=
"(0|1|2)"
/>


</
xsd:restriction
>


</
xsd:simpleType
>


</
xsd:attribute
>


</
xsd:complexType
>


</
xsd:element
>



<
xsd:element

name
=
"oophorectomy"
>


<
xsd:complexType
>


<
xsd:attribute

name
=
"oophorectomy"

default
=
"0"

use
=
"optional"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


@[oophorectomy] Oophorectomy yes/no. (0=no


oophorectomy, 1=oophorectomy).


If people have undergone an important intervention, like


oophorectomy for BRCAPRO,

the intervention and age of


intervention are included in data frame

oophorectomy

with


column names. Furthermore, you must provide the hazard ratios


of

PostOophorectomyHR,

w
hich convert each column of the


penetrance matrix to its post
-
intervention

value.


</
xsd:documentation
>


</
xsd:annotation
>


<
xsd:simpleType
>


<
xsd:restriction

base
=
"xsd:int"
>


<
xsd:pattern

value
=
"(0|1)"
/>


</
xsd:restriction
>


</
xsd:simpleType
>


</
xsd:attribute
>



<
xsd:attribute

name
=
"ageOophorectomy"

default
=
"0"

use
=
"optional"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


@[ageOophorectomy] Estimated or exact age of the


Oophorectomy.

F
amily memb
ers for whom no information is


available should be coded with a 0 in the


oophorectomy field, and a 0 in the age fields.


</
xsd:documentation
>


</
xsd:annotation
>


<
xsd:simpleType
>


<
xsd:restriction

base
=
"xsd:int"
>


<
xsd:minInclusive

value
=
"0"
/>


<
xsd:maxInclusive

value
=
"150"
/>


</
xsd:restriction
>


</
xsd
:simpleType
>


</
xsd:attribute
>


</
xsd:complexType
>


</
xsd:element
>



<
xsd:simpleType

name
=
"simpleDecimal"
>


<
xsd:annotation
>

BRCAPro Web

Service

1.0


SUBMITTED


Technical Guide


Date:
12/1/09


Prepared by 5AM Solutions, Inc.

|

23



<
xsd:documentation

xml:lang
=
"en"
>


A decimal type that is Not represented in scientific notation.


</
xsd:documentation
>


</
xsd:annotation
>


<
xsd:restriction

base
=
"xsd:decimal"
>


<
xsd:pattern

value
=
"(
-
)?[0
-
9]*(.[0
-
9]+)?"
/>


</
xsd:restriction
>


</
xsd:simpleType
>

</
xsd:schema
>



4.4

Sample Input XML

The following XML file conforms to the XSD provided in the previous section.
The Java object
created by marshaling this XML file can be provided as
an input to the web service.


<?
xml

version
=
"1.0"

encoding
=
"UTF
-
8"

standalone
=
"yes"
?>

<
brcaproInput

xsi:schemaLocation
=
"http://riskmodels.breasthealthdesicions.org/BayesMendel
brcapro_input.xsd"

xmlns
=
"http://riskmodels.breasthealthdesicions.org/BayesMendel"

xmlns:xsi
=
"http://www.w3.org/
2001/XMLSchema
-
instance"
>


<
parameters

counselee.id
=
"1"

race
=
"White"

allef.type
=
"nonAJ"
/>


<
brcaparams
>


<
alleleFrequency

brca1
=
"0.000654321"

brca2
=
"0.000543216"
/>


<
predictionLimits

ageBy
=
"5"

ageTo
=
"85"
/>


<
specificity

brca1
=
"1.0"

brca2
=
"1.0"
/>


<
sensitivity

brca1
=
"0.8"

brca2
=
"0.8"
/>


<
datasets

penetrance
=
"CBRCApenet.metaDSL.2009"

comprisk
=
"compriskSurv"
/>


</
brcaparams
>


<
family
>


<
member

id
=
"1"

gender
=
"0"

fatherId
=
"3"

motherId
=
"2"
>


<
breastCancer

affectedBreast
=
"0"

ageBreast
=
"1"






ageBreastContralateral
=
"0"
/>


<
ovarianCancer

affectedOvary
=
"0"

ageOvary
=
"1"
/>


<
germline.testing

brca1
=
"0"

brca2
=
"0"
/>


<
marker.testing

ER
=
"0"

CK14
=
"0"

CK5.6
=
"0"

PR
=
"0"
/>


<
oophorectomy

oophorectomy
=
"0"

ageOophorectomy
=
"0"
/>


</
member
>


<
member

id
=
"2"

gender
=
"0"

fatherId
=
"5"

motherId
=
"4"
>


<
breastCancer

affectedBreast
=
"1"

ageBreast
=
"60"


ageBreastContralateral
=
"0"
/>


<
ovarianCancer

affectedOvary
=
"0"

ageOvary
=
"1"
/>


<
germline.testing

brca1
=
"1"

brca2
=
"2"
/>


<
marker.testing

ER
=
"1"

CK14
=
"0"

CK5.6
=
"2"

PR
=
"1"
/>


<
oophorectomy

oophorectomy
=
"1"

ageOophorectomy
=
"45"
/>


</
member
>


<
member

id
=
"3"

gender
=
"1"

fatherId
=
"7"

motherId
=
"6"
>


<
breastCancer

affectedBreast
=
"0"

ageBreast
=
"1"


ageBreastContralateral
=
"0"
/>


<
ovarianCancer

affectedOvary
=
"0"

ageOvary
=
"1"
/>


<
germline.testing

brca1
=
"0"

brca2
=
"0"
/>


<
marker.testing

ER
=
"0"

CK14
=
"0"

CK5.6
=
"0"

PR
=
"0"
/>


<
oophorectomy

oophorectomy
=
"0"

ageOophorectomy
=
"0"
/>


</
member
>


<
member

id
=
"4"

gender
=
"0"

fatherId
=
"0"

motherId
=
"0"
>


<
breastCancer

affectedBreast
=
"0"

ageBreast
=
"1"


ageBreastContralateral
=
"0"
/>


<
ovarianCancer

affectedOvary
=
"0"

ageOvary
=
"1"
/>


<
germline.testing

brca1
=
"0"

brca2
=
"0"
/>


<
marker.testing

ER
=
"0"

CK14
=
"0"

CK5.6
=
"0"

PR
=
"0"
/>


<
oophorectomy

oophorectomy
=
"0"

ageOophorectomy
=
"0"
/>

BRCAPro Web

Service

1.0


SUBMITTED


Technical Guide


Date:
12/1/09


Prepared by 5AM Solutions, Inc.

|

24



</
member
>


<
member

id
=
"5"

gender
=
"1"

fatherId
=
"0"

motherId
=
"0"
>


<
breastCancer

affectedBreast
=
"0"

ageBreast
=
"1"


ageBreastContralateral
=
"0"
/>


<
ovarianCancer

affectedOvary
=
"0"

ageOvary
=
"1"
/>


<
germline.testing

brca1
=
"0"

brca2
=
"0"
/>


<
marker.testing

ER
=
"0"

CK14
=
"0"

CK5.6
=
"0"

PR
=
"0"
/>


<
oophorectomy

oophorectomy
=
"0"

ageOophorectomy
=
"0"
/>


</
member
>


<
member

id
=
"6"

gender
=
"0"

fatherId
=
"0"

motherId
=
"0"
>


<
breastCancer

affectedBreast
=
"0"

ageBreast
=
"1"


ageBreastContralateral
=
"0"
/>


<
ovarianCancer

affectedOvary
=
"0"

ageOvary
=
"1"
/>


<
germline.testing

brca1
=
"0"

brca2
=
"0"
/>


<
marker.testing

ER
=
"0"

CK14
=
"0"

CK5.6
=
"0"

PR
=
"0"
/>


<
oophorectomy

oophorectomy
=
"0"

ageOophorectomy
=
"0"
/>


</
member
>


<
member

id
=
"7"

gender
=
"1"

fatherId
=
"0"

motherId
=
"0"
>


<
breastCancer

affectedBreast
=
"0"

ageBreast
=
"1"


ageBreastContralateral
=
"0"
/>


<
ovarianCancer

affectedOvary
=
"0"

ageOvary
=
"1"
/>


<
germline.testing

brca1
=
"0"

brca2
=
"0"
/>


<
marker.testing

ER
=
"0"

CK14
=
"0"

CK5.6
=
"0"

PR
=
"0"
/>


<
oophorectomy

oophorectomy
=
"0"

ageOophorectomy
=
"0"
/>


</
member
>


</
family
>

</
brcaproInput
>



4.5

Output XSD

The following is the output XML schema definition referenced from the web service
descriptor. This fully specifies th
e output from the web service.


<?
xml

version
=
"1.0"

encoding
=
"UTF
-
8"
?>

<
xsd:schema

xmlns:xsd
=
"http://www.w3.org/2001/XMLSchema"


targetNamespace
=
"http://riskmodels.breasthealthdesicions.org/BayesMendel"



xmlns:brcapro
=
"http://riskmodels.breasthealthdesicions.org/BayesMendel"


elementFormDefault
=
"qualified"
>


<
xsd:annotation
>


<
xsd:appinfo
>
BayesMendel Web Service Parameter Definitions
</
xsd:appinfo
>


<
xsd:documentation

xml:lang
=
"en"
>

Author:
hniedner@5amsolutions.com


</
xsd:documentation
>


<
xsd:documentation

xml:lang
=
"en"
>

Output for the
brcapro
() method


</
xsd:documentation
>


</
xsd:annotation
>




<
xsd:element

name
=
"brcaproOutput"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


@[brcaproOutput] Corresponds to an R object of class "BayesMendel" with 5


slots
. To
save bandwidth the output differs from this object in that the


output does contain the data
correspo
n
ding

to the slot "family" and


"counselee.id", since

they are already available to the client.


</
xsd:documentation
>

BRCAPro Web

Service

1.0


SUBMITTED


Technical Guide


Date:
12/1/09


Prepared by 5AM Solutions, Inc.

|

25



</
xsd:annotation
>


<
xsd:complexType
>


<
xsd:sequence
>


<
xsd:element

ref
=
"brcapro:posterior"

minOccurs
=
"1"

maxOccurs
=
"1"

/>


<
xsd:element

ref
=
"brcapro:probabilities"

minOccurs
=
"1"

maxOccurs
=
"1"



/>


<
xsd:element

ref
=
"brcapro:predictions"

minOccurs
=
"1"

maxOccurs
=
"1"

/>


</
xsd:sequence
>


<
xsd:attribute

name
=
"logLikelihood"

type
=
"xsd:double"

use
=
"required"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


@[logLikelihood] Total log
-
likelihood from the model.


</
xsd:documentation
>


</
xsd:annotation
>


</
xsd:attribute
>


</
xsd:complexType
>


</
xsd:element
>




<
xsd:element

name
=
"posterior"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


@[probabilities] Corresponds to a 2 by 2 matrix, which gives the joint


probability of carrying mutations at BRCA1 and BRCA2, with components:


Rows: carrier status at BRCA1.


BRCA10


wild type (
noncarrier
)



BRCA11


one mutated allele (
heterozygous

carrier)


Columns: carrier status at BRCA2.


BRCA20


wild type (
noncarrier
)


BRCA21


one mutated allele (
heterozygous

carrier)


</
xsd:documentation
>


</
xsd:annotation
>


<
xsd:complexType
>


<
xsd:attribute

name
=
"bothNegative"

type
=
"xsd:double"

use
=
"required"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


@[bothNegative] probability value for BRCA10/BRCA20


</
xsd:documentation
>


</
xsd:annotation
>


</
xsd:attribute
>


<
xsd:attribute

name
=
"onlyBRCA1positive"

type
=
"xsd:double"

use
=
"required"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


@[bothNegative] probability value for BRCA11/BRCA20


</
xsd:documentation
>


</
xsd:annotation
>


</
xsd:attribute
>



<
xsd:attribute

name
=
"onlyBRCA2positive"

type
=
"xsd:double"

use
=
"required"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


@[bothNegative] probability value for BRCA10/BRCA21


</
xsd:documentation
>


</
xsd:annotation
>


</
xsd:attribute
>

BRCAPro Web

Service

1.0


SUBMITTED


Technical Guide


Date:
12/1/09


Prepared by 5AM Solutions, Inc.

|

26



<
xsd:attribute

name
=
"bothPositive"

type
=
"xsd:double"

use
=
"required"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>



@[bothNegative] probability value for BRCA11/BRCA21


</
xsd:documentation
>


</
xsd:annotation
>


</
xsd:attribute
>


</
xsd:complexType
>


</
xsd:element
>




<
xsd:element

name
=
"probabilities"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


@[probabilities] The marginal probability of being a "carrier", "BRCA1


mutation carrier", "BRCA2 mutation carrier", or both.


</
xsd:documentation
>


</
xsd:annotation
>


<
xsd:complexType
>


<
xsd:attribute

name
=
"carrierAny"

type
=
"xsd:double"

use
=
"required"

/>


<
xsd:attribute

name
=
"carrierBRCA1"

type
=
"xsd:double"

use
=
"required"

/>


<
xsd:attribute

name
=
"carrierBRCA2"

type
=
"xsd:double"

u
se
=
"required"

/>


<
xsd:attribute

name
=
"carrierBoth"

type
=
"xsd:double"

use
=
"required"

/>


</
xsd:complexType
>


</
xsd:element
>




<
xsd:element

name
=
"predictions"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


@[predictions] Corresponds to a data frame listing the ages (from current


age to "age.to" by "age.by")


and the cumulative risks of developing breast/
ovarian

cancer by each age.


</
xsd:documentation
>


</
xsd:annotation
>


<
xsd:complexType
>


<
xsd:sequence
>


<
xsd:element

ref
=
"brcapro:prediction
"

maxOccurs
=
"unbounded"

/>


</
xsd:sequence
>


</
xsd:complexType
>


</
xsd:element
>




<
xsd:element

name
=
"prediction"
>


<
xsd:complexType
>


<
xsd:attribute

name
=
"age"

type
=
"xsd:int"

use
=
"required"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


@[age] Age in years for risk prediction.


</
xsd:documentation
>


</
xsd:annotation
>


</
xsd:attribute
>


<
xsd:attribute

name
=
"breastCancerRisk"

type
=
"xsd:double"

use
=
"required"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


@[breastCancerRisk] Cumulative risk to develop breast cancer.

BRCAPro Web

Service

1.0


SUBMITTED


Technical Guide


Date:
12/1/09


Prepared by 5AM Solutions, Inc.

|

27



</
xsd:documentation
>


</
xsd:annotation
>


</
xsd:attribute
>


<
xsd:attribute

name
=
"ovarianCancerRisk"

type
=
"xsd:double"

us
e
=
"required"
>


<
xsd:annotation
>


<
xsd:documentation

xml:lang
=
"en"
>


@[breastCancerRisk] Cumulative risk to develop
ovarian

cancer.


</
xsd:documentation
>


</
xsd:annotation
>


<
/
xsd:attribute
>


</
xsd:complexType
>


</
xsd:element
>

</
xsd:schema
>



4.6

Sample Output XML

The following XML file conforms to the XSD provided in the previous section. The Java object
created by marshaling this XML file is what is returned by the web

service.


<?
xml

version
=
"1.0"

encoding
=
"UTF
-
8"

standalone
=
"yes"
?>

<
brcaproOutput

logLikelihood
=
"
-
15.930623545784444"


xsi:schemaLocation
=
"http://riskmodels.breasthealthdesicions.org/BayesMendel
brcapro_output.xsd"

xmlns
=
"http://riskmodels.breasthealthdesi
cions.org/BayesMendel"

xmlns:xsi
=
"http://www.w3.org/2001/XMLSchema
-
instance"
>


<
posterior

bothNegative
=
"0.4994908321615341"



onlyBRCA1positive
=
"0.4997442872245665"



onlyBRCA2positive
=
"3.8238502635042944E
-
4"



bothPositive
=
"3.824955875489636E
-
4"
/>


<
probabilities

carrierAny
=
"0.5005091678384659"

carrierBRCA1
=
"0.49974428722456654"



carrierBRCA2
=
"3.8238502635040694E
-
4"



carrierBoth
=
"3.8249558754893664E
-
4"
/>


<
predictions
>


<
prediction

age
=
"6"

breastCancerRisk
=
"5.591719489493513
E
-
7"


ovarianCancerRisk
=
"1.2135761400663038E
-
4"
/>


<
prediction

age
=
"11"

breastCancerRisk
=
"1.153724318796013E
-
5"


ovarianCancerRisk
=
"6.342152443251033E
-
4"
/>


<
prediction

age
=
"16"

breastCancerRisk
=
"1.122188494407553E
-
4"


ovarianCancerRisk
=
"0.001980292629565075"
/>


<
prediction

age
=
"21"

breastCancerRisk
=
"8.417104935168552E
-
4"


ovarianCancerRisk
=
"0.00404105746941117"
/>


<
prediction

age
=
"26"

breastCancerRisk
=
"0.0044731955166441625"


ovarianCancerRisk
=
"0.006514103501659003"
/>



<
prediction

age
=
"31"

breastCancerRisk
=
"0.016057005009995615"


ovarianCancerRisk
=
"0.009891807612813044"
/>


<
prediction

age
=
"36"

breastCancerRisk
=
"0.04003211664515334"


ovarianCancerRisk
=
"0.014914022200236498"
/>


<
prediction

age
=
"41"

breastCancerRisk
=
"0.0776193819625027"


ovarianCancerRisk
=
"0.023222515479229672"
/>


<
prediction

age
=
"46"

breastCancerRisk
=
"0.12650279814609167"


ovarianCancerRisk
=
"0.03837251636699054"
/>


<
prediction

age
=
"51"

breastCancerRisk
=
"0.1759103553525
1928"


ovarianCancerRisk
=
"0.06247963535279295"
/>

BRCAPro Web

Service

1.0


SUBMITTED


Technical Guide


Date:
12/1/09


Prepared by 5AM Solutions, Inc.

|

28



<
prediction

age
=
"56"

breastCancerRisk
=
"0.2187171134529867"


ovarianCancerRisk
=
"0.09403332100782308"
/>


<
prediction

age
=
"61"

breastCancerRisk
=
"0.25618556108806456"


ovarianCancerRisk
=
"0.13094471495416682"
/>


<
prediction

age
=
"66"

breastCancerRisk
=
"0.28836142663932807"


ovarianCancerRisk
=
"0.17135026346230353"
/>


<
prediction

age
=
"71"

breastCancerRisk
=
"0.3144372413938577"


ovarianCancerRisk
=
"0.21023475293827912"
/>


<
pr
ediction

age
=
"76"

breastCancerRisk
=
"0.33734160548112235"


ovarianCancerRisk
=
"0.2450307884080721"
/>


<
prediction

age
=
"81"

breastCancerRisk
=
"0.35673381746931815"


ovarianCancerRisk
=
"0.27294428103205015"
/>


</
predictions
>

</
brcaproOutput
>