Commit ea73bd4b authored by Matt Rogon's avatar Matt Rogon

Adding files

parents
ALS-Aliases (class=java.lang.String)
gpx1 = (gpx1)
lcb4 = (lcb4)
sgms2 = (sgms2::sms2::mgc26963)
lcb3 = (lcb3::lbp1::ysr2)
tat1 = (vap1::tap1::tat1)
lcb5 = (lcb5)
tat2 = (tap2::tat2::ltg3::sab2::scm2)
cux1 = (coy1::clox::cdp1::cux1::casp::golim6::p110::p100::cux%2Fcdp::cux::cdp::p75::cdp%2Fcut::nbla10317::cutl1)
hist2h2aa3 = (hist2h2aa::h2a::hist2h2aa3::h2a-615::h2a%2Fq::h2a%2Fo::h2afo)
irf6 = (pit::pps::lps::vws::irf6::ofc6)
gba = (gcb::gba::gluc::gba1)
ugt8 = (ugt8)
atp5a1 = (mom2::orm::omr::atp5al2::hatp1::atp5a::atpm::atp5a1)
plp1 = (mmpl::plp::pmd::spg2::plp%2Fdm20::plp1)
sur2 = (sur2::syr2)
alox12b = (12r-lox::alox12b)
ctsa = (ctsa::ngbe::gsl::glb2::ppgb::ppca)
sod1 = (homodimer::sod::ipoa::sod1::als1)
agxt = (agxt1::tlh6::spt::ph1::spat::agxt::agt1)
3.5.1.4 = (deaminase::n-acetylaminohydrolase::acylamidase::amidase::acylase::3.5.1.4::amidohydrolase::fatty+acylamidase)
cd74 = (cd74::hladg::ia-gamma::dhlag)
sgpp1 = (sgpp1::sppase1)
timp1 = (timp1::clgi::flj90373::timp-1::timp::hci::epa)
ufd4 = (ufd4)
emi2 = (emi2)
snd1 = (tdrd11::snd1)
dpl1 = (dpl1)
fhl1 = (spp42::fhl1)
erg5 = (erg5::cyp61)
ms4a1 = (b1::cd20::b-1::mgc3969::ms4a1::leu-16)
hxt4 = (lgt1::hxt4::rag1)
abca1 = (cerp::mgc164864::mgc165011::hdldt1::tgd::flj14958::abc1::abca1::abc-1)
hsd11b1 = (11-dh::hsd11l::hsd11b::hdl::hsd11::11-beta-hsd1::hsd11b1::mgc13539)
gal3st1 = (cst::gal3st1)
pdr5 = (lem1::pdr5)
tnfsf8 = (cd153::cd30l::mgc138144::cd30lg::tnfsf8)
bax = (bax::bcl2l4)
hmgcs1 = (mgc90332::hmgcs::hmgcs1)
med23 = (sur2::crsp3::med23::drip130::dkfzp434h0117::crsp130::crsp133)
ysr3 = (lbp2::ysr3)
tsc3 = (tsc3)
smpd1 = (asm::npd::smpd1)
orm1 = (orm1)
parp1 = (adprt1::parp-1::adprt::parp1::parp::padprt-1::ppol)
ale1 = (lpt1::lca1::slc4::ale1)
sptlc1 = (sptlc1::lcb1::lbc1::hsan1::hsn1::hsan::spt1::spti::mgc14645)
hmg1 = (hmg1)
galc = (galc)
tps1 = (cif1::byp1::fdp1::tps1::tss1::ggs1::glc6)
akr1 = (akr1)
akr2 = (akr2)
col11a1 = (stl2::co11a1::coll6::col11a1)
sptlc2 = (kiaa0526::sptlc2::lcb2::spt2)
orm2 = (orm2)
pep5 = (vam1::vpl9::end1::vpt11::vps11::pep5)
sptlc3 = (flj90790::sptlc2l::sptlc3::c20orf38::dj718p11.1::dj718p11::flj11112)
asprv1 = (muno::saspase::taps::asprv1::sasp)
whi2 = (whi2)
hem14 = (hem14)
cltb = (cltb::lcb)
cdk5 = (cdk5::pssalre)
pparg = (ppar-gamma::ppargamma::nr1c3::pparg::pparg1::pparg2)
asah1 = (ac::flj22079::flj21558::php::php32::asah1::asah)
sms = (mrsr::spmsy::srs::sms)
ephb2 = (ephb2::epht3::erk::drt::mgc87492::pcbc::tyro5::hek5)
gclc = (glclc::gcs::glcl::gclc)
ccl4 = (mgc126025::mgc126026::ccl4::mip1b1::g-26::mgc104418::lag1::scya4::mip1b::mip-1-beta::act2::at744.1)
pho85 = (pho85::ldb15)
aloxe3 = (e-lox::elox3::mgc119696::mgc119695::mgc119694::aloxe3)
acacb = (hacc275::acacb::acc2::accb)
4.3.1.19 = (4.3.1.19::l-threonine+hydro-lyase+%28deaminating%29::threonine+deaminase::l-serine+dehydratase::threonine+dehydrase::serine+deaminase::l-threonine+deaminase::l-threonine+dehydratase::threonine+ammonia-lyase::threonine+dehydratase)
pbp1 = (mrs16::pbp1)
kes1 = (bsr3::kes1::lpi3::osh4)
b4galt6 = (b4gal-t6::b4galt6::beta4gal-t6)
slc1 = (slc1)
ervk2 = (polymerase::herv-k::ervk2)
ormdl3 = (ormdl3)
canonicalName newName
gpx1 gpx1
tat1 tat1
tat2 tat2
hist2h2aa3 hist2h2aa3
gba gba
PSICQUIC+Search+Results%3A+Thu+May+16+12%3A29%3A42+CEST+2013 PSICQUIC+Search+Results%3A+Thu+May+16+12%3A29%3A42+CEST+2013
CG21_YEAST CG21
iaEBnCrgTJTn8fYoNdHcXQ8dVQM iaEBnCrgTJTn8fYoNdHcXQ8dVQM
P06777 RAD1
P38737 ECM29
plp1 plp1
sur2 sur2
alox12b alox12b
ctsa ctsa
BXI1_YEAST BXI1
sod1 sod1
3.5.1.4 3.5.1.4
cd74 cd74
P24868 CLB1
sgpp1 sgpp1
AUR1_YEAST AUR1
ufd4 ufd4
P40495 LYS12
dpl1 dpl1
P37304-PAM1_YEAST P37304-PAM1_YEAST
ms4a1 ms4a1
hxt4 hxt4
abca1 abca1
gal3st1 gal3st1
GSP2_YEAST GSP2
tnfsf8 tnfsf8
bax bax
med23 med23
tsc3 tsc3
Q12013 AKR2
P34730 BMH2
smpd1 smpd1
orm1 orm1
P39993 GEA2
P47013 LCB3
sptlc1 sptlc1
hmg1 hmg1
VAM3_YEAST VAM3
YeqCenOKv2DCLaVMbBItJ2r3SEI YeqCenOKv2DCLaVMbBItJ2r3SEI
akr1 akr1
P19358 SAM2
akr2 akr2
orm2 orm2
sptlc2 sptlc2
sptlc3 sptlc3
iRefIndex iRefIndex
cltb cltb
Q05567 DPL1
Q12246 LCB4
P38699-STB5_YEAST P38699-STB5_YEAST
ephb2 ephb2
P40045 YER071C
ccl4 ccl4
aloxe3 aloxe3
P25045 LCB1
PAM1_YEAST PAM1
AKR2_YEAST-Q12013 AKR2_YEAST-Q12013
kes1 kes1
RIF2_YEAST RIF2
slc1 slc1
ormdl3 ormdl3
lcb4 lcb4
P37304 PAM1
P38708 YHR020W
sgms2 sgms2
lcb3 lcb3
STB5_YEAST STB5
lcb5 lcb5
P14742 GFA1
cux1 cux1
irf6 irf6
ugt8 ugt8
BZZ1_YEAST BZZ1
BZZ1_YEAST-P38822 BZZ1_YEAST-P38822
UBI4P_YEAST UBI4P
atp5a1 atp5a1
Q06208 RIF2
agxt agxt
AKR1_YEAST AKR1
P40069 KAP123
AKR2_YEAST AKR2
timp1 timp1
emi2 emi2
snd1 snd1
P33300 SUR1
fhl1 fhl1
erg5 erg5
P30822 CRM1
P10659 SAM1
hsd11b1 hsd11b1
Q02159 UBC7
TDA2_YEAST TDA2
pdr5 pdr5
COPD_YEAST COPD
hmgcs1 hmgcs1
ysr3 ysr3
P38217 KAP104
P40486 SHQ1
CSG2_YEAST CSG2
P53174 PRM8
P38316 ATG12
P38822 BZZ1
parp1 parp1
ale1 ale1
galc galc
tps1 tps1
col11a1 col11a1
pep5 pep5
asprv1 asprv1
whi2 whi2
hem14 hem14
cdk5 cdk5
pparg pparg
Q06208-RIF2_YEAST Q06208-RIF2_YEAST
P38699 STB5
P23641 MIR1
GSP2_YEAST-P32836 GSP2_YEAST-P32836
COPB_YEAST COPB
P32836 GSP2
P40970 LCB2
asah1 asah1
sms sms
Q06344 ESF1
gclc gclc
pho85 pho85
4.3.1.19 4.3.1.19
acacb acacb
P38631 FKS1
pbp1 pbp1
b4galt6 b4galt6
ervk2 ervk2
MINT MINT
P29311 BMH1
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
YKR026C
YGR218W
YGL097W
YLR249W
YLR293C
YDR429C
YBR118W
YOL123W
YPL211W
YJL030W
S000000322
S000002837
S000006132
S000004239
S000004284
S000003567
S000003450
S000005483
S000001734
S000003065
\ No newline at end of file
Additional information, benchmarking scripts and FAQs
Author: Tamas Nepusz, Haiyuan Yu, Alberto Paccanaro
Date: 15 September 2012
Revision: 1
In this document we provide additional details regarding the ClusterONE algorithm and its benchmarks described in [1]. We also provide source code for calculating the quality measures we have used in the manuscript. Together with the already released datasets and gold standards, one should be able to replicate our results simply by running the downloaded benchmark script in an appropriately prepared software environment.
We plan to maintain this document and extend it in the future with frequently asked questions and answers regarding ClusterONE.
In the following sections, we repeat and clarify the construction of the gold standard datasets and of the input networks, and describe our benchmarking procedure. Next, we describe the software requirements of our benchmark scripts and provide usage instructions for the calculation of various quality measures using our implementation.
Contents
Construction of the gold standards
The MIPS gold standard
The SGD gold standard
Construction of the input networks
Gavin et al, 2006
Krogan et al, 2006
Collins et al, 2007
BioGRID
Benchmarking a network on a given gold standard
Reproducing our results using the provided scripts
Software requirements
Obtaining the scripts
Running the scripts
Frequently asked questions
Is ClusterONE deterministic?
References
Construction of the gold standards
In this section, we describe how the gold standards were constructed. The data files can be downloaded from the following URL:
http://membrane.cs.rhul.ac.uk/static/cl1/cl1_gold_standard.zip
The MIPS gold standard
The MIPS gold standard we have used was constructed from the most recent version of the MIPS catalog of protein complexes that was available when we wrote the manuscript. This version was dated as 18 May 2006 and it was downloaded from ftp://ftpmips.gsf.de/yeast/catalogues/complexcat/.
The MIPS catalog is organized hierarchically, which means that complexes in the catalog may consist of subcomplexes extending to at most five hierarchy levels deep. One example of a deeply embedded complex is the one with the identifier 510.190.10.20.10: it represents the SAGA complex and it is to be found at the fifth hierarchy level in the catalog. However, there is no clear separation in MIPS between complexes and groups of related complexes; for instance, the category with the identifier 510.180 corresponds to all "DNA-repair complexes". To avoid any selection bias, we decided not to classify the MIPS categories manually as "complexes" and "complex groups"; instead of that, we simply set an upper and lower size threshold on the complex size and considered every MIPS category with at least 3 and at most 100 members as a valid protein complex. The only exception was the MIPS category 550 and its descendants, as these categories correspond to unconfirmed protein complexes that were predicted by computational methods. Including these putative complexes would clearly have biased the benchmarks towards algorithms that work similarly to the ones that were used to create category 550.
The SGD gold standard
The SGD gold standard was created out of the need to have a gold standard that is more recent than the MIPS gold standard (which was dated as 18 May 2006). These complexes were derived from the Gene Ontology (GO) annotations in the Saccharomyces Genome Database (SGD), downloaded on 11 Aug 2010. The rules were as follows. First, we downloaded the set of annotation terms in the Gene Ontology that were valid on 11 Aug 2010 and their relationships. Second, we ran an inference engine on the Gene Ontology that provided us with all the terms from the ontology that are descendants of the term GO:0043234 (protein complex) using "is_a" relations only. These GO terms were then treated as protein complex annotations, and we have collected all the proteins from the SGD that were annotated by these annotations and were supported by at least one evidence code, excluding IEA (Inferred from Electronic Annotation), which is used in Gene Ontology to denote relationships that were determined by a computational algorithm and were not approved yet by a human curator. Proteins sharing the same Gene Ontology term were then treated as being part of the same complex (where the complex is represented by the Gene Ontology term). Annotations with modifiers such as not or colocalizes_with were ignored.
The inference engine we have used is available in a forked version of Biopython at http://github.com/ntamas/biopython. The inference engine itself is contained in the Bio.GO.inference module.
Construction of the input networks
In this section, we describe how the input networks were constructed. The data files can be downloaded from the following URL:
http://membrane.cs.rhul.ac.uk/static/cl1/cl1_datasets.zip
All the input networks we have used were stripped from self-interactions and isolated proteins.
Gavin et al, 2006
In the paper of Gavin et al [2], the weights of the interactions were defined using the so-called socio-affinity index, a measure that is based on the log-odds of the number of times two proteins were observed together in a purification, relative to the expected frequency of such a co-occurrence based on the number of times the proteins appeared in purifications. In other words, pairs of proteins with high socio-affinity indices were seen together in a purification more frequently than what one would have expected by random chance. More details are to be found in Section 4.1 of the Supplementary Discussion of our manuscript [1] or in the paper of Gavin et al [2].
Gavin et al argued that "generally, pairs with socio-affinity indices below 5 should be considered with caution". Therefore, our dataset was constructed from the socio-affinity indices published by Gavin, removing interactions that had a socio-affinity index less than or equal to 5. The socio-affinity indices were then divided by the maximum socio-affinity index encountered in the dataset to obtain the weights of the interactions.
Krogan et al, 2006
Krogan et al [3] have used MALDI-TOF mass spectrometry and LC-MS/MS to identify protein-protein interactions, based on the observation that either mass spectrometry method often fails to identify a protein, and the usage of two independent methods can increase the coverage and confidence of the obtained interactome. The results of the two techniques were combined by supervised machine learning methods with two rounds of learning, using hand-curated protein complexes in the MIPS database as a gold standard dataset. More details are to be found in Section 4.2 of the Supplementary Discussion of our manuscript [1] or in the paper of Krogan et al [3].
Krogan et al have provided two versions of their results using different thresholds on the output of the final classifier in their pipeline. The core dataset includes all interactions with posterior probability higher than 0.273, while the extended dataset includes all interactions with posterior probability higher than 0.101. The posterior probabilities were used as weights in our networks without any further modifications (apart from the thresholds already applied by Krogan et al [3]).
Collins et al, 2007
Collins et al [4] have combined the experimentally derived PPI networks of Krogan et al [3] and Gavin et al [2] by re-analyzing the raw primary affinity purification data using a novel scoring technique called purification enrichment (PE). The PE scores were motivated by the probabilistic socio-affinity scoring framework of Gavin et al [2] but also take into account negative evidence (i.e. pairs of proteins where one of them does not appear as a prey when the other one is used as a bait). More details are to be found in Section 4.3 of the Supplementary Discussion of our manuscript [1] or in the paper of Collins et al [4].
Although the PE scores are not constrained to the [0, 1] interval, Collins et al [4] have already PE scores within this range. They have set scores below 0.05 to zero for computational efficiency, and then established a set of reliable interactions by taking 9074 interactions with the highest PE scores. The number of interactions to keep was selected based on the true positive to true negative rate evaluated on the MIPS small scale experiments. We have used these 9074 interactions along with the remapped scores provided by Collins et al [4] without further modifications.
BioGRID
The BioGRID dataset was the only unweighted dataset we have considered. It was downloaded from BioGRID at version 3.1.77 and contained all physical interactions involving yeast proteins only. Weights were ignored even for those interactions that had an associated weight information for two reasons:
Only 18.05% of all the interactions contained confidence scores and it was unclear how to specify weights for the remaining 81.95%.
The confidence scores were determined not by a single, consistent algorithm but were provided by the research groups that also provided the interaction data. Since interactions from different research groups were determined by different techniques, their confidence scores are not directly comparable to each other.
Benchmarking a network on a given gold standard
The set of proteins in a gold standard is almost always different from the set of proteins in the network being benchmarked. Proteins can thus be grouped into three groups:
Proteins appearing in both the input network and in the gold standard
Proteins appearing in the input network but not in the gold standard
Proteins appearing in the gold standard but not in the input network
For the proteins in groups 1 and 2, there is no need for any intervention. In the former case, the protein has at least one known interaction with other proteins and it participates in at least one complex in the gold standard, therefore it is theoretically possible to detect the complexes the protein participates in from the input dataset. In the latter case, the protein has known interactions but does not belong to any of the known complexes, which may pose a problem to traditional graph clustering methods that put every protein into exactly one cluster (since they are forced to put proteins without complexes into singleton clusters), but it is not a problem for an overlapping clustering algorithm that allows outliers (like ClusterONE). However, in the third case, we know that the protein participates in at least one complex, but we do not know any interactions that the protein is involved in, hence it is impossible for any clustering algorithm that uses topological data only to infer the correct membership of this protein or to identify the corresponding complex accurately. On the other hand, if the complex is large enough, we should not throw it away only because a few of its constituent proteins are missing from the input data since it is quite conceivable that the rest of the complex is easily identifiable from the network itself.
Based on the considerations outlined above, we performed an additional on-the-fly filtering on the gold standard datasets when they were used to benchmark a particular network. The procedure we used was as follows:
We have read the input network and collected the identifiers of those proteins that had at least one known interaction with other proteins.
We have considered each complex from the gold standard and calculated the intersection of the complex with the set of known proteins as determined in the previous step.
If the size of the intersection was less than half the size of the complex in the gold standard, we ignored the complex and removed it from the current benchmark run because we deemed that too many of its proteins are missing from the input dataset, and even a partial match to the rest of the complex would be more likely to be a result of pure chance than a correct inference made by a clustering algorithm.
If the size of the intersection was larger than or equal to half the size of the complex, we used the complex from the gold standard but removed those proteins from the complex that were not present in the input dataset. Since we were modifying the gold standard here and not the input network, this modification does not put any of the algorithms into advantage since all the algorithms are still assessed on the same gold standard (but without those proteins whose membership could not be inferred anyway).
Reproducing our results using the provided scripts
In this section, we provide instructions for downloading and running the quality score calculation scripts in order to obtain the same quality scores for ClusterONE as the ones we have reported in the manuscript. The instructions are meant for Linux or Mac OS X; if you are running Windows, you can still run our quality score calculation script from the command line but the master script that processes all the input files in a single batch will not work for you since it requires a shell typically found on Linux or Mac OS X only.
Software requirements
You will need to install the following software on your machine in order to run the scripts:
Linux or Mac OS X if you wish to use the master script that runs ClusterONE on all the input file and calculates the quality scores. Windows is also suitable but you will have to run the quality score calculation manually.
Java Version 5 or later. This can be obtained from http://www.java.com/getjava/. You will need the Java Runtime Environment, not only the browser plugin because ClusterONE runs outside a web browser.
Python 2.7 or later (but not Python 3.x). At the time of writing, the latest suitable version is Python 2.7.3.
Obtaining the scripts
We have archived the input files, the gold standard, and an implementation of ClusterONE (version 0.93, which was the version we have used for the manuscript) and a script for the calculation of quality scores in a single self-contained ZIP file that can be downloaded from here:
http://membrane.cs.rhul.ac.uk/static/cl1/cl1_reproducibility.zip
Extract the contents of the ZIP file into an arbitrary directory.
Running the scripts
The downloaded ZIP file contains a single master script called run_all.sh. Running run_all.sh from a POSIX-compatible shell such as bash runs ClusterONE on all the datasets in the datasets/ folder, comparing them to all the gold standards in the gold_standard/ folder. The quality scores are printed to the standard output using the following abbreviations:
frac represents the fraction of complexes in the gold standard that are matched by at least one detected complex with a match score larger than 0.25.
cws is the clustering-wise sensitivity
ppv is the positive predictive value
acc is the geometric accuracy
mmr is the maximum matching ratio that we have proposed
The master script cannot be run directly in Windows since Windows does not contain a POSIX-compatible shell. (It is possible to install one from Cygwin or MSYS, but this is outside the scope of the present document). However, the core of the benchmark procedure is the script that compares the set of predicted complexes with the gold standard, and this script can also be used from Windows.
The quality score calculation script resides in scripts/match_standalone.py and it is written in the Python language. It can be executed from the command line as follows:
python scripts/match_standalone.py
The above command assumes that the Python interpreter (python or python.exe on Windows) is in the system path; otherwise the full path must be provided. Running the command prints a short usage message. The script itself requires two mandatory arguments: the file containing the reference complexes (i.e. the gold standard) and the file containing the predicted complexes. For instance, the results of ClusterONE on the Collins dataset can be compared with the MIPS gold standard as follows:
java -jar impl/cluster_one-0.93.jar datasets/collins2007.txt >result.txt
python scripts/match_standalone.py gold_standard/mips_3_100.txt result.txt
However, note that the script does not "know" the input dataset by default, hence it cannot filter the gold standard according to the procedure we have outlined above. Therefore, in order to obtain the exact same results that we have published, one must also pass the input network to the quality score calculation script using the optional -n switch:
python scripts/match_standalone.py -n datasets/collins2007.txt gold_standard/mips_3_100.txt result.txt
This should produce the quality scores from Supplementary Table 7 of our manuscript.
Frequently asked questions
Is ClusterONE deterministic?
It would be quite hard to reproduce our results exactly if ClusterONE were a stochastic algorithm. We have tried to provide an implementation of ClusterONE that is as deterministic as possible, and our experience is that it can generally be considered as deterministic on weighted networks, because there is a standard set of rules that the algorithm will follow in order to break ties during the course of the computation. The only exception is for unweighted networks.
In unweighted networks, ties occur very frequently in the seed selection phase, i.e. when ClusterONE must decide which protein to grow a complex from. ClusterONE selects the protein with the largest (weighted) degree that has not been included in any of the previously found complexes yet. In the absence of weights, it can happen that there are multiple proteins with the same degree that are not included in complexes. Due to internal programming decisions we have made, this choice was random in ClusterONE 0.93 and it still is (although this will probably be fixed in a future release). The result is a slight variation in the final complex set; the variation typically occurs only between results obtained on different machines. Since such ties do not occur in weighted networks, the results for the weighted datasets are practically deterministic.
References
[1] (1, 2, 3, 4) Nepusz T, Yu H, Paccanaro A: Detecting overlapping protein complexes in protein-protein interaction networks. Nat Methods 9:471-472, 2012.
[2] (1, 2, 3, 4) Gavin A et al: Proteome survey reveals modularity of the yeast cell machinery. Nature 440:631-636, 2006.
[3] (1, 2, 3, 4) Krogan N et al: Global landscape of protein complexes in the yeast Saccharomyces cerevisiae. Nature 440:637-643, 2006.
[4] (1, 2, 3, 4) Collins SR et al: Toward a comprehensive atlas of the physical interactome of Saccharomyces cerevisiae. Mol Cell Proteomics 6:439-450, 2007.
G0S0D7 G0S8G5 G0SD68 G0S256 G0SCF9 G0S1Q9 G0SBR7 G0S0Z4 G0S6J7 G0S1S4 G0SGY1 G0SGT6 G0SH61 G0SGP3 G0SGH8 G0SI44 G0SHQ2 G0SBZ6 G0SFL0 G0SEG2 G0SEI1 G0S507 G0S992 G0RXW1 G0S0E5 G0RZD0 G0RYN9 G0S0D6 G0SFN0 G0SFK8 G0SCL3 G0SHI0 G0S084 G0S9B5 G0SAJ9 G0S8C4 G0RZE9 G0SEI0 G0S9T3 G0SAI3 G0S1Z0 G0RZ86 G0SHE7 G0SFC3 G0SAV4 G0S6I7 G0S7V1 G0S4P8 G0S379 G0S4L3 G0RZ98 G0SHG0 G0SE17 G0S9T7 G0S8U5 G0S8F3 G0SG89 G0S6V4 G0SCE2 G0S6B0 G0RZ88 G0SFL1 G0S245 G0S7V2 G0S2Y0 G0SD22 G0SBQ6 G0S8Y3 G0S4F5 G0S0Z3 G0S6B2 G0S570 G0RYU6 G0S614 G0S5K1 G0SDS8 G0RY75 G0S078 G0S1A6 G0SDC3 G0SI21 G0SAE3 G0S871 G0SHH9 G0RZM9 G0RY45 G0RY43 G0S2X5 G0SBQ1 G0S9U0 G0S7T8 G0S597 G0SB30 G0S811 G0RYM0 G0SFL2 G0SGX1 G0SBX8 G0RYF8 G0S101 G0S573 G0SDL5 G0SGM5 G0SCH5 G0S1T8 G0RZ20 G0RYY7 G0S2X4 G0S8H1 G0SF00 G0S174 G0SEG9 G0S4Z9 G0S428 G0S1R0 G0S1P9 G0S5V8 G0S683 G0S920 G0SEZ2 G0S998
G0S5P2 G0SBR6 G0S6M0 G0S6U9 G0RZH3 G0S3F1 G0SHG6 G0SAP2 G0SEP6 G0SG44 G0S7H5 G0S9H4 G0S7Q7 G0SF13 G0RXS6 G0S6Y9 G0SDS0 G0SFG3 G0S8I8 G0SGX0 G0S7F9 G0S934 G0SFP0 G0S8M7 G0S7G2 G0S468 G0S8J4 G0S574 G0S6J0 G0SDW5 G0SA41 G0SBZ7 G0SD63 G0SFE5 G0S6W7 G0S9B8 G0S0V1 G0SCU5 G0S5P0 G0SB41 G0RZX9 G0RZI8 G0RYD6
G0SCU7 G0S2P9 G0S767 G0SG70 G0SE05 G0SDA3 G0SBQ7 G0S5A2 G0S9E0 G0S3M1 G0S3P6 G0SCS7 G0SBV2 G0S256 G0RY82 G0RZM7 G0S625 G0S4F4 G0S1W3 G0SBL9 G0S0X2 G0S0B9 G0S846 G0S0I8 G0SBW3 G0SFB3 G0SG97 G0SFL3 G0S2D8 G0SCJ6 G0SB84 G0SF55 G0S9T4 G0SHQ3
G0RY95 G0SBR1 G0SB34 G0RY12 G0SB60 G0S6F9 G0RYS1 G0S8Z7 G0SH60 G0SC18 G0S283 G0S1L4 G0S0X7 G0S5K9 G0RZQ0 G0S065 G0S2R3 G0RZK0 G0S2A0
G0SEK9 G0SEJ0 G0SBS7 G0SD84 G0SHF6 G0S7I0 G0S0J7 G0SG52 G0SEU9 G0RZP8 G0RXR3 G0SAC4 G0S8E5
G0S1Y8 G0SE88 G0SG38 G0SCF7 G0SBU0 G0SBU7 G0RZL3 G0S1Q8 G0RZ05 G0SAX9 G0S1N8 G0SCP6 G0S0D3 G0SC98 G0SBM7 G0SEB1
G0S6M9 G0S561 G0S257 G0RYC9 G0S029 G0SCM3 G0SHR7 G0S5B0 G0S198 G0RY46 G0S7F6 G0SBG9 G0SBV6 G0S543 G0SC38 G0S5U4 G0SEQ7 G0S792 G0RY39 G0SHQ5 G0S9W5 G0S935 G0RYM7 G0S0Q0
G0SHQ1 G0SA60 G0SB59 G0RZE3 G0SCG5 G0S7Y9 G0S6G7 G0SGW5 G0S3T9 G0S6I4 G0S125 G0S057 G0SGV0
G0S6B5 G0S7A2 G0SBR0 G0S2Z9 G0S2X8 G0RZC0 G0S1S3 G0S918 G0RXS5 G0S300
G0SHQ1 G0SA60 G0SB59 G0RZE3 G0SCG5 G0S7Y9 G0S6G7 G0S6I4 G0S125 G0S057 G0SGT0 G0SGV0
G0S1Y8 G0SE88 G0SG38 G0SBU0 G0SBU7 G0RZL3 G0SFF0 G0S1Q8 G0RZ05 G0S3W3 G0SCP6 G0SC98 G0SBM7 G0SER5 G0SEB1
G0SER2 G0SCX1 G0SAD3 G0SBL8 G0RXX3 G0RZM0 G0S7E8 G0S0X6 G0RY60
G0S620 G0S066 G0S5N3 G0S8A6 G0RZZ0 G0SFY0 G0SF87
G0S561 G0S029 G0S2N6 G0RZQ2 G0RY46 G0S7F6 G0SBV6 G0S543 G0SC38 G0S969 G0S5U4 G0RZW2 G0S4K5 G0SHQ5 G0S1R4 G0RXZ8 G0RY15 G0S935 G0S665 G0S6V6 G0SGR6 G0S046
G0S867 G0SB20 G0SHF3 G0SAX9 G0RZ09 G0S4X6 G0RYE0 G0S5Q0 G0S0D3
G0S5P2 G0S6M0 G0SHG6 G0S6Y9 G0S934 G0SF38 G0RYU7 G0SET9 G0S7G2 G0S9D5 G0S574 G0S6K6 G0S1Q0 G0S061 G0SD63 G0SFE5 G0S6W7 G0S9B8 G0SFH6 G0S5P0 G0S2H9 G0S1U1 G0SB41 G0RZX9 G0RZI8 G0RYD6 G0S5H4 G0S1S7
G0RYC9 G0SCM3 G0SHR7 G0S5B0 G0S9E2 G0S198 G0SBG9 G0SEQ7 G0S792 G0RY39 G0RYM7
G0RZG4 G0SEX3 G0SCD1 G0S9A0 G0RZX8 G0S1P1 G0S7F4 G0SC21
G0S3L5 G0RY44 G0SFJ5 G0RYL1 G0S1X1 G0S0B3
G0RYD9 G0S862 G0S032 G0S0C5 G0S783 G0S5R5
G0RYP6 G0S257 G0SBY8 G0SH15 G0RYB3 G0S4L1 G0S6W5 G0S6B8 G0S1X9 G0S916 G0S8H3 G0S8N2 G0S9J9 G0RY65 G0S378 G0S308 G0RY37 G0SD91 G0S5V3 G0S3Q7
G0RYD9 G0SCY1 G0S4G1 G0S0C5 G0S783 G0S5R5
G0S1N1 G0RYL5 G0S938 G0S0G3 G0S899 G0S6L3
G0SEX2 G0S561 G0S029 G0S2N6 G0SHG6 G0RZQ2 G0RY46 G0SDA8 G0S7F6 G0SBV6 G0S543 G0SC38 G0S969 G0S5U4 G0RZW2 G0S4K5 G0SHQ5 G0S935 G0S665 G0S1S7 G0S046
G0S171 G0SDH1 G0S5S4 G0S0U6 G0S3X5 G0S643 G0S7R5 G0RY48
G0SH10 G0S7Q9 G0RYI5 G0RYC2 G0S6K5 G0SGN9 G0S909 G0RYN3 G0S385
G0RYI5 G0RYC2 G0S6K5 G0SGN9 G0S909 G0S647 G0RYN3 G0S385
G0SE15 G0S7L0 G0SE70 G0S7G6 G0RZJ6 G0S8K3 G0SFI7 G0S4R3 G0S589 G0SA92
G0S027 G0S1Y8 G0SBU0 G0SBU7 G0RZL3 G0SFF0 G0S1Q8 G0RZ05 G0SAX9 G0S3W3 G0SCP6 G0SER5 G0SEB1 G0S1G8
G0S7J6 G0RXZ5 G0RXW2 G0SHJ3
G0RZD0 G0SAI3 G0S1Z0 G0SHE7 G0S7V1 G0S4L3 G0SHG0 G0SE17 G0S9T7 G0S8U5 G0S8F3 G0S245 G0S7V2 G0S2Y0 G0SD22 G0SBQ6 G0S8Y3 G0S4F5 G0S6B2 G0S570 G0RYU6 G0S614 G0S5K1 G0RY75 G0S078 G0SGX1 G0SBX8 G0RYF8 G0S573 G0SDL5 G0SGM5 G0SCH5 G0S1T8 G0RZ20 G0RYY7 G0SEZ2 G0S1Y9 G0S998
G0RYD9 G0S0C5 G0S783 G0S5R5
G0SF38 G0RYU7 G0SET9 G0S9D5 G0SFH6 G0S1U1 G0S5H4
G0S954 G0SBL1 G0SA56 G0SDN5 G0S189 G0S8J1 G0SEA3
G0SBU5 G0SH15 G0SAH4 G0S926 G0S493 G0SEX8 G0S639
G0S9K1 G0SFH5 G0SBQ3 G0SDP9 G0S143 G0SBS8 G0S0R2
G0S6I9 G0SGT5 G0S0I9 G0RY89 G0S6E6 G0SHS3 G0S8A1 G0SGV6
G0S4E4 G0SBV5 G0RZN2 G0S6Y3 G0S060 G0SBZ8
G0SFF4 G0S9I0 G0SDP4 G0SDP0 G0SEG6
G0SDF0 G0SFF1 G0SHW4
G0SH90 G0SBY8 G0RYB3 G0S6Y2 G0SBD8 G0SBC0 G0SC30 G0S378 G0S308 G0RZ07 G0S0B4
G0S543 G0SE51 G0SF38 G0RYU7 G0SET9 G0S9D5 G0RZP9 G0S0R1 G0S061 G0SFH6 G0S1U1 G0S5H4
G0SBY8 G0SBU5 G0SH15 G0RYB3 G0S4L1 G0S6B8 G0S1X9 G0S8N2 G0S9J9 G0RY65 G0S308 G0S493 G0SEX8 G0S639
G0S3L5 G0RY44 G0S1X1 G0S0B3 G0S1E6
G0S4A2 G0S7G7 G0S8T8 G0S2I4 G0SGW8 G0S4L6
G0SCV7 G0SG42 G0SBH4 G0S4Z4 G0S9M2
G0RZN7 G0SDM9 G0SE04
G0SDP9 G0S143 G0SBS8
G0SHT9 G0S601 G0SBD8 G0SBC0 G0SC30 G0S378 G0S308
G0SHU6 G0RZB5 G0S496
G0RYP6 G0S8H3 G0SBJ0 G0SCB0 G0SE50 G0RY37 G0SGP6 G0SEZ8 G0SG74 G0SC40 G0S2J7 G0SHL4 G0S4I9
G0RZD0 G0SHE7 G0S7V1 G0S4L3 G0SHG0 G0SE17 G0S9T7 G0S8U5 G0S8F3 G0SGW4 G0SB16 G0S245 G0S7V2 G0SD22 G0SBQ6 G0S8Y3 G0S4F5 G0S6B2 G0S570 G0RYU6 G0S614 G0S5K1 G0S078 G0SEZ2
G0S6I9 G0SGT5 G0S0I9 G0RY89 G0S6E6 G0SGV6
G0S916 G0S5B2 G0SGH7 G0S3T9 G0SD91 G0S6G2 G0S2F3 G0SB06
G0SAY2 G0S0U6 G0RZH5 G0SAY1 G0S1E1 G0SHW7 G0S2F9 G0SDN5 G0SBX6 G0S8J1
G0S9H4 G0S543 G0S8M7 G0SE51 G0SF38 G0RYU7 G0SET9 G0S9D5 G0S0R1 G0S061 G0SFH6 G0S1U1 G0S5H4
G0S4K2 G0SGQ5 G0S8W2 G0SBZ8
G0SCG2 G0SGV4 G0S8Y6
G0S6K5 G0SGN9 G0S909 G0S647 G0RYN3 G0S385
G0SDT2 G0S7M4 G0S120 G0SGZ5 G0SEP6 G0RZB7 G0SBQ3 G0S6K6 G0SB52 G0SAK3 G0S8I1 G0S038
G0S029 G0S2N6 G0SH58 G0RY46 G0S7F6 G0SBV6 G0S543 G0SC38 G0S969 G0S5U4 G0RZW2 G0S4K5 G0SHQ5 G0S9W5 G0S935 G0S665 G0S246 G0S0Q0
G0S6Y3 G0S060 G0SF24
G0S1Y8 G0SFF4 G0S9I0 G0SBM7 G0SDP0 G0SEG6
G0S1U0 G0RYC2 G0SHU6 G0RZB5 G0S496 G0S6J5
G0S4A2 G0S7G7 G0S8T8
G0S678 G0SA66 G0SA14
G0SH90 G0S6Y2 G0SAH4 G0S926 G0RZ07 G0S639 G0S0B4
G0S7G6 G0SF92 G0S572 G0RZ49 G0S0R8 G0S1Y1 G0RYI7
G0S171 G0SDH1 G0S5S4 G0S3X5 G0S643 G0SGP3 G0S7R5 G0S5V2
G0S171 G0SDH1 G0S5S4 G0S3X5 G0S643 G0S7R5
G0S399 G0RZ82 G0S619 G0SE12 G0SH57 G0S1I1
G0S399 G0S619 G0SEK9 G0SA53 G0SE12 G0SH57 G0S1I1
G0SCU7 G0SDY5 G0S869 G0S1Y0 G0SHB3 G0S9C1
G0S5B2 G0SGH7 G0S3T9 G0S2F3 G0SB06
G0S3M6 G0S6W5 G0SH65 G0SA81
G0SHG0 G0S8F3 G0SGW4 G0SB16 G0S7V2 G0SD22 G0SBQ6 G0S8Y3 G0S4F5 G0S6B2 G0S570 G0RYU6 G0S614 G0S5K1 G0S078 G0SEZ2
G0S6J5 G0S288 G0RZZ4
G0SCE0 G0SGS2 G0S5Z1 G0SDS4 G0S3A2
G0SA54 G0SHU6 G0RZB5 G0S496 G0SH24
G0S0I9 G0SER2 G0SDY5 G0SCS3 G0S869 G0S1Y0
G0S619 G0S6B8 G0SDV8 G0SE12 G0SH57 G0S1I1 G0S938
G0RZ98 G0SBQ1 G0SB30 G0S811 G0RYM0 G0S005 G0S583 G0SGW2 G0SAX5 G0S336
G0S6M9 G0S561 G0S257 G0RYC9 G0S029 G0S4L1 G0SCM3 G0S1X9 G0S916 G0SHR7 G0RY46 G0SBV6 G0SC38 G0S5U4 G0S5V3 G0S9W5 G0RYM7 G0S3Q7
G0S619 G0SE12 G0SH57 G0S1I1
G0S7D9 G0S3W8 G0S9J5 G0S1E1 G0RZD3 G0RZB5
G0SHE9 G0SC93 G0S171 G0SDH1 G0S5S4 G0S0U6 G0S7R5 G0RY48
G0S005 G0S583 G0SGW2 G0SAX5 G0S336
G0SDY5 G0SCS3 G0S869 G0S1Y0
G0SBR6 G0RZH3 G0SG34 G0S3P7 G0S136 G0SC42 G0SDS0 G0S906 G0SGX0 G0S7F9 G0SC54 G0SAU1
G0SHE9 G0SEX2 G0S9I0 G0SDP4 G0SDA8 G0SDP0
G0S120 G0S2N6 G0SFJ5 G0RYL1 G0SCE0 G0SGS2
G0SGQ7 G0RY84 G0SFL2 G0RXS6 G0S554 G0S9H3 G0S6S9 G0RXY6 G0SHB1 G0SFP0 G0S5V8 G0SCR9 G0S6Y4 G0S142 G0SGH0
G0SG34 G0S3P7 G0S136 G0SC42 G0S906 G0SC54 G0SBM8 G0S9S9
G0SHE9 G0SEX2 G0S436 G0SDP4 G0RZQ2 G0SDA8 G0S7F6 G0SBV6 G0SE51 G0RZP9 G0S5P0 G0S6V6
G0S1Y8 G0SD68 G0SFF4 G0SCD9 G0SBM7 G0SEG6
G0RZJ6 G0S8K3 G0SFI7
G0S7V9 G0SHY8 G0S7W0
G0RZT5 G0SDA7 G0S2P9 G0S891 G0S4P3 G0S224 G0SF74
G0S7B5 G0S3V4 G0S072
G0S005 G0S583 G0S336
G0SHT9 G0S601 G0SBD8
G0S8N9 G0RYX1 G0S589 G0SBW4
G0SH90 G0S6Y2 G0RZ07 G0S0B4
G0SFF0 G0SHQ1 G0S1U0 G0RYC2 G0S3W3 G0SHU6 G0RZB5 G0S6J5
G0SGM5 G0SCH5 G0RZ20 G0RYY7 G0S998
G0S399 G0RZ98 G0RZ82 G0SBQ1 G0SB30 G0S811 G0RYM0 G0S583 G0SGW2 G0SAX5
G0SHE9 G0SEX2 G0SC93 G0SDP4 G0RZQ2 G0RY48 G0SDA8 G0S7F6 G0SE51 G0RZP9 G0S5P0
G0SH76 G0SGW5 G0SCV7 G0SG42 G0SBH4 G0S4Z4 G0SA92 G0SDC0
G0SG34 G0S3P7 G0S136 G0SC42 G0S906 G0SGX0 G0SC54 G0SBM8 G0SAU1
G0S6I7 G0RZ98 G0SDC3 G0RZM9 G0SBQ1 G0S597 G0SB30 G0S811 G0RYM0 G0S005 G0S583 G0S8H1 G0RZD8 G0S174 G0SAX5 G0S336
G0S5T7 G0S7G7 G0S2I4 G0SGW8 G0S2J5 G0S4L6
G0S8N9 G0RYX1 G0SBK7 G0SHS3 G0S8A1 G0SCS3
G0RZ86 G0S1W3 G0RZJ6 G0S8K3 G0SFI7
G0S7L0 G0SE70 G0S7G6 G0RYX1 G0S589 G0SBW4 G0SA92
G0S867 G0S7L0 G0SE70 G0S7G6 G0S9T3 G0S866 G0SGI4 G0S4M4
G0RZT5 G0SDA7 G0S2P9 G0S891 G0S4P3
G0S0X2 G0SC42 G0SBM8 G0S9S9
G0S554 G0S6S9 G0RXY6 G0SGH0
G0SFK3 G0SC42 G0SBM8 G0S9S9 G0S224 G0SF74
G0SGX1 G0SBX8 G0RYF8 G0S573 G0SDL5 G0SGM5 G0SCH5 G0S1T8 G0RZ20 G0RYY7 G0S998
G0SHE9 G0SC93 G0S7R5 G0RY48 G0SC17 G0SGD2
G0SDT2 G0S9K1 G0SFH5 G0S120 G0S0R2 G0S8I1
G0S867 G0S7L0 G0SE70 G0S7G6 G0S866 G0S4M4 G0SA92
G0S9K1 G0SFH5 G0SBQ3 G0S143 G0S079 G0S1Q0 G0S0R2 G0SCU5
G0S6U9 G0SFK3 G0SAK6 G0SAP2 G0S4F4 G0SFP0 G0SDQ3 G0S5Z9 G0S6Y4 G0S224 G0SF74
G0SHE9 G0S436 G0SCF9 G0S643 G0S727 G0S6V6
G0SE05 G0S7F4 G0SFK3 G0SAK6 G0SAP2 G0S4F4 G0S6F0 G0S079 G0S224 G0SF74 G0SHQ3
G0SG34 G0S3P7 G0S6Y9 G0S136 G0SC42 G0S6K6 G0S1Q0 G0SBM8 G0RZX9 G0RYD6
G0RZT5 G0SDA7 G0S0R1 G0S061 G0S224 G0SF74
G0SGQ7 G0SHB1 G0SFP0 G0SDQ3 G0SDN5 G0S8J1
G0RY84 G0SHW7 G0S697 G0SCR9 G0S0S6 G0S2E1
G0SHE9 G0S436 G0S643 G0SAK6 G0SAU1 G0S6V6
G0SGP6 G0SEZ8 G0S1R4 G0RY15
G0SB30 G0S811 G0RYM0
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleName</key>
<string>CFinder</string>
<key>CFBundleShortVersionString</key>
<string>2.0.6</string>
<key>CFBundleGetInfoString</key>
<string>CFinder -- cfinder.org</string>
<key>CFBundleAllowMixedLocalizations</key>
<string>false</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleExecutable</key>
<string>JavaApplicationStub</string>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1448M</string>
<key>CFBundleIconFile</key>
<string>cfinder.icns</string>
<key>Java</key>