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
>
Enter the password to open this PDF file:
File name:
-
File size:
-
Title:
-
Author:
-
Subject:
-
Keywords:
-
Creation Date:
-
Modification Date:
-
Creator:
-
PDF Producer:
-
PDF Version:
-
Page Count:
-
Preparing document for printing…
0%
Comments 0
Log in to post a comment