首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于RNAseq对齐的Bash For循环

用于RNAseq对齐的Bash For循环
EN

Stack Overflow用户
提问于 2020-09-04 10:38:59
回答 1查看 485关注 0票数 1

我的大脑根本不能处理for循环,所以任何帮助都将不胜感激。

背景:我正在尝试分析一些RNAseq数据,需要编写一个for循环来通过STAR读取所有成对结束的fastq文件。

这是我现在拥有的代码:

代码语言:javascript
复制
#! /bin/bash

#PBS -l walltime=24:00:00
#PBS -l nodes=1:ppn=12
#PBS -l mem=48

# ENVIRONMENT
module load gcc/6.2.0
module load STAR/2.6.1d
prj=/gpfs/data/elf-lab/RNA_Seq/RNA_trial/sab_sandbox/

# INPUTS
sample=SE-QS-19-FC01_S*

staridx=${prj}/reference/hg38_gencode28_STAR

fq1=${prj}/data/${sample}.R1_001.fastq
fq2=${prj}/data/${sample}.R2_001.fastq

rgline="ID:${sample}    PU:${sample}    SM:${sample}    PL:ILLUMINA LB:${sample}"

# OUTPUTS
outprefix=${prj}/alignment/${sample}.

# COMMAND
STAR \
  --runThreadN 12 \
  --genomeDir $staridx \
  --readFilesIn $fq1 $fq2 \
  --outSAMtype BAM Unsorted \
  --outSAMunmapped Within \
  --outFileNamePrefix $outprefix \
  --outSAMattrRGline $rgline \
  --outSAMattributes NH HI AS nM NM \
  --quantMode GeneCounts

下面是我的文件的样子:

代码语言:javascript
复制
SE-QS-19-FC01_S33_R1_001.fastq.gz
SE-QS-19-FC01_S33_R2_001.fastq.gz
SE-QS-20-FC01_S34_R1_001.fastq.gz
SE-QS-20-FC01_S34_R2_001.fastq.gz

我想要编写一个for循环,以便fq1和fq2将成为每次读取的每一对,但是不确定将for循环放置在何处,以便在STAR命令中使用fq1和fq2。提前谢谢你。

EN

回答 1

Stack Overflow用户

发布于 2020-09-04 11:08:27

在使用数组之前,我已经遍历了R1.fastq/R2.fastq文件,假设您有相同数量的R1/R2文件,例如

代码语言:javascript
复制
#! /bin/bash

#PBS -l walltime=24:00:00
#PBS -l nodes=1:ppn=12
#PBS -l mem=48

# ENVIRONMENT
module load gcc/6.2.0
module load STAR/2.6.1d
prj=/gpfs/data/elf-lab/RNA_Seq/RNA_trial/sab_sandbox/

staridx=${prj}/reference/hg38_gencode28_STAR

## Make arrays named fq1 and fq2 ##
fq1=(${prj}/data/*.R1_001.fastq)
fq2=(${prj}/data/*.R2_001.fastq)

# COMMAND
for ((i=0;i<"${#fq1[@]}";i++)); do
  sample="${fq1[$i]%%_R*}"
  rgline="ID:${sample}    PU:${sample}    SM:${sample}    PL:ILLUMINA LB:${sample}"
  outprefix=${prj}/alignment/"${sample}"

  STAR \
  --runThreadN 12 \
  --genomeDir $staridx \
  --readFilesIn "${fq1[$i]}" "${fq2[$i]}" \
  --outSAMtype BAM Unsorted \
  --outSAMunmapped Within \
  --outFileNamePrefix $outprefix \
  --outSAMattrRGline $rgline \
  --outSAMattributes NH HI AS nM NM \
  --quantMode GeneCounts
done

如果您的文件是按https://www.biostars.org/p/243683/进行gzipped压缩的(如示例中所示),您可能还想添加--readFilesCommand gunzip -c

在这里进一步解释这个c风格的for循环:https://linuxize.com/post/bash-for-loop/#the-c-style-bash-for-loop

希望这会有所帮助--有很多方法可以解决这个问题--如果你需要更多的帮助,在你的问题中添加更多的细节,例如,包括你使用过的没有工作的代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63734067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档