mirror of
https://github.com/rdk/p2rank.git
synced 2026-06-04 12:44:24 +08:00
Extract writeCases() method, rename sites.csv to observed_sites.csv
Consolidate case CSV writing into Evaluation.writeCases(). Remove duplicate DSO_0.1 criterion and stale TODO comments.
This commit is contained in:
@@ -314,13 +314,9 @@ class EvalResults extends ResultsBase {
|
||||
origEval.sort()
|
||||
eval.sort()
|
||||
|
||||
String casedir = "$outdir/cases"
|
||||
mkdirs(casedir)
|
||||
writeFile "$casedir/proteins.csv", eval.toProteinsCSV()
|
||||
writeFile "$casedir/ligands.csv", eval.toLigandsCSV()
|
||||
writeFile "$casedir/sites.csv", eval.toSitesCSV()
|
||||
writeFile "$casedir/predicted_pockets.csv", eval.toPocketsCSV()
|
||||
writeFile "$casedir/ranks.csv", eval.toRanksCSV()
|
||||
String casedir = mkdirs("$outdir/cases")
|
||||
|
||||
eval.writeCases(casedir)
|
||||
if (rescoring) {
|
||||
writeFile "$casedir/ranks_original.csv", origEval.toRanksCSV()
|
||||
}
|
||||
|
||||
@@ -20,6 +20,12 @@ import static cz.siret.prank.geom.Atoms.union
|
||||
import static cz.siret.prank.utils.Cutils.head
|
||||
import static cz.siret.prank.utils.Cutils.newSynchronizedList
|
||||
import static cz.siret.prank.utils.Formatter.*
|
||||
import static cz.siret.prank.utils.Futils.mkdirs
|
||||
import static cz.siret.prank.utils.Futils.writeFile
|
||||
import static cz.siret.prank.utils.Futils.writeFile
|
||||
import static cz.siret.prank.utils.Futils.writeFile
|
||||
import static cz.siret.prank.utils.Futils.writeFile
|
||||
import static cz.siret.prank.utils.Futils.writeFile
|
||||
import static java.util.Collections.emptyList
|
||||
|
||||
/**
|
||||
@@ -856,7 +862,7 @@ class Evaluation implements Parametrized {
|
||||
m.OPT2 = 100*m.DCA_4_0_PC + 50*m.DCA_4_2_PC + 5*m.AVG_LIGCOV_SUCC + 3*m.AVG_DSO_SUCC
|
||||
|
||||
|
||||
|
||||
// write predicted scores to file if requested
|
||||
// TODO: move this somewhere else (getStats() shouldn't write to disk)
|
||||
if (StringUtils.isNotBlank(params.log_scores_to_file)) {
|
||||
PrintWriter w = new PrintWriter(new BufferedWriter(
|
||||
@@ -907,7 +913,6 @@ class Evaluation implements Parametrized {
|
||||
new DSO("DSO_0.3", 0.3),
|
||||
new DSO("DSO_0.2", 0.2),
|
||||
new DSO("DSO_0.1", 0.1),
|
||||
new DSO("DSO_0.1", 0.1),
|
||||
new DSO("DSO_0.05", 0.05),
|
||||
|
||||
new DPA("DPA_1", 1),
|
||||
@@ -1041,7 +1046,7 @@ class Evaluation implements Parametrized {
|
||||
*/
|
||||
String toRanksCSV() {
|
||||
StringBuilder csv = new StringBuilder()
|
||||
csv << "file,#ligands,ligand," + criteria.list.join(",") + "\n"
|
||||
csv << "file,#ligands,ligand," + criteria.list.join(",") + "\n"
|
||||
ligandRows.each { row ->
|
||||
csv << "$row.protName,$row.ligCount,$row.ligName," + row.ranks.join(",") + "\n"
|
||||
}
|
||||
@@ -1051,7 +1056,7 @@ class Evaluation implements Parametrized {
|
||||
String toProteinsCSV() {
|
||||
StringBuilder csv = new StringBuilder()
|
||||
|
||||
csv << "name,#atoms,#proteinAtoms,#chains,chainNames,#ligands,#pockets,ligandNames,#ignoredLigands,ignoredLigNames,#smallLigands,smallLigNames,#distantLigands,distantLigNames\n"
|
||||
csv << "name,#atoms,#proteinAtoms,#chains,chainNames,#ligands,#pockets,ligandNames,#ignoredLigands,ignoredLigNames,#smallLigands,smallLigNames,#distantLigands,distantLigNames\n"
|
||||
|
||||
for (ProteinRow p in proteinRows) {
|
||||
csv << "$p.name,$p.atoms,$p.protAtoms,$p.chains,$p.chainNames,$p.ligands,$p.pockets,$p.ligNames,$p.ignoredLigands,$p.ignoredLigNames,$p.smallLigands,$p.smallLigNames,$p.distantLigands,$p.distantLigNames\n"
|
||||
@@ -1067,7 +1072,6 @@ class Evaluation implements Parametrized {
|
||||
|
||||
for (PocketRow p in pocketRows) {
|
||||
csv << "$p.protName,$p.ligCount,$p.pocketCount,$p.pocketName,$p.ligName,"
|
||||
// TODO possibly problematic, occasional groovy error in sprintf
|
||||
csv << "$p.rank,$p.score,$p.newRank,${fmtCsv(p.oldScore)},${fmtCsv(p.auxInfo.zScoreTP)},${fmtCsv(p.auxInfo.probaTP)},$p.auxInfo.samplePoints,${fmtCsv(p.auxInfo.rawNewScore)},$p.pocketVolume,$p.surfaceAtomCount"
|
||||
csv << "\n"
|
||||
}
|
||||
@@ -1075,6 +1079,16 @@ class Evaluation implements Parametrized {
|
||||
return csv.toString()
|
||||
}
|
||||
|
||||
//===========================================================================================================//
|
||||
|
||||
void writeCases(String dir) {
|
||||
writeFile "$dir/proteins.csv", this.toProteinsCSV()
|
||||
writeFile "$dir/ligands.csv", this.toLigandsCSV()
|
||||
writeFile "$dir/observed_sites.csv", this.toSitesCSV()
|
||||
writeFile "$dir/predicted_pockets.csv", this.toPocketsCSV()
|
||||
writeFile "$dir/ranks.csv", this.toRanksCSV()
|
||||
}
|
||||
|
||||
//===========================================================================================================//
|
||||
|
||||
static class ProteinRow {
|
||||
@@ -1108,8 +1122,6 @@ class Evaluation implements Parametrized {
|
||||
double ligandCoverageSucc // coverage only considering those ligands that were successfully predicted according to DCA(4)
|
||||
double surfOverlapSucc // overlap only considering those ligands that were successfully predicted according to DCA(4)
|
||||
|
||||
// double protDCA_4_0
|
||||
|
||||
int sasPoints
|
||||
}
|
||||
|
||||
|
||||
@@ -66,14 +66,7 @@ class PredictResults extends ResultsBase {
|
||||
|
||||
if (logIndividualCases) {
|
||||
evaluation.sort()
|
||||
|
||||
String casedir = "$outdir/cases"
|
||||
mkdirs(casedir)
|
||||
|
||||
writeFile "$casedir/proteins.csv", evaluation.toProteinsCSV()
|
||||
writeFile "$casedir/ligands.csv", evaluation.toLigandsCSV()
|
||||
writeFile "$casedir/pockets.csv", evaluation.toPocketsCSV()
|
||||
writeFile "$casedir/ranks.csv", evaluation.toRanksCSV()
|
||||
evaluation.writeCases("$outdir/cases")
|
||||
}
|
||||
|
||||
log.info "\n" + CSV.tabulate(classifier_stats) + "\n\n"
|
||||
|
||||
Reference in New Issue
Block a user