Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
nextflowVersion=25.04.4
version=0.1.0-edge1
version=0.1.0-edge2
grpcVersion=1.68.0
protobufVersion=3.25.5
8 changes: 8 additions & 0 deletions src/main/groovy/incsteps/plugin/NfAsperaExtension.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,14 @@ class NfAsperaExtension extends PluginExtensionPoint {
return target
}

@Factory
DataflowWriteChannel ena_ascp(Map params=[:]) {
final target = CH.create()
params.client = 'ena'
session.addIgniter((action) -> downloadFile(target, params))
return target
}

private void downloadFile(DataflowWriteChannel target, Map params) {

validate(params)
Expand Down
21 changes: 21 additions & 0 deletions src/main/groovy/incsteps/plugin/NfAsperaPlugin.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
package incsteps.plugin

import groovy.transform.CompileStatic
import groovy.util.logging.Slf4j
import incsteps.plugin.aspera.nio.AsperaFileSystemProvider
import incsteps.plugin.aspera.transferd.Transferd
import nextflow.Global
Expand All @@ -29,10 +30,30 @@ import org.pf4j.PluginWrapper
* The plugin entry point
*/
@CompileStatic
@Slf4j
class NfAsperaPlugin extends BasePlugin {

NfAsperaPlugin(PluginWrapper wrapper) {
super(wrapper)
showBanner()
}

static void showBanner() {
log.info(" ___ _ _ ")
log.info("|_ _|_ __ ___ _ __ ___ _ __ ___ ___ _ __ | |_ __ _| |")
log.info(" | || '_ \\ / __| '__/ _ \\ '_ ` _ \\ / _ \\ '_ \\ | __/ _` | |")
log.info(" | || | | | (__| | | __/ | | | | | __/ | | || | || (_| | |")
log.info("|___|_| |_|\\___|_| \\___|_| |_| |_|\\___|_| |_||_| \\__|\\__,_|_|")
log.info("")
log.info(" ____ _ ")
log.info(" / ___|| |_ ___ _ __ ___ ")
log.info(" \\___ \\| __/ _ \\ '_ \\/ __|")
log.info(" ___) | || __/ |_) \\__ \\")
log.info(" |____/ \\__\\___| .__/|___/")
log.info(" |_| ")
log.info("")
log.info(" :: http://incsteps.com :: ")
log.info("")
}

@Override
Expand Down
15 changes: 13 additions & 2 deletions src/main/groovy/incsteps/plugin/aspera/ClientConfig.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ class ClientConfig {
}

static ClientConfig ncbi(){
def privateKey = ClientConfig.getResourceAsStream("/ncbi/aspera_tokenauth_id_rsa").text
def privateKey = ClientConfig.getResourceAsStream("/auth/aspera_tokenauth_id_rsa").text
return fromMap([
remote_host : 'ftp.ncbi.nlm.nih.gov',
ssh_port : 22,
Expand All @@ -52,6 +52,16 @@ class ClientConfig {
])
}

static ClientConfig ena(){
def privateKey = ClientConfig.getResourceAsStream("/auth/asperaweb_id_dsa.openssh").text
return fromMap([
remote_host : 'fasp.ebi.ac.uk',
ssh_port : 33001,
remote_user : "fasp-public",
ssh_private_key: privateKey
])
}

static ClientConfig fromMap(Map config){
return new ClientConfig(
ssh_port: config.containsKey("ssh_port") && "$config.ssh_port".isNumber() ? config.ssh_port as int : 22,
Expand All @@ -68,7 +78,8 @@ class ClientConfig {

final static private Map<String, ClientConfig> clients = [
'demo' : demoAspera(),
'ncbi' : ncbi()
'ncbi' : ncbi(),
'ena' : ena(),
]

static void register(String id, ClientConfig config){
Expand Down
29 changes: 29 additions & 0 deletions src/main/resources/auth/aspera-license
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxsaWNl
bnNlIHZlcnNpb249IjEiPg0KICA8IS0tIFZvaWQgaWYgbW9kaWZpZWQgLS0+
DQogIDxwcm9kdWN0X2lkPjUzPC9wcm9kdWN0X2lkPg0KICA8Y3VzdG9tZXJf
aWQ+MTwvY3VzdG9tZXJfaWQ+DQogIDxsaWNlbnNlX2lkPjUzPC9saWNlbnNl
X2lkPg0KICA8YWNjb3VudHM+MDwvYWNjb3VudHM+DQogIDx1bmlxdWVfY29u
Y3VycmVudF9sb2dpbnM+MDwvdW5pcXVlX2NvbmN1cnJlbnRfbG9naW5zPg0K
ICA8bWF4aW11bV9iYW5kd2lkdGg+dW5saW1pdGVkPC9tYXhpbXVtX2JhbmR3
aWR0aD4NCiAgPGV4cGlyYXRpb25fZGF0ZT5ub25lPC9leHBpcmF0aW9uX2Rh
dGU+DQogIDxodHRwX2ZhbGxiYWNrX3NlcnZlcl9lbmFibGVkPm5vPC9odHRw
X2ZhbGxiYWNrX3NlcnZlcl9lbmFibGVkPg0KICA8Z3JvdXBfY29uZmlndXJh
dGlvbl9lbmFibGVkPm5vPC9ncm91cF9jb25maWd1cmF0aW9uX2VuYWJsZWQ+
DQogIDxzaGFyZWRfZW5kcG9pbnRzX2VuYWJsZWQ+bm88L3NoYXJlZF9lbmRw
b2ludHNfZW5hYmxlZD4NCiAgPGRlc2t0b3BfZ3VpX2VuYWJsZWQ+bm88L2Rl
c2t0b3BfZ3VpX2VuYWJsZWQ+DQogIDxjb25uZWN0X2VuYWJsZWQ+eWVzPC9j
b25uZWN0X2VuYWJsZWQ+DQogIDxjYXJnb19lbmFibGVkPnllczwvY2FyZ29f
ZW5hYmxlZD4NCiAgPG1vYmlsZV9lbmFibGVkPm5vPC9tb2JpbGVfZW5hYmxl
ZD4NCiAgPGRyaXZlX2VuYWJsZWQ+eWVzPC9kcml2ZV9lbmFibGVkPg0KICA8
c3luYzI+DQogICAgPGVuYWJsZWQ+eWVzPC9lbmFibGVkPg0KICAgIDxkaXJl
Y3Rpb24+YmlkaTwvZGlyZWN0aW9uPg0KICAgIDxtYXhpbXVtX2ZpbGVzPnVu
bGltaXRlZDwvbWF4aW11bV9maWxlcz4NCiAgPC9zeW5jMj4NCjwvbGljZW5z
ZT4NCj09U0lHTkFUVVJFPT0NClgwSDZoK0M1Z1h6MU9wYjlhNDhaRmQ2akVL
bFpibEV6OXh5QkpQL1h1UmRNeTlhOUZKeUNJWjBxcTBSZA0KOUJ4MHFFSU56
b0EvMis4aC9YR3V2VEM5VlFBbGx2a0RXYVlTdHQvb1dtTHZ4YVVGVFJMa2c4
eXNGT1AyDQo3ZWc1bk84QkhGVjllVVB1RDRvV3NxeG5BMGJrYjg5QTBOQ2g1
QktLRFRvVVRWRFMvRlh4c0p5SlJBME8NCkgzbmJaOVcvS3RUMXFKRTFPbHcv
SnA4Z2cvWDVJbWFxK0xGUytnTEJxbFNlOXBWREZtalZFVVIxOG10WQ0KZmxv
R1RoSXdsMXVFZ05peVl6RkxSQ2NWUURFdHVJWVhHdUJKZnNwWHlDVi9IM3l6
N1pET2M5cTB4NENSDQp4dk01U1RMbW1jamVzRUpOTnBzTXozK09OOWNaOVVi
dnFRaHN5VmtDb3c9PQ0K
12 changes: 12 additions & 0 deletions src/main/resources/auth/asperaweb_id_dsa.openssh
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
-----BEGIN DSA PRIVATE KEY-----
MIIBuwIBAAKBgQDkKQHD6m4yIxgjsey6Pny46acZXERsJHy54p/BqXIyYkVOAkEp
KgvT3qTTNmykWWw4ovOP1+Di1c/2FpYcllcTphkWcS8lA7j012mUEecXavXjPPG0
i3t5vtB8xLy33kQ3e9v9/Lwh0xcRfua0d5UfFwopBIAXvJAr3B6raps8+QIVALws
yeqsx3EolCaCVXJf+61ceJppAoGAPoPtEP4yzHG2XtcxCfXab4u9zE6wPz4ePJt0
UTn3fUvnQmJT7i0KVCRr3g2H2OZMWF12y0jUq8QBuZ2so3CHee7W1VmAdbN7Fxc+
cyV9nE6zURqAaPyt2bE+rgM1pP6LQUYxgD3xKdv1ZG+kDIDEf6U3onjcKbmA6ckx
T6GavoACgYEAobapDv5p2foH+cG5K07sIFD9r0RD7uKJnlqjYAXzFc8U76wXKgu6
WXup2ac0Co+RnZp7Hsa9G+E+iJ6poI9pOR08XTdPly4yDULNST4PwlfrbSFT9FVh
zkWfpOvAUc8fkQAhZqv/PE6VhFQ8w03Z8GpqXx7b3NvBR+EfIx368KoCFEyfl0vH
Ta7g6mGwIMXrdTQQ8fZs
-----END DSA PRIVATE KEY-----
18 changes: 9 additions & 9 deletions validation/ascp.nf
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
include { ascp; ncbi_ascp } from 'plugin/nf-aspera'
include { ascp; ncbi_ascp; ena_ascp } from 'plugin/nf-aspera'

demo = 'aspera-test-dir-small/10MB.1'

files = [
'/refseq/release/bacteria/bacteria.1.1.genomic.fna.gz',
'/refseq/release/mitochondrion/mitochondrion.1.1.genomic.fna.gz',
]

workflow{
Channel.ascp( client: 'demo', destination:'downloads/', source: demo) | view

Channel.ncbi_ascp( destination:'downloads/', sources: files ) | view
Channel.ascp( client: 'demo', destination:'downloads/', source: 'aspera-test-dir-small/10MB.1') | view

Channel.ncbi_ascp( destination:'downloads/', sources: [
'/refseq/release/bacteria/bacteria.1.1.genomic.fna.gz',
'/refseq/release/mitochondrion/mitochondrion.1.1.genomic.fna.gz',
] ) | view

Channel.ena_ascp( destination:'downloads/', source: 'vol1/fastq/ERR164/ERR164407/ERR164407.fastq.gz' ) | view
}
2 changes: 1 addition & 1 deletion validation/nextflow.config
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
plugins {
id "nf-aspera@0.1.0-edge1"
id "nf-aspera@${System.getenv('NF_ASPERA') ?: '0.1.0-edge2'}"
}

aspera{
Expand Down
26 changes: 0 additions & 26 deletions validation/parallel.nf

This file was deleted.

3 changes: 3 additions & 0 deletions validation/readme_ena.nf
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
// Read a file from NCBI remote host

println file('aspera://ena/pub/databases/ena/doc/FT_current.txt').text