-
Notifications
You must be signed in to change notification settings - Fork 25
feat: BTB #250
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
feat: BTB #250
Changes from all commits
Commits
Show all changes
73 commits
Select commit
Hold shift + click to select a range
d731ae2
added placeholder files
ctrlaltaf 99bf632
Draft: btb
ctrlaltaf 725eeb0
goes through snakemake process without any errors
ctrlaltaf 5534087
Added new test files
ctrlaltaf d289f2f
LN testing complete
gabeah 0fe3c2a
dockerfile is made!
gabeah fc3ba80
working on LN implementation
gabeah fe47da5
dealing with some errors
gabeah f887fca
Step 4 completed
gabeah 877707c
stuck on modifying generate inputs and parse outputs
gabeah 8dfa330
finished?
gabeah dbaacf1
finished changes as defined in code review
gabeah 1caca3a
added files for BTB PR
gabeah a59e281
working on btb pr
gabeah 7c46104
continual testing for btb
gabeah e182c89
continual testing for btb
gabeah 12369a4
prepping for PR
gabeah ddde72b
conflicts fixed?
gabeah 64b8783
Merge branch 'ctrlaltaf-btb' into btb
gabeah 01aa15f
passing two tests, need to pass two more
gabeah 740cfb7
losing me mind over pytest :)
gabeah f82b611
three tests passinggit add .
gabeah dbf81a0
continuing finishing test functions for PR
gabeah d0822bb
oops, forgot some extra files
gabeah 7d10dbb
wrapping finished?
gabeah c3310fe
wrapping finished
gabeah f3d4006
updated dockerfile/config to reflect new repo/dockerhub images
gabeah 40ad34f
beginning PR fixes
gabeah 3b9d70e
PR changes finished/comments have been made
gabeah 027ecbd
small fixes, preparing to merge main and resolve conflicts
gabeah e149f0e
Merge branch 'master' into btb
gabeah 6261724
Merge branch 'master' into pr/168
oliverfanderson 6399eb8
Got BTB integrated with SPRAS workflow
oliverfanderson f114b9b
Add further integration and test cases for BTB
oliverfanderson 9050eb6
fix one typo
oliverfanderson 272430b
Update test-spras.yml
oliverfanderson 2816d09
Update README.md
oliverfanderson 980d201
Merge branch 'master' into btb-merge
oliverfanderson b6e833f
Add test cases
oliverfanderson 204ce44
Update test_btb.py
oliverfanderson 156ec9b
Update btb.py
oliverfanderson 6746f03
BTB pytests and snakemake working
oliverfanderson 0b1f26a
Change expected outputs of generate_inputs and parse_outputs
oliverfanderson 8095f34
Update expected output
oliverfanderson c1d1f8e
Update expected outputs of parse_output
oliverfanderson a1882b5
Comment out failing format_error test
oliverfanderson 47840a3
Fix files with outdated cases
oliverfanderson 2468829
Delete test_btb.py
oliverfanderson 0e1eae3
Fix capital T issue
oliverfanderson 11417b3
Restored lost LocalNeighborhood files
oliverfanderson 69cdd38
Merge branch 'master' into btb-merge
oliverfanderson b165dfe
Create bowtiebuilder-raw-pathway.txt
oliverfanderson 4deebb9
Update btb.py
oliverfanderson 2eb8361
Update btb.py
oliverfanderson a42c793
fix: re-add ln, fix ci, style
tristan-f-r 2534838
fix: raise correct error
tristan-f-r 3433bc9
fix: convert undirected to directed graph
tristan-f-r 2a197e6
style: fmt
tristan-f-r 22fee13
fix: correct interactome import
tristan-f-r ad93d63
style: fmt
tristan-f-r e117a93
test(btb): re-add directed graph to btb
tristan-f-r ef19cc9
ci: drop odd ci hack
tristan-f-r 7bae862
Merge branch 'Reed-CompBio:master' into tr-btb
tristan-f-r 2e29202
fix: use directed instead of undirected
tristan-f-r 15361bb
Merge branch 'tr-btb' of https://github.com/tristan-f-r/spras into tr…
tristan-f-r 0799bcd
test(btb): direct expecfed
tristan-f-r a0a446c
Merge remote-tracking branch 'upstream/main' into tr-btb
tristan-f-r 3820968
fix: use run_container_and_log
tristan-f-r 6f6fa1b
Merge branch 'umain' into tr-btb
tristan-f-r 5d8ae5b
docs: on btb err
tristan-f-r e82d14f
fix: config
tristan-f-r 34ca1f2
docs: mention open btb issue
tristan-f-r f0038d2
fix(btb): add params to parse_output
tristan-f-r File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| FROM python:3.8-bullseye | ||
|
|
||
| WORKDIR /btb | ||
| RUN wget https://raw.githubusercontent.com/Reed-CompBio/BowTieBuilder-Algorithm/dd8519cd8a8397c0e0724106f498b6002d3f7be2/btb.py | ||
| RUN pip install networkx==2.8 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,15 @@ | ||
| # BowTieBuilder Docker image | ||
|
|
||
| A Docker image for [BowTieBuilder](https://github.com/Reed-CompBio/BowTieBuilder-Algorithm) that is available on [DockerHub](https://hub.docker.com/repository/docker/reedcompbio/bowtiebuilder). | ||
|
|
||
| To create the Docker image run: | ||
| ``` | ||
| docker build -t reedcompbio/bowtiebuilder:v2 -f Dockerfile . | ||
| ``` | ||
| from this directory. | ||
|
|
||
| ## Original Paper | ||
|
|
||
| The original paper for [BowTieBuilder] can be accessed here: | ||
|
|
||
| Supper, J., Spangenberg, L., Planatscher, H. et al. BowTieBuilder: modeling signal transduction pathways. BMC Syst Biol 3, 67 (2009). https://doi.org/10.1186/1752-0509-3-67 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,162 @@ | ||
| from pathlib import Path | ||
|
|
||
| from spras.containers import prepare_volume, run_container_and_log | ||
| from spras.interactome import ( | ||
| convert_undirected_to_directed, | ||
| reinsert_direction_col_directed, | ||
| ) | ||
| from spras.prm import PRM | ||
| from spras.util import ( | ||
| add_rank_column, | ||
| duplicate_edges, | ||
| raw_pathway_df, | ||
| ) | ||
|
|
||
| __all__ = ['BowTieBuilder'] | ||
|
|
||
| """ | ||
| BTB will construct a BowTie-shaped graph from the provided input file. | ||
| BTB works with directed and undirected graphs. | ||
| It generates a graph connecting multiple source nodes to multiple target nodes with the minimal number of intermediate nodes as possible. | ||
|
|
||
| Expected raw edge file format: | ||
| Interactor1 Interactor2 Weight | ||
| """ | ||
|
|
||
| class BowTieBuilder(PRM): | ||
| required_inputs = ['sources', 'targets', 'edges'] | ||
|
|
||
| #generate input taken from meo.py beacuse they have same input requirements | ||
| @staticmethod | ||
| def generate_inputs(data, filename_map): | ||
| """ | ||
| Access fields from the dataset and write the required input files | ||
| @param data: dataset | ||
| @param filename_map: a dict mapping file types in the required_inputs to the filename for that type | ||
| @return: | ||
| """ | ||
| for input_type in BowTieBuilder.required_inputs: | ||
| if input_type not in filename_map: | ||
| raise ValueError(f"{input_type} filename is missing") | ||
|
|
||
| # Get sources and write to file, repeat for targets | ||
| # Does not check whether a node is a source and a target | ||
| for node_type in ['sources', 'targets']: | ||
| nodes = data.request_node_columns([node_type]) | ||
| if nodes is None: | ||
| raise ValueError(f'No {node_type} found in the node files') | ||
|
|
||
| # TODO test whether this selection is needed, what values could the column contain that we would want to | ||
| # include or exclude? | ||
| nodes = nodes.loc[nodes[node_type]] | ||
| if node_type == "sources": | ||
| nodes.to_csv(filename_map["sources"], sep= '\t', index=False, columns=['NODEID'], header=False) | ||
| elif node_type == "targets": | ||
| nodes.to_csv(filename_map["targets"], sep= '\t', index=False, columns=['NODEID'], header=False) | ||
|
|
||
|
|
||
| # Create network file | ||
| edges = data.get_interactome() | ||
|
|
||
| # Format into directed graph (BTB uses the nx.DiGraph constructor internally) | ||
| edges = convert_undirected_to_directed(edges) | ||
|
|
||
| edges.to_csv(filename_map["edges"], sep="\t", index=False, | ||
| columns=["Interactor1", "Interactor2", "Weight"], | ||
| header=False) | ||
|
|
||
|
|
||
|
|
||
| # Skips parameter validation step | ||
| @staticmethod | ||
| def run(sources=None, targets=None, edges=None, output_file=None, container_framework="docker"): | ||
| """ | ||
| Run BTB with Docker | ||
| @param sources: input source file (required) | ||
| @param targets: input target file (required) | ||
| @param edges: input edge file (required) | ||
| @param output_file: path to the output pathway file (required) | ||
| @param container_framework: choose the container runtime framework, currently supports "docker" or "singularity" (optional) | ||
| """ | ||
|
|
||
| # Tests for pytest (docker container also runs this) | ||
| # Testing out here avoids the trouble that container errors provide | ||
|
|
||
| if not sources or not targets or not edges or not output_file: | ||
| raise ValueError('Required BowTieBuilder arguments are missing') | ||
|
|
||
| if not Path(sources).exists() or not Path(targets).exists() or not Path(edges).exists(): | ||
| raise ValueError('Missing input file') | ||
|
|
||
| # Testing for btb index errors | ||
tristan-f-r marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| # TODO: This error will never actually occur if the inputs are passed through | ||
| # `generate_inputs`. See the discussion about removing this or making this a habit at | ||
| # https://github.com/Reed-CompBio/spras/issues/306. | ||
| with open(edges, 'r') as edge_file: | ||
| try: | ||
| for line in edge_file: | ||
| line = line.strip().split('\t')[2] | ||
|
|
||
| except Exception as err: | ||
| # catches a much harder to debug error in BTB. | ||
| raise IndexError("BTB edges are not formatted correctly") from err | ||
|
|
||
| work_dir = '/btb' | ||
|
|
||
| # Each volume is a tuple (src, dest) | ||
| volumes = list() | ||
|
|
||
| bind_path, source_file = prepare_volume(sources, work_dir) | ||
| volumes.append(bind_path) | ||
|
|
||
| bind_path, target_file = prepare_volume(targets, work_dir) | ||
| volumes.append(bind_path) | ||
|
|
||
| bind_path, edges_file = prepare_volume(edges, work_dir) | ||
| volumes.append(bind_path) | ||
|
|
||
| # Use its --output argument to set the output file prefix to specify an absolute path and prefix | ||
| out_dir = Path(output_file).parent | ||
| out_dir.mkdir(parents=True, exist_ok=True) | ||
| bind_path, mapped_out_dir = prepare_volume(str(out_dir), work_dir) | ||
| volumes.append(bind_path) | ||
| mapped_out_prefix = mapped_out_dir + '/raw-pathway.txt' # Use posix path inside the container | ||
|
|
||
| command = ['python', | ||
| 'btb.py', | ||
| '--edges', | ||
| edges_file, | ||
| '--sources', | ||
| source_file, | ||
| '--targets', | ||
| target_file, | ||
| '--output_file', | ||
| mapped_out_prefix] | ||
|
|
||
| container_suffix = "bowtiebuilder:v2" | ||
| run_container_and_log('BowTieBuilder', | ||
| container_framework, | ||
| container_suffix, | ||
| command, | ||
| volumes, | ||
| work_dir) | ||
| # Output is already written to raw-pathway.txt file | ||
|
|
||
|
|
||
| @staticmethod | ||
| def parse_output(raw_pathway_file, standardized_pathway_file, params): | ||
| """ | ||
| Convert a predicted pathway into the universal format | ||
| @param raw_pathway_file: pathway file produced by an algorithm's run function | ||
| @param standardized_pathway_file: the same pathway written in the universal format | ||
| """ | ||
| # TODO: consider using multiple raw_pathway_files | ||
| df = raw_pathway_df(raw_pathway_file, sep='\t', header=0) | ||
| if not df.empty: | ||
| df = add_rank_column(df) | ||
| df = reinsert_direction_col_directed(df) | ||
| df.columns = ['Node1', 'Node2', 'Rank', 'Direction'] | ||
| df, has_duplicates = duplicate_edges(df) | ||
| if has_duplicates: | ||
| print(f"Duplicate edges were removed from {raw_pathway_file}") | ||
| df.to_csv(standardized_pathway_file, index=False, sep='\t', header=True) | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Empty file.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,3 @@ | ||
| Node1 Node2 | ||
| S1 A | ||
| A T1 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| Node1 Node2 | ||
| S1 A | ||
| S2 A | ||
| A T1 | ||
| A T2 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,6 @@ | ||
| Node1 Node2 | ||
| S1 A | ||
| S2 C | ||
| C T2 | ||
| A B | ||
| B T1 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| Node1 Node2 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,6 @@ | ||
| Node1 Node2 | ||
| S1 A | ||
| A B | ||
| B T1 | ||
| T1 C | ||
| C T2 |
6 changes: 6 additions & 0 deletions
6
test/BowTieBuilder/expected/source-to-source-disjoint-output.txt
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,6 @@ | ||
| Node1 Node2 | ||
| S1 A | ||
| S1 S2 | ||
| S2 B | ||
| A T1 | ||
| B T2 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| Node1 Node2 | ||
| S1 A | ||
| A T1 | ||
| A T2 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| Node1 Node2 | ||
| S1 A | ||
| S2 S1 | ||
| A T1 | ||
| A T2 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,3 @@ | ||
| Node1 Node2 | ||
| S1 A | ||
| A T1 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,6 @@ | ||
| A D 5 | ||
| B D 1.3 | ||
| C 0.4 | ||
| D E 4.5 | ||
| D F 2 | ||
| D G 3.2 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| S1 A 1 | ||
| A T1 1 | ||
| A S1 1 | ||
| T1 A 1 |
Empty file.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| S1 A 1 | ||
| S1 S2 1 | ||
| S2 A 1 | ||
| A T1 1 | ||
| A T2 1 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,2 @@ | ||
| S1 | ||
| S2 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,2 @@ | ||
| T1 | ||
| T2 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| S1 A 1 | ||
| A B 1 | ||
| B T1 1 | ||
| S2 C 1 | ||
| C T2 1 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,3 @@ | ||
| S1 | ||
| S2 | ||
| S3 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,3 @@ | ||
| T1 | ||
| T2 | ||
| T3 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,6 @@ | ||
| S1 A 1 | ||
| A B 1 | ||
| B T1 1 | ||
| S2 C 1 | ||
| C T2 1 | ||
| S3 D 1 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,6 @@ | ||
| A D 5 | ||
| B D 1.3 | ||
| C D 0.4 | ||
| D E 4.5 | ||
| D F 2 | ||
| D G 3.2 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,6 @@ | ||
| S1 A 1 | ||
| A B 1 | ||
| B T1 1 | ||
| T1 C 1 | ||
| C T2 1 | ||
| T2 S1 1 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| S1 S2 1 | ||
| S1 A 1 | ||
| A T1 1 | ||
| S2 B 1 | ||
| B T2 1 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| S1 A 1 | ||
| S1 S2 1 | ||
| A T1 1 | ||
| A T2 1 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| S1 A 1 | ||
| S2 S1 1 | ||
| A T1 1 | ||
| A T2 1 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,3 @@ | ||
| A | ||
| B | ||
| C |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,2 @@ | ||
| A S1 1 | ||
| T1 A 1 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,3 @@ | ||
| E | ||
| F | ||
| G |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| S1 A 1 | ||
| A T1 1 | ||
| S1 B 0.5 | ||
| B T1 0.5 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| S1 A 0.9 | ||
| A T1 0.9 | ||
| S1 B 0.5 | ||
| B T1 0.5 |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.