Se bem entendi, tudo o que você está procurando é {1/} em vez de {1} . É o "basename" do argumento. Veja man parallel_tutorial e a discussão sobre --rpl onde temos isso strings de substituição são implementadas como
--rpl '{/} s:.*/::'
e As strings de substituição posicional também podem ser modificadas usando / etc.
Então, {1/} é como remover todos os caracteres até o final / .
Você pode criar suas próprias strings de taquigrafia de substituição usando --rpl seguido por uma string que começa com uma tag ( {/} no exemplo acima), depois uma expressão perl, como o substituto comando acima ( s: padrão : substituição : ).
Não sei ao certo o que é permitido como tags, mas podemos usar o exemplo do tutorial {..} para uma tag posicional, ou seja, que pode ser usado com { número } . A expressão perl para remover tudo até o último / seguido da palavra "Sample_" seria: s:.*/Sample_:: , então você precisa adicionar antes de --xapply os argumentos
--rpl '{..} s:.*/Sample_::'
e, em seguida, use --id={1..} para aplicar essa substituição ao arg 1.
Se, por exemplo, você quiser remover a palavra até o primeiro sublinhado _ , em vez de uma palavra fixa Sample , você pode usar um padrão como
--rpl '{..} s:.*/[^_]*_::'
O comando final deve ser parecido com isto:
parallel -j $NSLOTS --rpl '{..} s:.*/Sample_::' --xapply \
" echo {1} \
/home/rob2056/software/cellranger-2.2.0/cellranger count --id={1/} \
--id2={1..} \
--transcriptome=$ref_data \
--fastqs={1} \
" ::: $TMPDIR/FASTQ/Sample*