File size: 1,695 Bytes
71276a4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
from pathlib import Path
from paper2lab.inference.pipeline import PaperPipeline

p = PaperPipeline(refinement_mode="nemotron")

total = 0
errors = 0
weak = 0

for pdf in Path("Data/papers").rglob("*.pdf"):
    total += 1

    try:
        r = p.run(str(pdf))
        c = r["paper_card_final"]

        roadmap = c.get("reproduction_roadmap") or {}
        if not isinstance(roadmap, dict):
            roadmap = {}

        kit = c.get("lab_starter_kit") or {}
        if not isinstance(kit, dict):
            kit = {}

        datasets = c.get("datasets_or_data_sources") or []
        findings = c.get("key_findings") or []
        roadmap_steps = roadmap.get("experimental_steps") or []
        kit_structure = kit.get("project_structure") or []
        kit_risks = kit.get("reproducibility_risks") or []

        is_weak = (
            not c.get("title")
            or not c.get("paper_type")
            or not roadmap
            or not kit
            or len(kit_structure) == 0
        )

        if is_weak:
            weak += 1

        print("\n---", pdf.name)
        print("type:", c.get("paper_type"))
        print("datasets:", len(datasets), datasets[:3])
        print("findings:", len(findings))
        print("roadmap steps:", len(roadmap_steps))
        print("lab kit structure:", len(kit_structure))
        print("lab risks:", len(kit_risks))
        print("refinement:", r["refinement"]["status"])
        print("weak:", is_weak)

    except Exception as e:
        errors += 1
        print("\nERROR:", pdf.name)
        print(str(e))

print("\n====================")
print("TOTAL:", total)
print("ERRORS:", errors)
print("WEAK:", weak)
print("====================")