@@ -48,7 +48,7 @@
diff --git a/app/views/apps/_editor.environment.html.erb b/app/views/apps/_editor.environment.html.erb
index f28a1ce1f..b95f4ef76 100644
--- a/app/views/apps/_editor.environment.html.erb
+++ b/app/views/apps/_editor.environment.html.erb
@@ -31,11 +31,11 @@
diff --git a/app/views/apps/_grid.html.erb b/app/views/apps/_grid.html.erb
index 3b602cc4d..e5c3d4eee 100644
--- a/app/views/apps/_grid.html.erb
+++ b/app/views/apps/_grid.html.erb
@@ -10,7 +10,7 @@
end
g.column name: 'Title', attribute: 'title', assoc: :latest_version_app do |series|
- unilink(series.latest_version_app, scope_icon: (defined?(scope_icon) ? scope_icon : true))
+ unilink(series.latest_version_app, scope_icon: (defined?(scope_icon) ? scope_icon : true), target: "_blank")
end
g.column name: 'Revision', attribute: 'revision', assoc: :latest_version_app do |series|
@@ -57,7 +57,7 @@
elsif app_ids.present?
"Not this revision"
else
- link_to "Try", new_app_job_path(series.latest_version_app), class: 'btn btn-primary btn-xs'
+ link_to "Try", new_app_job_path(series.latest_version_app)
end
end
diff --git a/app/views/apps/_import_cwl_wdl_modal.html.erb b/app/views/apps/_import_cwl_wdl_modal.html.erb
index a19d35049..c69ee9675 100644
--- a/app/views/apps/_import_cwl_wdl_modal.html.erb
+++ b/app/views/apps/_import_cwl_wdl_modal.html.erb
@@ -33,7 +33,7 @@
Select Docker Image
-
+
diff --git a/app/views/apps/_import_cwl_wdl_success_modal.html.erb b/app/views/apps/_import_cwl_wdl_success_modal.html.erb
index 2e6f781d3..c849b8cc9 100644
--- a/app/views/apps/_import_cwl_wdl_success_modal.html.erb
+++ b/app/views/apps/_import_cwl_wdl_success_modal.html.erb
@@ -15,17 +15,17 @@
App URL:
-
+
Asset URL:
-
+
diff --git a/app/views/apps/batch_app.html.erb b/app/views/apps/batch_app.html.erb
index 731e46dc0..4aadeb1f3 100644
--- a/app/views/apps/batch_app.html.erb
+++ b/app/views/apps/batch_app.html.erb
@@ -137,7 +137,7 @@
-
+
diff --git a/app/views/apps/index.html.erb b/app/views/apps/index.html.erb
index 8e8dfd023..6809ee75e 100644
--- a/app/views/apps/index.html.erb
+++ b/app/views/apps/index.html.erb
@@ -23,7 +23,7 @@
diff --git a/app/views/apps/list.html.erb b/app/views/apps/list.html.erb
index 0c3a9ee59..ff8d7cb9e 100644
--- a/app/views/apps/list.html.erb
+++ b/app/views/apps/list.html.erb
@@ -24,7 +24,7 @@
Create App
-
+
Manage Assets
diff --git a/app/views/assets/new.html.erb b/app/views/assets/new.html.erb
index 2e88b3708..2973a108d 100644
--- a/app/views/assets/new.html.erb
+++ b/app/views/assets/new.html.erb
@@ -17,7 +17,7 @@
Need to compile binaries in a compatible environment?
-
Download the precisionFDA virtual machine image and load it into
VirtualBox to instantiate an environment similar to the one that apps get when they run on the cloud. Power on the machine, and SSH into localhost (port 2222) as the
ubuntu
user (no password is required to log in).
+
Download the precisionFDA virtual machine image and load it into
VirtualBox to instantiate an environment similar to the one that apps get when they run on the cloud. Power on the machine, and SSH into localhost (port 2222) as the
ubuntu
user (no password is required to log in).
@@ -28,19 +28,23 @@
- Step 3 Download the precisionFDA uploader
+ Step 3 Download the precisionFDA CLI
-
+
Linux
-
+
Mac OS X
-
+
Windows
Note: On Linux and Mac OS, after unzipping the downloaded file, you may need to run the following command to make the binary executable: chmod +x pfda
.
+ Version 2.1.2 (8/03/2022): Fixed windows asset upload.
+ Version 2.1.1 (7/18/2022): Improvements to asset upload.
+ Version 2.1 (2/22/2022): Added download feature, upload to space, --cmd flag is now optional.
+ Version 2.0.1 (8/26/2021): Fix an issue uploading very large files.
Version 2.0.0 (6/21/2018): TLS 1.2 and FIPS 140-2 support.
Version 1.0.4 (1/5/2016): Reduced memory usage of each thread.
Version 1.0.3 (12/14/2015): The uploader can now be used for both assets and files.
@@ -56,12 +60,13 @@
- Step 5 Run the precisionFDA uploader
+ Step 5 Run the precisionFDA CLI
This command will archive the contents of the fake root into the named tarball, and upload it to precisionFDA along with the contents of the readme file (replace KEY below with the actual content of your authorization key copied from the page in step 4, and pasted directly in the command line):
- ./pfda --cmd upload-asset --key KEY --name my-asset.tar.gz --root /path/to/fake_root --readme my-asset.txt
- TIP: The uploader saves your key in $HOME/.config/precision-fda/config.json
, so after you have run it once, you don't need to specify the key in subsequent invocations.
+ ./pfda upload-asset --key KEY --name my-asset.tar.gz --root /path/to/fake_root --readme my-asset.txt
+ TIP: The CLI saves your key in $HOME/.pfda_config
, so after you have run it once, you don't need to specify the key in subsequent invocations.
+ TIP 2: The CLI can do a lot more than uploading assets, please see the Command Line Interface documentation page
diff --git a/app/views/challenges/_common_inputs.html.erb b/app/views/challenges/_common_inputs.html.erb
index 4c46ffaf9..4ecaeaef4 100644
--- a/app/views/challenges/_common_inputs.html.erb
+++ b/app/views/challenges/_common_inputs.html.erb
@@ -6,7 +6,7 @@
- <%= f.label :description, "Description", class: 'control-label col-sm-2' %>
+ <%= f.label :description, "Description", class: 'control-label col-sm-2 challenges-description' %>
<%= f.text_area :description, class: "form-control", rows: 10,
placeholder: "What is this challenge is about..." %>
@@ -28,7 +28,7 @@
<%= f.select :app_owner_id,
options_for_select(app_owners_for_select, @challenge.app_owner_id), {},
selected: @challenge.app_owner_id,
- class: "form-control",
+ class: "form-control disabledTextColor",
required: "required",
disabled: @challenge.started?
%>
@@ -50,7 +50,7 @@
<%= f.text_field :end_at,
value: @challenge.end_at.try(:to_s, :datepicker),
- class: "form-control add-datetimepicker",
+ class: "form-control add-datetimepicker disabledTextColor",
placeholder: 'Select date',
required: "required",
readonly: @challenge.over?
@@ -63,7 +63,7 @@
<% if @challenge.new_record? %>
<%= f.select :host_lead_dxuser, options_for_select(host_lead_dxusers), {}, class: "form-control", required: "required" %>
<% else %>
- <%= f.text_field :host_lead_dxuser, value: @challenge.space.host_lead_dxuser, disabled: true, readonly: true, class: "form-control" %>
+ <%= f.text_field :host_lead_dxuser, value: @challenge.space.host_lead_dxuser, disabled: true, readonly: true, class: "form-control disabledTextColor" %>
<% end %>
@@ -73,7 +73,7 @@
<% if @challenge.new_record? %>
<%= f.select :guest_lead_dxuser, options_for_select(guest_lead_dxusers), {}, class: "form-control", required: "required" %>
<% else %>
- <%= f.text_field :host_lead_dxuser, value: @challenge.space.guest_lead_dxuser, disabled: true, readonly: true, class: "form-control" %>
+ <%= f.text_field :host_lead_dxuser, value: @challenge.space.guest_lead_dxuser, disabled: true, readonly: true, class: "form-control disabledTextColor", id: "challenge_guest_lead_dxuser" %>
<% end %>
@@ -112,3 +112,11 @@
%>
+<% if !@challenge.status.present? || @challenge.status_setup_or_pre_registration? %>
+
+<% end %>
diff --git a/app/views/challenges/_edit_pre_registration.html.erb b/app/views/challenges/_edit_pre_registration.html.erb
new file mode 100644
index 000000000..3ab34bdaa
--- /dev/null
+++ b/app/views/challenges/_edit_pre_registration.html.erb
@@ -0,0 +1,5 @@
+<% if @context.can_administer_site? || @context.challenge_admin?%>
+
+ <%= raw(challenge.regions["pre-registration"]) %>
+
+<% end %>
diff --git a/app/views/challenges/_treasure.html.erb b/app/views/challenges/_treasure.html.erb
index 09df7edbd..3a1ad450a 100644
--- a/app/views/challenges/_treasure.html.erb
+++ b/app/views/challenges/_treasure.html.erb
@@ -120,9 +120,9 @@
Files
- NA12878MOD_1.fastq.gz
+ NA12878MOD_1.fastq.gz
- NA12878MOD_2.fastq.gz
+ NA12878MOD_2.fastq.gz
diff --git a/app/views/challenges/consistency.html.erb b/app/views/challenges/consistency.html.erb
index 577e4eaf0..0b68e2090 100644
--- a/app/views/challenges/consistency.html.erb
+++ b/app/views/challenges/consistency.html.erb
@@ -69,7 +69,7 @@
<% else %>
<%= render "challenges/consistency/preview_results" %>
<% end %>
-<% elsif params[:tab] == 'results-peek' && (@context.can_administer_site? || (ENV["DNANEXUS_BACKEND"] != "production")) %>
+<% elsif params[:tab] == 'results-peek' && (@context.can_administer_site? || !Rails.env.production?) %>
<%= render "challenges/consistency/results" %>
<% else %>
<%= render "challenges/consistency/info" %>
diff --git a/app/views/challenges/consistency/_info.html.erb b/app/views/challenges/consistency/_info.html.erb
index 5275b2aad..3fe330af8 100644
--- a/app/views/challenges/consistency/_info.html.erb
+++ b/app/views/challenges/consistency/_info.html.erb
@@ -132,14 +132,14 @@
Files
- NA12878-Garvan-Vial1_R1.fastq.gz
+ NA12878-Garvan-Vial1_R1.fastq.gz
- NA12878-Garvan-Vial1_R2.fastq.gz
+ NA12878-Garvan-Vial1_R2.fastq.gz
- TSNano_1lane_L008_13801_NA12878_R1_001.fastq.gz
+ TSNano_1lane_L008_13801_NA12878_R1_001.fastq.gz
- TSNano_1lane_L008_13801_NA12878_R2_001.fastq.gz
+ TSNano_1lane_L008_13801_NA12878_R2_001.fastq.gz
@@ -325,22 +325,22 @@
Accuracy Comparison #1a
Garvan VCF
-
- NIST v2.19 VCF
- NIST v2.19 BED
+ NIST v2.19 VCF
+ NIST v2.19 BED
Accuracy Comparison #1b
Garvan Rerun VCF
-
- NIST v2.19 VCF
- NIST v2.19 BED
+ NIST v2.19 VCF
+ NIST v2.19 BED
Accuracy Comparison #2
HLI VCF
-
- NIST v2.19 VCF
- NIST v2.19 BED
+ NIST v2.19 VCF
+ NIST v2.19 BED
@@ -364,7 +364,7 @@
Accuracy comparisons
are between each of your VCF files and the NIST v2.19 (Genome in a Bottle) benchmark VCF file, constrained within the coordinates of the accompanying NIST v2.19 BED file.
- The precisionFDA website provides NA12878-NISTv2.19.vcf.gz (to be used as benchmark VCF) and NA12878-NISTv2.19.bed (to be used as benchmark BED).
+ The precisionFDA website provides NA12878-NISTv2.19.vcf.gz (to be used as benchmark VCF) and NA12878-NISTv2.19.bed (to be used as benchmark BED).
These comparisons are meant to estimate the accuracy of your pipeline within the “confident” regions of the Genome in a Bottle “gold standard” dataset – therefore you must leave the test BED entry blank.
diff --git a/app/views/challenges/consistency/_table_datasets.html.erb b/app/views/challenges/consistency/_table_datasets.html.erb
index 4d2127588..a7470c0c6 100644
--- a/app/views/challenges/consistency/_table_datasets.html.erb
+++ b/app/views/challenges/consistency/_table_datasets.html.erb
@@ -10,9 +10,9 @@
ebanks-nist *
- G1 ,
- G2 ,
- H
+ G1 ,
+ G2 ,
+ H
R1 ,
R2 ,
A1a ,
@@ -22,9 +22,9 @@
raldana-sentieon
- G1 ,
- G2 ,
- H
+ G1 ,
+ G2 ,
+ H
R1 ,
R2 ,
A1a ,
@@ -34,9 +34,9 @@
dgrover-gatk
- G1 ,
- G2 ,
- H
+ G1 ,
+ G2 ,
+ H
R1 ,
R2 ,
A1a ,
@@ -46,9 +46,9 @@
jedwards-sentieon
- G1 ,
- G2 ,
- H
+ G1 ,
+ G2 ,
+ H
R1 ,
R2 ,
A1a ,
@@ -58,9 +58,9 @@
ckim-gatk
- G1 ,
- G2 ,
- H
+ G1 ,
+ G2 ,
+ H
R1 ,
R2 ,
A1a ,
@@ -70,9 +70,9 @@
ckim-vqsr
- G1 ,
- G2 ,
- H
+ G1 ,
+ G2 ,
+ H
R1 ,
R2 ,
A1a ,
@@ -82,9 +82,9 @@
ckim-isaac
- G1 ,
- G2 ,
- H
+ G1 ,
+ G2 ,
+ H
R1 ,
R2 ,
A1a ,
@@ -94,9 +94,9 @@
ckim-dragen
- G1 ,
- G2 ,
- H
+ G1 ,
+ G2 ,
+ H
R1 ,
R2 ,
A1a ,
@@ -106,9 +106,9 @@
ckim-genalice
- G1 ,
- G2 ,
- H
+ G1 ,
+ G2 ,
+ H
R1 ,
R2 ,
A1a ,
@@ -118,9 +118,9 @@
mlin-fermikit
- G1 ,
- G2 ,
- H
+ G1 ,
+ G2 ,
+ H
R1 ,
R2 ,
A1a ,
@@ -130,9 +130,9 @@
ciseli-custom
- G1 ,
- G2 ,
- H
+ G1 ,
+ G2 ,
+ H
R1 ,
R2 ,
A1a ,
@@ -142,9 +142,9 @@
astatham-gatk
- G1 ,
- G2 ,
- H
+ G1 ,
+ G2 ,
+ H
R1 ,
R2 ,
A1a ,
@@ -154,9 +154,9 @@
anovak-vg
- G1 ,
- G2 ,
- H
+ G1 ,
+ G2 ,
+ H
R1 ,
R2 ,
A1a ,
@@ -166,9 +166,9 @@
mmohiyuddin-mixed
- G1 ,
- G2 ,
- H
+ G1 ,
+ G2 ,
+ H
R1 ,
R2 ,
A1a ,
@@ -178,9 +178,9 @@
cchapple-mixed
- G1 ,
- G2 ,
- H
+ G1 ,
+ G2 ,
+ H
R1 ,
R2 ,
A1a ,
@@ -190,9 +190,9 @@
amark-mixed
- G1 ,
- G2 ,
- H
+ G1 ,
+ G2 ,
+ H
R1 ,
R2 ,
A1a ,
@@ -202,9 +202,9 @@
jharris-gatk
- G1 ,
- G2 ,
- H
+ G1 ,
+ G2 ,
+ H
R1 ,
R2 ,
A1a ,
@@ -214,9 +214,9 @@
asubramanian-gatk
- G1 ,
- G2 ,
- H
+ G1 ,
+ G2 ,
+ H
R1 ,
R2 ,
A1a ,
@@ -226,9 +226,9 @@
egarrison-hhga
- G1 ,
- G2 ,
- H
+ G1 ,
+ G2 ,
+ H
R1 ,
R2 ,
A1a ,
@@ -238,9 +238,9 @@
xli-custom
- G1 ,
- G2 ,
- H
+ G1 ,
+ G2 ,
+ H
R1 ,
R2 ,
A1a ,
@@ -250,9 +250,9 @@
rlopez-custom **
- G1 ,
- G2 ,
- H
+ G1 ,
+ G2 ,
+ H
R1 ,
R2 ,
A1a ,
diff --git a/app/views/challenges/edit.html.erb b/app/views/challenges/edit.html.erb
index 03d9e5f05..a74f77e17 100644
--- a/app/views/challenges/edit.html.erb
+++ b/app/views/challenges/edit.html.erb
@@ -1,10 +1,10 @@
<% content_for :title do %>Edit Challenge<% end %>
@@ -16,7 +16,7 @@
<%= f.submit "Update", class: 'btn btn-primary', data: {disable_with: "Updating..."} %>
<%- if @challenge.can_announce_result? %>
- <%= link_to "Announce result", announce_result_challenge_path(@challenge), method: :post, class: "btn btn-warning" %>
+ <%= link_to "Announce result", announce_result_challenge_path(@challenge), method: :post, class: "btn btn-warning challenges-announce-result" %>
<%- end %>
diff --git a/app/views/challenges/edit_page.html.erb b/app/views/challenges/edit_page.html.erb
index e93c29a3b..979561b26 100644
--- a/app/views/challenges/edit_page.html.erb
+++ b/app/views/challenges/edit_page.html.erb
@@ -7,14 +7,17 @@
- ">Challenge Info
- ">Challenge Results
- ">Resources
+ ">
+ ">
+ ">
+ ">
- <% if ['challenge_results'].include?(params[:tab]) %>
+ <% if params[:tab] == "challenge_results" %>
<%= render "challenges/edit_results", challenge: @challenge, submissions_grid: @submissions_grid %>
- <% elsif ['resources'].include?(params[:tab]) %>
+ <% elsif params[:tab] == "pre_registration" %>
+ <%= render "challenges/edit_pre_registration", challenge: @challenge %>
+ <% elsif params[:tab] == "resources" %>
-
The top section of the job details page displays additional information, including the job's instance type, duration and energy consumed . The energy consumed is calculated from a formula that takes into account the instance type as well as the duration. Jobs that run longer or that use more powerful instance types will consume more energy. Therefore, this metric can be used to compare pipelines in terms of their algorithmic efficiency.
+
The top section of the job details page displays additional information, including the job's instance type, duration and cost in dollars . The cost is calculated from a formula that takes into account the instance type as well as the duration. Jobs that run longer or that use more powerful instance types will consume more energy. Therefore, this metric can be used to compare pipelines in terms of their algorithmic efficiency.
TIP: Try to be green! Always optimize your workload by selecting the appropriate instance type when creating apps or launching jobs. Although the FDA is sponsoring your cloud usage, it may impose penalties if you end up wasting too much energy.
diff --git a/app/views/docs/_cli.html.erb b/app/views/docs/_cli.html.erb
new file mode 100644
index 000000000..4f478803f
--- /dev/null
+++ b/app/views/docs/_cli.html.erb
@@ -0,0 +1,78 @@
+
+
+
+
Command Line Interface (CLI)
+
+
The precisionFDA CLI allows you to conveniently upload or download large files or assets to your home area or to a Space where you have access. You can also integrate this into your scripts to automate your workflow and do batch uploads and downloads.
+
+
Download the CLI
+
+
Authorization Key
+
+
+ Visit the Create Assets page and click on Generate Authorization Key button to generate a key that you will need when using the CLI.
+
+
+
Uploading Files
+
+
+ The CLI can be used to upload files to your My Home area or to a Space where you have access. Currently you can only upload single files and not a folder, but you can embed the command in a script to do batch uploads.
+
+
To upload a file to your precisionFDA My Home./pfda upload-file --key KEY --file /path/to/file
+
To upload a file to a folder in your My Home area./pfda upload-file --key KEY --file /path/to/file --folder-id FOLDER_ID
+
+ TIP: To find FOLDER_ID, inspect the URL when browsing the contents of the target folder
+
+
To upload a file to a Space./pfda upload-file --key KEY --file /path/to/file --space-id SPACE_ID
+
To upload a file to a folder in a Space./pfda upload-file --key KEY --file /path/to/file --folder-id FOLDER_ID --space-id SPACE_ID
+
+ TIP: To find SPACE_ID, inspect the URL when browsing a Space. For example, in the URL "https://precision.fda.gov/spaces/225/files", the Space ID is 225.
+
+
+
Uploading Assets
+
+
+ To upload an asset to precisionFDA, prepare a folder path of the asset contents and a readme file, and run the following command with the desired asset name (must end in .tar or .tar.gz)
+
+
./pfda upload-asset --key KEY --name NAME{.tar or .tar.gz} --root /PATH/TO/ROOT/FOLDER --readme README{.txt or .md}>
+
+
Downloading Files
+
+
+ To download files from My Home or a Space, you simply need the unique id for the file which is of the form file-ABCDEF1234567890-1
+
+
Download a file to the current directory using its original name./pfda download --key KEY --file-id FILE_ID
+
Download a file to the specified file path, ignoring its original name./pfda download --key KEY --file-id FILE_ID --output /OUTPUT_PATH/DESIRED_FILENAME
+
Download a file to the specified output directory using its original name./pfda download --key KEY --file-id FILE_ID --output /OUTPUT/PATH/
+
+ NOTE: The trailing slash indicates a directory
+
+
+
+
+
+
+
+
+
+
diff --git a/app/views/docs/_creating_apps.html.erb b/app/views/docs/_creating_apps.html.erb
index 5ec0b739d..0e7ccb96c 100644
--- a/app/views/docs/_creating_apps.html.erb
+++ b/app/views/docs/_creating_apps.html.erb
@@ -213,31 +213,31 @@
Baseline 2
2
- 3.8 GB
+ 4 GB
32 GB
Baseline 4
4
- 7.5 GB
+ 8 GB
80 GB
Baseline 8
8
- 15 GB
+ 16 GB
160 GB
Baseline 16
16
- 30 GB
+ 32 GB
320 GB
Baseline 36
36
- 60 GB
+ 72 GB
640 GB
@@ -246,31 +246,31 @@
High Mem 2
2
- 15 GB
+ 16 GB
32 GB
High Mem 4
4
- 30.5 GB
+ 32 GB
80 GB
High Mem 8
8
- 61 GB
+ 64 GB
160 GB
High Mem 16
16
- 122 GB
+ 128 GB
320 GB
High Mem 32
32
- 244 GB
+ 256 GB
640 GB
@@ -306,6 +306,15 @@
60 GB
2880 GB
+
+
+
+
+ GPU 8
+ 8
+ 60 GB
+ 160 GB
+
@@ -409,7 +418,7 @@ https://github.com/samtools/htslib/releases/tag/1.2.1
The tool requires an "authorization key" in order to authenticate the client against the precisionFDA system. You can get a key by clicking the respective link in the "Add Assets" page. Copy the key from that page and paste it in the command below where it says KEY . For your security, the key is valid for 24h.