샘플 이름이 나열된 파일이 있습니다.
head sample_id.txt
PD26405a--PD26405b
PD26414a--PD26414d
PD26417a--PD26417b
...
또한 실행 중인 프로그램의 전처리 단계의 출력이 포함된 디렉터리도 있습니다.
cd ./preprocessing_out
ls
PD26405a--PD26405b_allDirichletProcessInfo.txt
PD26405a--PD26405b_alleleFrequencies.txt
PD26405a--PD26405b_loci.txt
PD26405a--PD26405b_master.txt
PD26414a--PD26414d_allDirichletProcessInfo.txt
PD26414a--PD26414d_alleleFrequencies.txt
PD26414a--PD26414d_loci.txt
PD26414a--PD26414d_master.txt
PD26417a--PD26417b_allDirichletProcessInfo.txt
PD26417a--PD26417b_alleleFrequencies.txt
PD26417a--PD26417b_loci.txt
PD26417a--PD26417b_master.txt
Sample_id.txt 파일의 샘플 이름은 preprocessing_out 디렉터리의 파일 이름과 일치합니다.
*_master.txt 파일만 필요한 기본 단계 스크립트를 실행하고 싶습니다. 기본 파일은 다음과 같습니다.
cat PD26405a--PD26405b_master.txt
sample subsample datafile cellularity sex cnadatafile indeldatafiles
PD26405a--PD26405b PD26405a--PD26405b PD26405a--PD26405b_allDirichletProcessInfo.txt 0.83 female NA NA
첫 번째 샘플에 대해서만 실행하고 싶다면
이것은 단지
Rscript --vanilla --slave /projects/dpclust_pipeline.R -r 1 -d /projects/preprocessing_out -o /projectsdp_out -i /projects/preprocessing_out/PD26405a--PD26405b_master.txt
--r is ("run_sample"), type="integer", default=NULL, help="Sample to run".
--d is the directory that preprocessing results stored
--o is the directory that final output directory
--I is the path to master.txt
총 150개가 넘는 샘플이 있고 for 루프가 있는 bash 스크립트에서 이 Rscript를 실행하고 싶습니다. r=1은 첫 번째 샘플(PD26405a-PD26405b)을 참조하고, r =2는 (PD26414a-PD26414d)를 참조하는 방식입니다.
코드를 어떻게 조정할 수 있나요?
답변1
다른 파일을 가져오는 동안 r로 계산하려면 다음을 수행할 수 있습니다.
r=1
while read sample
do
Rscript --vanilla --slave /projects/dpclust_pipeline.R -r ${r} -d /projects/preprocessing_out -o /projectsdp_out -i /projects/preprocessing_out/${sample}_master.txt
r=$(( r + 1 ))
done < path/to/sample_id.txt