@@ -16,6 +16,7 @@ rule all:
1616
1717produce_fetch_rules ({
1818 "raw/9606.protein.links.full.v12.0.txt" : FetchConfig (["STRING" , "9606" , "9606.protein.links.full.txt.gz" ], uncompress = True ),
19+ "raw/9606.protein.aliases.txt" : FetchConfig (["STRING" , "9606" , "9606.protein.aliases.txt.gz" ], uncompress = True ),
1920 "raw/human-interactome/table_S3_surfaceome.xlsx" : ["Surfaceome" , "table_S3_surfaceome.xlsx" ],
2021 "raw/human-interactome/Homo_sapiens_TF.tsv" : ["TranscriptionFactors" , "Homo_sapiens_TF.tsv" ],
2122 "raw/human-interactome/HUMAN_9606_idmapping_selected.tsv" : FetchConfig (["UniProt" , "9606" , "HUMAN_9606_idmapping_selected.tab.gz" ], uncompress = True ),
@@ -26,12 +27,10 @@ produce_fetch_rules({
2627
2728rule interactome :
2829 input :
30+ "raw/human-interactome/HUMAN_9606_idmapping_selected.tsv" ,
2931 "raw/9606.protein.links.full.v12.0.txt" ,
3032 "raw/9606.protein.aliases.txt"
31- output :
32- "processed/proteins_missing_aliases.csv" ,
33- "processed/removed_edges.txt" ,
34- "processed/interactome.tsv"
33+ output : "processed/interactome.tsv"
3534 shell :
3635 "uv run scripts/interactome.py"
3736
@@ -46,7 +45,7 @@ rule process_tfs:
4645
4746rule process_panther_pathway :
4847 input :
49- "intermediate/pathway-data/{pathway}.txt " ,
48+ "intermediate/pathway-pc- data/{pathway}.sif " ,
5049 "raw/human-interactome/table_S3_surfaceome.xlsx" ,
5150 "raw/human-interactome/Homo_sapiens_TF_Uniprot.tsv"
5251 output :
@@ -56,7 +55,7 @@ rule process_panther_pathway:
5655 "intermediate/{pathway}/targets.txt" ,
5756 "intermediate/{pathway}/prizes.txt"
5857 shell :
59- " uv run scripts/process_panther_pathway.py {wildcards.pathway}"
58+ ' uv run scripts/process_panther_pathway.py " {wildcards.pathway}"'
6059
6160rule make_spras_compatible :
6261 input :
@@ -70,7 +69,7 @@ rule make_spras_compatible:
7069 "processed/{pathway}/{pathway}_gs_edges.txt" ,
7170 "processed/{pathway}/{pathway}_gs_nodes.txt"
7271 shell :
73- " uv run scripts/panther_spras_formatting.py {wildcards.pathway}"
72+ ' uv run scripts/panther_spras_formatting.py " {wildcards.pathway}"'
7473
7574rule threshold :
7675 input :
@@ -80,23 +79,25 @@ rule threshold:
8079 expand ("thresholded/{threshold}/{{pathway}}/interactome.txt" , threshold = thresholds ),
8180 expand ("thresholded/{threshold}/{{pathway}}/gold_standard_edges.txt" , threshold = thresholds )
8281 shell :
83- " uv run scripts/sampling.py {wildcards.pathway}"
82+ ' uv run scripts/sampling.py " {wildcards.pathway}"'
8483
8584rule make_pathway_map :
8685 input :
8786 "raw/pathways.txt"
8887 output :
89- "processed/pathway_id_mapping.tsv "
88+ "intermediate/curated_pathways_id_mapping.json "
9089 shell :
9190 "uv run scripts/list_curated_pathways.py"
9291
93- for pathway in pathways :
94- rule :
95- input :
96- "processed/pathway_id_mapping.tsv" ,
97- "raw/pc-panther-biopax.owl"
98- output :
99- "intermediate/pathway-data/{pathway}.owl" ,
100- "intermediate/pathway-data/{pathway}.sif"
101- shell :
102- f"uv run scripts/fetch_pathway.py { pathway } "
92+ rule process_pathways :
93+ input :
94+ "intermediate/curated_pathways_id_mapping.json" ,
95+ "raw/pc-panther-biopax.owl"
96+ params :
97+ # A little trick from https://stackoverflow.com/a/71327709/7589775
98+ pathway = lambda wildcards : wildcards .get ("pathway" )
99+ output :
100+ "intermediate/pathway-pc-data/{pathway}.owl" ,
101+ "intermediate/pathway-pc-data/{pathway}.sif"
102+ shell :
103+ 'uv run scripts/fetch_pathway.py "{params.pathway}"'
0 commit comments